blob: 09db37a9e82153532d1bd963dbd7ed06f295d5eb [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 Hallbeea46d2018-12-04 14:38:07 -0800527@extension("VK_NV_ray_tracing") define VK_NV_RAY_TRACING_SPEC_VERSION 3
528@extension("VK_NV_ray_tracing") define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
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 Hallbeea46d2018-12-04 14:38:07 -0800706@extension("VK_NV_ray_tracing") @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 Hallbeea46d2018-12-04 14:38:07 -0800807 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700808 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 Hallbeea46d2018-12-04 14:38:07 -0800819 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700820 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 Hallbeea46d2018-12-04 14:38:07 -0800836 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700837 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
Jesse Hallbeea46d2018-12-04 14:38:07 -0800863 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700864 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 Hallbeea46d2018-12-04 14:38:07 -08001799 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07001800 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 Hallbeea46d2018-12-04 14:38:07 -08002033 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002034 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 Hallbeea46d2018-12-04 14:38:07 -08002157 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002158 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 Hallbeea46d2018-12-04 14:38:07 -08002333@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002334enum 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 Hallbeea46d2018-12-04 14:38:07 -08002340@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002341enum 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 Hallbeea46d2018-12-04 14:38:07 -08002346@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002347enum VkAccelerationStructureTypeNV {
2348 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0,
2349 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1,
2350}
2351
Jesse Hallbeea46d2018-12-04 14:38:07 -08002352@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002353enum VkCopyAccelerationStructureModeNV {
2354 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0,
2355 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1,
2356}
2357
Jesse Hallbeea46d2018-12-04 14:38:07 -08002358@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002359enum 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 Hallbeea46d2018-12-04 14:38:07 -08002477 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002478 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 Hallbeea46d2018-12-04 14:38:07 -08002503 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002504 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 Hallbeea46d2018-12-04 14:38:07 -08002535 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002536 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 Hallbeea46d2018-12-04 14:38:07 -08002639 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002640 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 Hallbeea46d2018-12-04 14:38:07 -08002835 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002836 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 Hallbeea46d2018-12-04 14:38:07 -08002845
2846 //@extension("VK_NV_ray_tracing") // 166
2847 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002848}
2849
2850/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002851type VkFlags VkAttachmentDescriptionFlags
2852bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002853 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 -07002854}
2855
2856/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002857type VkFlags VkSubpassDescriptionFlags
2858bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002859 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2860 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2861 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002862}
2863
2864/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002865type VkFlags VkCommandPoolCreateFlags
2866bitfield VkCommandPoolCreateFlagBits {
2867 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2868 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002869
Ian Elliott28bd2c32017-10-13 09:21:12 -06002870 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002871 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002872}
2873
2874/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002875type VkFlags VkCommandPoolResetFlags
2876bitfield VkCommandPoolResetFlagBits {
2877 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002878}
2879
Jesse Hall3fbc8562015-11-29 22:10:52 -08002880type VkFlags VkCommandBufferResetFlags
2881bitfield VkCommandBufferResetFlagBits {
2882 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002883}
2884
Jesse Halld8bade02015-11-24 10:24:18 -08002885type VkFlags VkSampleCountFlags
2886bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002887 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2888 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2889 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2890 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2891 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2892 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2893 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2894}
2895
Jesse Halld8bade02015-11-24 10:24:18 -08002896type VkFlags VkStencilFaceFlags
2897bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002898 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2899 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002900 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002901}
2902
Jesse Halla6429252015-11-29 18:59:42 -08002903/// Instance creation flags
2904type VkFlags VkInstanceCreateFlags
2905//bitfield VkInstanceCreateFlagBits {
2906//}
2907
2908/// Device creation flags
2909type VkFlags VkDeviceCreateFlags
2910//bitfield VkDeviceCreateFlagBits {
2911//}
2912
2913/// Device queue creation flags
2914type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002915@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002916bitfield VkDeviceQueueCreateFlagBits {
2917 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2918}
Jesse Halla6429252015-11-29 18:59:42 -08002919
2920/// Query pool creation flags
2921type VkFlags VkQueryPoolCreateFlags
2922//bitfield VkQueryPoolCreateFlagBits {
2923//}
2924
2925/// Buffer view creation flags
2926type VkFlags VkBufferViewCreateFlags
2927//bitfield VkBufferViewCreateFlagBits {
2928//}
2929
2930/// Pipeline cache creation flags
2931type VkFlags VkPipelineCacheCreateFlags
2932//bitfield VkPipelineCacheCreateFlagBits {
2933//}
2934
2935/// Pipeline shader stage creation flags
2936type VkFlags VkPipelineShaderStageCreateFlags
2937//bitfield VkPipelineShaderStageCreateFlagBits {
2938//}
2939
2940/// Descriptor set layout creation flags
2941type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002942bitfield VkDescriptorSetLayoutCreateFlagBits {
2943 //@extension("VK_KHR_push_descriptor") // 81
2944 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002945
2946 //@extension("VK_EXT_descriptor_indexing") // 162
2947 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002948}
Jesse Halla6429252015-11-29 18:59:42 -08002949
2950/// Pipeline vertex input state creation flags
2951type VkFlags VkPipelineVertexInputStateCreateFlags
2952//bitfield VkPipelineVertexInputStateCreateFlagBits {
2953//}
2954
2955/// Pipeline input assembly state creation flags
2956type VkFlags VkPipelineInputAssemblyStateCreateFlags
2957//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2958//}
2959
2960/// Tessellation state creation flags
2961type VkFlags VkPipelineTessellationStateCreateFlags
2962//bitfield VkPipelineTessellationStateCreateFlagBits {
2963//}
2964
2965/// Viewport state creation flags
2966type VkFlags VkPipelineViewportStateCreateFlags
2967//bitfield VkPipelineViewportStateCreateFlagBits {
2968//}
2969
Jesse Hall3fbc8562015-11-29 22:10:52 -08002970/// Rasterization state creation flags
2971type VkFlags VkPipelineRasterizationStateCreateFlags
2972//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08002973//}
2974
2975/// Multisample state creation flags
2976type VkFlags VkPipelineMultisampleStateCreateFlags
2977//bitfield VkPipelineMultisampleStateCreateFlagBits {
2978//}
2979
2980/// Color blend state creation flags
2981type VkFlags VkPipelineColorBlendStateCreateFlags
2982//bitfield VkPipelineColorBlendStateCreateFlagBits {
2983//}
2984
2985/// Depth/stencil state creation flags
2986type VkFlags VkPipelineDepthStencilStateCreateFlags
2987//bitfield VkPipelineDepthStencilStateCreateFlagBits {
2988//}
2989
2990/// Dynamic state creation flags
2991type VkFlags VkPipelineDynamicStateCreateFlags
2992//bitfield VkPipelineDynamicStateCreateFlagBits {
2993//}
2994
2995/// Pipeline layout creation flags
2996type VkFlags VkPipelineLayoutCreateFlags
2997//bitfield VkPipelineLayoutCreateFlagBits {
2998//}
2999
3000/// Sampler creation flags
3001type VkFlags VkSamplerCreateFlags
3002//bitfield VkSamplerCreateFlagBits {
3003//}
3004
3005/// Render pass creation flags
3006type VkFlags VkRenderPassCreateFlags
3007//bitfield VkRenderPassCreateFlagBits {
3008//}
3009
3010/// Framebuffer creation flags
3011type VkFlags VkFramebufferCreateFlags
3012//bitfield VkFramebufferCreateFlagBits {
3013//}
3014
Jesse Halldc6d36c2015-11-29 19:12:15 -08003015/// Dependency flags
3016type VkFlags VkDependencyFlags
3017bitfield VkDependencyFlagBits {
3018 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003019
Ian Elliott28bd2c32017-10-13 09:21:12 -06003020 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003021 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
3022 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08003023
Daniel Koch09f7bf92017-10-05 00:26:58 -04003024 //@extension("VK_KHR_multiview") // 54
3025 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
3026
3027 //@extension("VK_KHR_device_group") // 61
3028 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08003029}
3030
Jesse Hallc7467b72015-11-29 21:05:26 -08003031/// Cull mode flags
3032type VkFlags VkCullModeFlags
3033bitfield VkCullModeFlagBits {
3034 VK_CULL_MODE_NONE = 0x00000000,
3035 VK_CULL_MODE_FRONT_BIT = 0x00000001,
3036 VK_CULL_MODE_BACK_BIT = 0x00000002,
3037 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
3038}
3039
Ian Elliott28bd2c32017-10-13 09:21:12 -06003040//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04003041
3042/// Subgroup feature flags
3043type VkFlags VkSubgroupFeatureFlags
3044bitfield VkSubgroupFeatureFlagBits {
3045 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
3046 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
3047 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
3048 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
3049 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
3050 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
3051 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
3052 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07003053
3054 //@extension("VK_NV_shader_subgroup_partitioned") // 199
3055 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003056}
3057
3058/// Peer memory feature flags
3059type VkFlags VkPeerMemoryFeatureFlags
3060bitfield VkPeerMemoryFeatureFlagBits {
3061 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
3062 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
3063 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
3064 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
3065}
3066
3067/// Memory allocation flags
3068type VkFlags VkMemoryAllocateFlags
3069bitfield VkMemoryAllocateFlagBits {
3070 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
3071}
3072
3073type VkFlags VkCommandPoolTrimFlags
3074//bitfield VkCommandPoolTrimFlagBits {
3075//}
3076
3077type VkFlags VkDescriptorUpdateTemplateCreateFlags
3078//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
3079//}
3080
3081/// External memory handle type flags
3082type VkFlags VkExternalMemoryHandleTypeFlags
3083bitfield VkExternalMemoryHandleTypeFlagBits {
3084 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3085 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3086 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3087 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
3088 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
3089 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
3090 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08003091
Jesse Hall8c954d32018-01-17 22:06:20 -08003092 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08003093 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
3094 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
3095
3096 //@extension("VK_EXT_external_memory_dma_buf") // 126
3097 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
3098
3099 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
3100 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003101}
3102
3103/// External memory feature flags
3104type VkFlags VkExternalMemoryFeatureFlags
3105bitfield VkExternalMemoryFeatureFlagBits {
3106 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
3107 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
3108 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
3109}
3110
3111/// External fence handle type flags
3112type VkFlags VkExternalFenceHandleTypeFlags
3113bitfield VkExternalFenceHandleTypeFlagBits {
3114 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3115 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3116 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3117 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
3118}
3119
3120/// External fence feature flags
3121type VkFlags VkExternalFenceFeatureFlags
3122bitfield VkExternalFenceFeatureFlagBits {
3123 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3124 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3125}
3126
3127/// Fence import flags
3128type VkFlags VkFenceImportFlags
3129bitfield VkFenceImportFlagBits {
3130 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
3131}
3132
3133/// Semaphore import flags
3134type VkFlags VkSemaphoreImportFlags
3135bitfield VkSemaphoreImportFlagBits {
3136 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
3137}
3138
3139/// External semaphore handle type flags
3140type VkFlags VkExternalSemaphoreHandleTypeFlags
3141bitfield VkExternalSemaphoreHandleTypeFlagBits {
3142 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3143 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3144 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3145 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
3146 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
3147}
3148
3149/// External semaphore feature flags
3150type VkFlags VkExternalSemaphoreFeatureFlags
3151bitfield VkExternalSemaphoreFeatureFlagBits {
3152 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3153 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3154}
3155
Jesse Hallad250842017-03-10 18:35:38 -08003156@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003157type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003158@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003159bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003160 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003161 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
3162 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
3163 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
3164 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
3165 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
3166 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
3167 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
3168 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08003169}
Jesse Halld27f6aa2015-08-15 17:58:48 -07003170
Jesse Hallad250842017-03-10 18:35:38 -08003171@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003172type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003173@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003174bitfield VkCompositeAlphaFlagBitsKHR {
3175 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3176 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3177 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3178 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3179}
3180
Jesse Hallad250842017-03-10 18:35:38 -08003181@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003182type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003183@extension("VK_KHR_swapchain") // 2
3184bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06003185 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08003186 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003187 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
3188}
3189
Ian Elliott28bd2c32017-10-13 09:21:12 -06003190@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003191@extension("VK_KHR_swapchain") // 2
3192type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06003193@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003194@extension("VK_KHR_swapchain") // 2
3195bitfield VkDeviceGroupPresentModeFlagBitsKHR {
3196 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
3197 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
3198 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
3199 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003200}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003201
Jesse Hallad250842017-03-10 18:35:38 -08003202@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003203type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003204@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003205bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003206 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3207 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3208 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3209 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003210}
3211
Jesse Hallad250842017-03-10 18:35:38 -08003212@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003213type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003214//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003215//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
3216//}
3217
Jesse Hallad250842017-03-10 18:35:38 -08003218@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003219type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003220//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003221//bitfield VkDisplayModeCreateFlagBitsKHR {
3222//}
3223
Jesse Hallad250842017-03-10 18:35:38 -08003224@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003225type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003226//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003227//bitfield VkXlibSurfaceCreateFlagBitsKHR {
3228//}
3229
Jesse Hallad250842017-03-10 18:35:38 -08003230@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003231type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003232//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003233//bitfield VkXcbSurfaceCreateFlagBitsKHR {
3234//}
3235
Jesse Hallad250842017-03-10 18:35:38 -08003236@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003237type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003238//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003239//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
3240//}
3241
Jesse Hallad250842017-03-10 18:35:38 -08003242@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003243type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003244//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003245//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
3246//}
3247
Jesse Hallad250842017-03-10 18:35:38 -08003248@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003249type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003250//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003251//bitfield VkWin32SurfaceCreateFlagBitsKHR {
3252//}
3253
Jesse Hallad250842017-03-10 18:35:38 -08003254@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003255type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08003256@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003257bitfield VkSwapchainImageUsageFlagBitsANDROID {
3258 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
3259}
3260
Jesse Hallad250842017-03-10 18:35:38 -08003261@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003262type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003263@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003264bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08003265 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3266 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3267 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08003268 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3269 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
3270}
3271
Jesse Hallf47e8f82018-10-27 23:41:45 -07003272@extension("VK_EXT_transform_feedback") // 29
3273type VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT
3274//@extension("VK_EXT_transform_feedback") // 29
3275//bitfield VkPipelineRasterizationStateStreamCreateFlagBitsEXT {
3276//}
3277
Jesse Hallad250842017-03-10 18:35:38 -08003278@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003279type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003280@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003281bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003282 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
3283 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
3284 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
3285 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003286}
3287
Jesse Hallad250842017-03-10 18:35:38 -08003288@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003289type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003290@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003291bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003292 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
3293 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
3294 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13003295}
3296
Daniel Koch09f7bf92017-10-05 00:26:58 -04003297@extension("VK_KHR_device_group") // 61
3298type VkFlags VkPeerMemoryFeatureFlagsKHR
3299@extension("VK_KHR_device_group") // 61
3300bitfield VkPeerMemoryFeatureFlagBitsKHR {
3301 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
3302 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
3303 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
3304 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003305}
3306
Daniel Koch09f7bf92017-10-05 00:26:58 -04003307@extension("VK_KHR_device_group") // 61
3308type VkFlags VkMemoryAllocateFlagsKHR
3309@extension("VK_KHR_device_group") // 61
3310bitfield VkMemoryAllocateFlagBitsKHR {
3311 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003312}
3313
3314@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003315type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08003316//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003317//bitfield VkViSurfaceCreateFlagBitsNN {
3318//}
3319
Jesse Hallad250842017-03-10 18:35:38 -08003320@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003321type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003322//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003323//bitfield VkCommandPoolTrimFlagBitsKHR {
3324//}
3325
Jesse Hall9492f992017-08-28 12:10:06 -07003326@extension("VK_KHR_external_memory_capabilities") // 72
3327type VkFlags VkExternalMemoryHandleTypeFlagsKHR
3328@extension("VK_KHR_external_memory_capabilities") // 72
3329bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
3330 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3331 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3332 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3333 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
3334 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
3335 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
3336 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08003337}
3338
Jesse Hall9492f992017-08-28 12:10:06 -07003339@extension("VK_KHR_external_memory_capabilities") // 72
3340type VkFlags VkExternalMemoryFeatureFlagsKHR
3341@extension("VK_KHR_external_memory_capabilities") // 72
3342bitfield VkExternalMemoryFeatureFlagBitsKHR {
3343 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
3344 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
3345 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08003346}
3347
Jesse Hall9492f992017-08-28 12:10:06 -07003348@extension("VK_KHR_external_semaphore_capabilities") // 77
3349type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
3350@extension("VK_KHR_external_semaphore_capabilities") // 77
3351bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
3352 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
3353 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
3354 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
3355 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
3356 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08003357}
3358
Jesse Hall9492f992017-08-28 12:10:06 -07003359@extension("VK_KHR_external_semaphore_capabilities") // 77
3360type VkFlags VkExternalSemaphoreFeatureFlagsKHR
3361@extension("VK_KHR_external_semaphore_capabilities") // 77
3362bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
3363 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3364 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3365}
3366
3367@extension("VK_KHR_external_semaphore") // 78
3368type VkFlags VkSemaphoreImportFlagsKHR
3369@extension("VK_KHR_external_semaphore") // 78
3370bitfield VkSemaphoreImportFlagBitsKHR {
3371 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003372}
3373
Jesse Halla13a3cf2018-07-09 15:51:52 -07003374@extension("VK_EXT_conditional_rendering") // 82
3375type VkFlags VkConditionalRenderingFlagsEXT
3376@extension("VK_EXT_conditional_rendering") // 82
3377bitfield VkConditionalRenderingFlagBitsEXT {
3378 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3379}
3380
Jesse Hallad250842017-03-10 18:35:38 -08003381@extension("VK_KHR_descriptor_update_template") // 86
3382type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3383//@extension("VK_KHR_descriptor_update_template") // 86
3384//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3385//}
3386
3387@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003388type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003389@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003390bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003391 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3392 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3393 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3394 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003395}
3396
Jesse Hallad250842017-03-10 18:35:38 -08003397@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003398type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003399@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003400bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003401 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3402 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003403}
3404
Jesse Hallad250842017-03-10 18:35:38 -08003405@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003406type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003407@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003408bitfield VkSurfaceCounterFlagBitsEXT {
3409 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3410}
3411
Jesse Hallad250842017-03-10 18:35:38 -08003412@extension("VK_NV_viewport_swizzle") // 99
3413type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3414//@extension("VK_NV_viewport_swizzle") // 99
3415//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3416//}
3417
3418@extension("VK_EXT_discard_rectangles") // 100
3419type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3420//@extension("VK_EXT_discard_rectangles") // 100
3421//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3422//}
3423
Jesse Hall8c954d32018-01-17 22:06:20 -08003424@extension("VK_EXT_conservative_rasterization") // 102
3425type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3426//@extension("VK_EXT_conservative_rasterization") // 102
3427//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3428//}
3429
Jesse Hall9492f992017-08-28 12:10:06 -07003430@extension("VK_KHR_external_fence_capabilities") // 113
3431type VkFlags VkExternalFenceHandleTypeFlagsKHR
3432@extension("VK_KHR_external_fence_capabilities") // 113
3433bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3434 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3435 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3436 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3437 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3438}
3439
3440@extension("VK_KHR_external_fence_capabilities") // 113
3441type VkFlags VkExternalFenceFeatureFlagsKHR
3442@extension("VK_KHR_external_fence_capabilities") // 113
3443bitfield VkExternalFenceFeatureFlagBitsKHR {
3444 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3445 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3446}
3447
3448@extension("VK_KHR_external_fence") // 114
3449type VkFlags VkFenceImportFlagsKHR
3450@extension("VK_KHR_external_fence") // 114
3451bitfield VkFenceImportFlagBitsKHR {
3452 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3453}
3454
Jesse Hallad250842017-03-10 18:35:38 -08003455@extension("VK_MVK_ios_surface") // 123
3456type VkFlags VkIOSSurfaceCreateFlagsMVK
3457//@extension("VK_MVK_ios_surface") // 123
3458//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3459//}
3460
3461@extension("VK_MVK_macos_surface") // 124
3462type VkFlags VkMacOSSurfaceCreateFlagsMVK
3463//@extension("VK_MVK_macos_surface") // 124
3464//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3465//}
3466
Jesse Hall8c954d32018-01-17 22:06:20 -08003467@extension("VK_EXT_debug_utils") // 129
3468type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3469//@extension("VK_EXT_debug_utils") // 129
3470//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3471//}
3472
3473@extension("VK_EXT_debug_utils") // 129
3474type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3475//@extension("VK_EXT_debug_utils") // 129
3476//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3477//}
3478
3479@extension("VK_EXT_debug_utils") // 129
3480type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3481@extension("VK_EXT_debug_utils") // 129
3482bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3483 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3484 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3485 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3486 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3487}
3488
3489@extension("VK_EXT_debug_utils") // 129
3490type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3491@extension("VK_EXT_debug_utils") // 129
3492bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3493 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3494 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3495 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3496}
3497
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003498@extension("VK_NV_fragment_coverage_to_color") // 150
3499type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3500@extension("VK_NV_fragment_coverage_to_color") // 150
3501//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3502//}
3503
3504@extension("VK_NV_framebuffer_mixed_samples") // 153
3505type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3506@extension("VK_NV_framebuffer_mixed_samples") // 153
3507//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3508//}
3509
Jesse Hall77726222017-09-19 14:49:27 -05003510@extension("VK_EXT_validation_cache") // 161
3511type VkFlags VkValidationCacheCreateFlagsEXT
3512@extension("VK_EXT_validation_cache") // 161
3513//bitfield VkValidationCacheCreateFlagBitsEXT {
3514//}
3515
Jesse Hall72e6a132018-04-06 13:00:44 -07003516@extension("VK_EXT_descriptor_indexing") // 162
3517type VkFlags VkDescriptorBindingFlagsEXT
3518@extension("VK_EXT_descriptor_indexing") // 162
3519bitfield VkDescriptorBindingFlagBitsEXT {
3520 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3521 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3522 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3523 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3524}
3525
Jesse Hallbeea46d2018-12-04 14:38:07 -08003526@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003527type VkFlags VkGeometryFlagsNV
Jesse Hallbeea46d2018-12-04 14:38:07 -08003528@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003529bitfield VkGeometryFlagBitsNV {
3530 VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001,
3531 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +02003532}
3533
Jesse Hallbeea46d2018-12-04 14:38:07 -08003534@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003535type VkFlags VkGeometryInstanceFlagsNV
Jesse Hallbeea46d2018-12-04 14:38:07 -08003536@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003537bitfield VkGeometryInstanceFlagBitsNV {
3538 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001,
3539 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002,
3540 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004,
3541 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
Jesse Hallb5297192018-09-22 20:52:13 +02003542}
3543
Jesse Hallbeea46d2018-12-04 14:38:07 -08003544@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003545type VkFlags VkBuildAccelerationStructureFlagsNV
Jesse Hallbeea46d2018-12-04 14:38:07 -08003546@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003547bitfield VkBuildAccelerationStructureFlagBitsNV {
3548 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001,
3549 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002,
3550 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004,
3551 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008,
3552 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02003553}
3554
Jesse Hall497c46f2018-10-08 12:52:48 -07003555@extension("VK_FUCHSIA_imagepipe_surface") // 215
3556type VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA
3557//@extension("VK_FUCHSIA_imagepipe_surface") // 215
3558//bitfield VkImagePipeSurfaceCreateFlagBitsFUCHSIA {
3559//}
3560
Jesse Halld27f6aa2015-08-15 17:58:48 -07003561//////////////////
3562// Structures //
3563//////////////////
3564
3565class VkOffset2D {
3566 s32 x
3567 s32 y
3568}
3569
3570class VkOffset3D {
3571 s32 x
3572 s32 y
3573 s32 z
3574}
3575
3576class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003577 u32 width
3578 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003579}
3580
3581class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003582 u32 width
3583 u32 height
3584 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003585}
3586
3587class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003588 f32 x
3589 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003590 f32 width
3591 f32 height
3592 f32 minDepth
3593 f32 maxDepth
3594}
3595
3596class VkRect2D {
3597 VkOffset2D offset
3598 VkExtent2D extent
3599}
3600
Jesse Halla15a4bf2015-11-19 22:48:02 -08003601class VkClearRect {
3602 VkRect2D rect
3603 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003604 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003605}
3606
Jesse Hall65ab5522015-11-30 00:07:16 -08003607class VkComponentMapping {
3608 VkComponentSwizzle r
3609 VkComponentSwizzle g
3610 VkComponentSwizzle b
3611 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003612}
3613
3614class VkPhysicalDeviceProperties {
3615 u32 apiVersion
3616 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003617 u32 vendorID
3618 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003619 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003620 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3621 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003622 VkPhysicalDeviceLimits limits
3623 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003624}
3625
3626class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003627 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003628 u32 specVersion /// version of the extension specification implemented
3629}
3630
3631class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003632 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003633 u32 specVersion /// version of the layer specification implemented
3634 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003635 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003636}
3637
Jesse Halla366a512015-11-19 22:30:07 -08003638class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003639 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3640 const void* pNext /// Next structure in chain
3641 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003642 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003643 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003644 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003645 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003646 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003647 const VkSemaphore* pSignalSemaphores
3648}
3649
Jesse Halld27f6aa2015-08-15 17:58:48 -07003650class VkApplicationInfo {
3651 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3652 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003653 const char* pApplicationName
3654 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003655 const char* pEngineName
3656 u32 engineVersion
3657 u32 apiVersion
3658}
3659
Jesse Hall3fbc8562015-11-29 22:10:52 -08003660class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003661 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003662 PFN_vkAllocationFunction pfnAllocation
3663 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003664 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003665 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003666 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003667}
3668
3669class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003670 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3671 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003672 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003673 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003674 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003675 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003676}
3677
3678class VkDeviceCreateInfo {
3679 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3680 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003681 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003682 u32 queueCreateInfoCount
3683 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003684 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003685 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003686 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003687 const char* const* ppEnabledExtensionNames
3688 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003689}
3690
3691class VkInstanceCreateInfo {
3692 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3693 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003694 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003695 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003696 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003697 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003698 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003699 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3700}
3701
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003702class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003703 VkQueueFlags queueFlags /// Queue flags
3704 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003705 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003706 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003707}
3708
3709class VkPhysicalDeviceMemoryProperties {
3710 u32 memoryTypeCount
3711 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3712 u32 memoryHeapCount
3713 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3714}
3715
Jesse Hall3fbc8562015-11-29 22:10:52 -08003716class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003717 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003718 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003719 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003720 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3721}
3722
3723class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003724 VkDeviceSize size /// Specified in bytes
3725 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003726 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3727}
3728
3729class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003730 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003731 VkExtent3D imageGranularity
3732 VkSparseImageFormatFlags flags
3733}
3734
3735class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003736 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003737 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003738 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3739 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3740 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003741}
3742
3743class VkMemoryType {
3744 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3745 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3746}
3747
3748class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003749 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003750 VkMemoryHeapFlags flags /// Flags for the heap
3751}
3752
3753class VkMappedMemoryRange {
3754 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3755 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003756 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003757 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3758 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003759}
3760
3761class VkFormatProperties {
3762 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3763 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003764 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003765}
3766
3767class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003768 VkExtent3D maxExtent /// max image dimensions for this resource type
3769 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003770 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003771 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3772 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3773}
3774
Jesse Halla15a4bf2015-11-19 22:48:02 -08003775class VkDescriptorImageInfo {
3776 VkSampler sampler
3777 VkImageView imageView
3778 VkImageLayout imageLayout
3779}
3780
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003781class VkDescriptorBufferInfo {
3782 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3783 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3784 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003785}
3786
Jesse Halld27f6aa2015-08-15 17:58:48 -07003787class VkWriteDescriptorSet {
3788 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3789 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003790 VkDescriptorSet dstSet /// Destination descriptor set
3791 u32 dstBinding /// Binding within the destination descriptor set to write
3792 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003793 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003794 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 -08003795 const VkDescriptorImageInfo* pImageInfo
3796 const VkDescriptorBufferInfo* pBufferInfo
3797 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003798}
3799
3800class VkCopyDescriptorSet {
3801 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3802 const void* pNext /// Pointer to next structure
3803 VkDescriptorSet srcSet /// Source descriptor set
3804 u32 srcBinding /// Binding within the source descriptor set to copy from
3805 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003806 VkDescriptorSet dstSet /// Destination descriptor set
3807 u32 dstBinding /// Binding within the destination descriptor set to copy to
3808 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003809 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003810}
3811
3812class VkBufferCreateInfo {
3813 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3814 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003815 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003816 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003817 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003818 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003819 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003820 const u32* pQueueFamilyIndices
3821}
3822
3823class VkBufferViewCreateInfo {
3824 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3825 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003826 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003827 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003828 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003829 VkDeviceSize offset /// Specified in bytes
3830 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003831}
3832
3833class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003834 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003835 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003836 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003837}
3838
3839class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003840 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003841 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003842 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003843 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003844 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003845}
3846
3847class VkMemoryBarrier {
3848 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3849 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003850 VkAccessFlags srcAccessMask
3851 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003852}
3853
3854class VkBufferMemoryBarrier {
3855 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3856 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003857 VkAccessFlags srcAccessMask
3858 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003859 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003860 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003861 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003862 VkDeviceSize offset /// Offset within the buffer to sync
3863 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003864}
3865
3866class VkImageMemoryBarrier {
3867 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3868 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003869 VkAccessFlags srcAccessMask
3870 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003871 VkImageLayout oldLayout /// Current layout of the image
3872 VkImageLayout newLayout /// New layout to transition the image to
3873 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003874 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003875 VkImage image /// Image to sync
3876 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3877}
3878
3879class VkImageCreateInfo {
3880 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3881 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003882 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003883 VkImageType imageType
3884 VkFormat format
3885 VkExtent3D extent
3886 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003887 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003888 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003889 VkImageTiling tiling
3890 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003891 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003892 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003893 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003894 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003895}
3896
3897class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003898 VkDeviceSize offset /// Specified in bytes
3899 VkDeviceSize size /// Specified in bytes
3900 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003901 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003902 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003903}
3904
3905class VkImageViewCreateInfo {
3906 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3907 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003908 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003909 VkImage image
3910 VkImageViewType viewType
3911 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003912 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003913 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003914}
3915
3916class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003917 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003918 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003919 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003920}
3921
Jesse Halla6429252015-11-29 18:59:42 -08003922class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003923 VkDeviceSize resourceOffset /// Specified in bytes
3924 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003925 VkDeviceMemory memory
3926 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003927 VkSparseMemoryBindFlags flags
3928}
3929
Jesse Halla6429252015-11-29 18:59:42 -08003930class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003931 VkImageSubresource subresource
3932 VkOffset3D offset
3933 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003934 VkDeviceMemory memory
3935 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003936 VkSparseMemoryBindFlags flags
3937}
3938
Jesse Halla6429252015-11-29 18:59:42 -08003939class VkSparseBufferMemoryBindInfo {
3940 VkBuffer buffer
3941 u32 bindCount
3942 const VkSparseMemoryBind* pBinds
3943}
3944
3945class VkSparseImageOpaqueMemoryBindInfo {
3946 VkImage image
3947 u32 bindCount
3948 const VkSparseMemoryBind* pBinds
3949}
3950
3951class VkSparseImageMemoryBindInfo {
3952 VkImage image
3953 u32 bindCount
3954 const VkSparseMemoryBind* pBinds
3955}
3956
3957class VkBindSparseInfo {
3958 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3959 const void* pNext
3960 u32 waitSemaphoreCount
3961 const VkSemaphore* pWaitSemaphores
3962 u32 numBufferBinds
3963 const VkSparseBufferMemoryBindInfo* pBufferBinds
3964 u32 numImageOpaqueBinds
3965 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
3966 u32 numImageBinds
3967 const VkSparseImageMemoryBindInfo* pImageBinds
3968 u32 signalSemaphoreCount
3969 const VkSemaphore* pSignalSemaphores
3970}
3971
Jesse Hall65ab5522015-11-30 00:07:16 -08003972class VkImageSubresourceLayers {
3973 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003974 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08003975 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003976 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003977}
3978
Jesse Halld27f6aa2015-08-15 17:58:48 -07003979class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08003980 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003981 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08003982 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08003983 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07003984 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
3985}
3986
3987class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08003988 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003989 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08003990 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08003991 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07003992}
3993
3994class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003995 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003996 u32 bufferRowLength /// Specified in texels
3997 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08003998 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07003999 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
4000 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
4001}
4002
4003class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08004004 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07004005 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08004006 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08004007 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004008 VkExtent3D extent
4009}
4010
4011class VkShaderModuleCreateInfo {
4012 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
4013 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004014 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07004015 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08004016 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004017}
4018
Jesse Halld27f6aa2015-08-15 17:58:48 -07004019class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08004020 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07004021 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08004022 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07004023 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
4024 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
4025}
4026
4027class VkDescriptorSetLayoutCreateInfo {
4028 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
4029 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004030 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08004031 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08004032 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07004033}
4034
Jesse Hall65ab5522015-11-30 00:07:16 -08004035class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004036 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08004037 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004038}
4039
4040class VkDescriptorPoolCreateInfo {
4041 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
4042 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08004043 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004044 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08004045 u32 poolSizeCount
4046 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004047}
4048
Jesse Hall3fbc8562015-11-29 22:10:52 -08004049class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004050 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08004051 const void* pNext /// Pointer to next structure
4052 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08004053 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08004054 const VkDescriptorSetLayout* pSetLayouts
4055}
4056
Jesse Halld27f6aa2015-08-15 17:58:48 -07004057class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08004058 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07004059 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08004060 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07004061}
4062
4063class VkSpecializationInfo {
4064 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08004065 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004066 platform.size_t dataSize /// Size in bytes of pData
4067 const void* pData /// Pointer to SpecConstant data
4068}
4069
4070class VkPipelineShaderStageCreateInfo {
4071 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
4072 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004073 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004074 VkShaderStageFlagBits stage
4075 VkShaderModule module
4076 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07004077 const VkSpecializationInfo* pSpecializationInfo
4078}
4079
4080class VkComputePipelineCreateInfo {
4081 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
4082 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004083 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004084 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004085 VkPipelineLayout layout /// Interface layout of the pipeline
4086 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
4087 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
4088}
4089
4090class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004091 u32 binding /// Vertex buffer binding id
4092 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08004093 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07004094}
4095
4096class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004097 u32 location /// location of the shader vertex attrib
4098 u32 binding /// Vertex buffer binding id
4099 VkFormat format /// format of source data
4100 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004101}
4102
4103class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08004104 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
4105 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004106 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08004107 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07004108 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08004109 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004110 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
4111}
4112
4113class VkPipelineInputAssemblyStateCreateInfo {
4114 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
4115 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004116 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004117 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004118 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004119}
4120
4121class VkPipelineTessellationStateCreateInfo {
4122 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
4123 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004124 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004125 u32 patchControlPoints
4126}
4127
4128class VkPipelineViewportStateCreateInfo {
4129 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
4130 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004131 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004132 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004133 const VkViewport* pViewports
4134 u32 scissorCount
4135 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07004136}
4137
Jesse Hall3fbc8562015-11-29 22:10:52 -08004138class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08004139 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004140 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004141 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08004142 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004143 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004144 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08004145 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07004146 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004147 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08004148 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004149 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08004150 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004151 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07004152}
4153
4154class VkPipelineMultisampleStateCreateInfo {
4155 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
4156 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004157 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08004158 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004159 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004160 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004161 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08004162 VkBool32 alphaToCoverageEnable
4163 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004164}
4165
4166class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004167 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004168 VkBlendFactor srcColorBlendFactor
4169 VkBlendFactor dstColorBlendFactor
4170 VkBlendOp colorBlendOp
4171 VkBlendFactor srcAlphaBlendFactor
4172 VkBlendFactor dstAlphaBlendFactor
4173 VkBlendOp alphaBlendOp
4174 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07004175}
4176
4177class VkPipelineColorBlendStateCreateInfo {
4178 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
4179 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004180 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004181 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004182 VkLogicOp logicOp
4183 u32 attachmentCount /// # of pAttachments
4184 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08004185 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07004186}
4187
4188class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08004189 VkStencilOp failOp
4190 VkStencilOp passOp
4191 VkStencilOp depthFailOp
4192 VkCompareOp compareOp
4193 u32 compareMask
4194 u32 writeMask
4195 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07004196}
4197
4198class VkPipelineDepthStencilStateCreateInfo {
4199 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
4200 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004201 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004202 VkBool32 depthTestEnable
4203 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004204 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004205 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
4206 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004207 VkStencilOpState front
4208 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004209 f32 minDepthBounds
4210 f32 maxDepthBounds
4211}
4212
4213class VkPipelineDynamicStateCreateInfo {
4214 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
4215 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004216 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004217 u32 dynamicStateCount
4218 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004219}
4220
4221class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08004222 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
4223 const void* pNext /// Pointer to next structure
4224 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004225 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08004226 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004227 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
4228 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
4229 const VkPipelineTessellationStateCreateInfo* pTessellationState
4230 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08004231 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07004232 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
4233 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
4234 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004235 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08004236 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004237 VkRenderPass renderPass
4238 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08004239 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
4240 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 -07004241}
4242
4243class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08004244 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
4245 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004246 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08004247 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
4248 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07004249}
4250
4251class VkPushConstantRange {
4252 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08004253 u32 offset /// Start of the range, in bytes
4254 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004255}
4256
4257class VkPipelineLayoutCreateInfo {
4258 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
4259 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004260 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08004261 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004262 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
4263 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
4264 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
4265}
4266
4267class VkSamplerCreateInfo {
4268 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
4269 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004270 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08004271 VkFilter magFilter /// Filter mode for magnification
4272 VkFilter minFilter /// Filter mode for minifiation
4273 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
4274 VkSamplerAddressMode addressModeU
4275 VkSamplerAddressMode addressModeV
4276 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07004277 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004278 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004279 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004280 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004281 VkCompareOp compareOp
4282 f32 minLod
4283 f32 maxLod
4284 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004285 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004286}
4287
Jesse Hall3fbc8562015-11-29 22:10:52 -08004288class VkCommandPoolCreateInfo {
4289 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004290 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004291 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004292 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004293}
4294
Jesse Hall3fbc8562015-11-29 22:10:52 -08004295class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004296 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004297 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004298 VkCommandPool commandPool
4299 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08004300 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004301}
4302
Jesse Hall3dd678a2016-01-08 21:52:01 -08004303class VkCommandBufferInheritanceInfo {
4304 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004305 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004306 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004307 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004308 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004309 VkBool32 occlusionQueryEnable
4310 VkQueryControlFlags queryFlags
4311 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004312}
4313
Jesse Hall3dd678a2016-01-08 21:52:01 -08004314class VkCommandBufferBeginInfo {
4315 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
4316 const void* pNext /// Pointer to next structure
4317 VkCommandBufferUsageFlags flags /// Command buffer usage flags
4318 const VkCommandBufferInheritanceInfo* pInheritanceInfo
4319}
4320
Jesse Halld27f6aa2015-08-15 17:58:48 -07004321class VkRenderPassBeginInfo {
4322 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
4323 const void* pNext /// Pointer to next structure
4324 VkRenderPass renderPass
4325 VkFramebuffer framebuffer
4326 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004327 u32 clearValueCount
4328 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07004329}
4330
4331@union
4332/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
4333class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004334 f32[4] float32
4335 s32[4] int32
4336 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07004337}
4338
4339class VkClearDepthStencilValue {
4340 f32 depth
4341 u32 stencil
4342}
4343
4344@union
4345/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
4346class VkClearValue {
4347 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004348 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07004349}
4350
Jesse Hallae38f732015-11-19 21:32:50 -08004351class VkClearAttachment {
4352 VkImageAspectFlags aspectMask
4353 u32 colorAttachment
4354 VkClearValue clearValue
4355}
4356
Jesse Halld27f6aa2015-08-15 17:58:48 -07004357class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08004358 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004359 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08004360 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07004361 VkAttachmentLoadOp loadOp /// Load op for color or depth data
4362 VkAttachmentStoreOp storeOp /// Store op for color or depth data
4363 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
4364 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
4365 VkImageLayout initialLayout
4366 VkImageLayout finalLayout
4367}
4368
4369class VkAttachmentReference {
4370 u32 attachment
4371 VkImageLayout layout
4372}
4373
4374class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004375 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08004376 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08004377 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004378 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08004379 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004380 const VkAttachmentReference* pColorAttachments
4381 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08004382 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08004383 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08004384 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004385}
4386
4387class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004388 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08004389 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004390 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08004391 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004392 VkAccessFlags srcAccessMask
4393 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08004394 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004395}
4396
4397class VkRenderPassCreateInfo {
4398 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
4399 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004400 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004401 u32 attachmentCount
4402 const VkAttachmentDescription* pAttachments
4403 u32 subpassCount
4404 const VkSubpassDescription* pSubpasses
4405 u32 dependencyCount
4406 const VkSubpassDependency* pDependencies
4407}
4408
4409class VkEventCreateInfo {
4410 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4411 const void* pNext /// Pointer to next structure
4412 VkEventCreateFlags flags /// Event creation flags
4413}
4414
4415class VkFenceCreateInfo {
4416 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4417 const void* pNext /// Pointer to next structure
4418 VkFenceCreateFlags flags /// Fence creation flags
4419}
4420
4421class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004422 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4423 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4424 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4425 VkBool32 independentBlend /// blending operations are controlled per-attachment
4426 VkBool32 geometryShader /// geometry stage
4427 VkBool32 tessellationShader /// tessellation control and evaluation stage
4428 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004429 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004430 VkBool32 logicOp /// logic operations
4431 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004432 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004433 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004434 VkBool32 depthBiasClamp /// depth bias clamping
4435 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4436 VkBool32 depthBounds /// depth bounds test
4437 VkBool32 wideLines /// lines with width greater than 1
4438 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004439 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4440 VkBool32 multiViewport
4441 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004442 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4443 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4444 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004445 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004446 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004447 VkBool32 vertexPipelineStoresAndAtomics
4448 VkBool32 fragmentStoresAndAtomics
4449 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004450 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4451 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4452 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004453 VkBool32 shaderStorageImageReadWithoutFormat
4454 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004455 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4456 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4457 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4458 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4459 VkBool32 shaderClipDistance /// clip distance in shaders
4460 VkBool32 shaderCullDistance /// cull distance in shaders
4461 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4462 VkBool32 shaderInt64 /// 64-bit integers in shaders
4463 VkBool32 shaderInt16 /// 16-bit integers in shaders
4464 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004465 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004466 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4467 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4468 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4469 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4470 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4471 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4472 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4473 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4474 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004475 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004476 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004477}
4478
4479class VkPhysicalDeviceLimits {
4480 /// resource maximum sizes
4481 u32 maxImageDimension1D /// max 1D image dimension
4482 u32 maxImageDimension2D /// max 2D image dimension
4483 u32 maxImageDimension3D /// max 3D image dimension
4484 u32 maxImageDimensionCube /// max cubemap image dimension
4485 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004486 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004487 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4488 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004489 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4490 /// memory limits
4491 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004492 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004493 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4494 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004495 /// descriptor set limits
4496 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004497 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4498 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4499 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4500 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4501 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004502 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004503 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004504 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4505 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004506 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004507 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004508 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004509 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4510 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004511 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004512 /// vertex stage limits
4513 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004514 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004515 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4516 u32 maxVertexInputBindingStride /// max vertex input binding stride
4517 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4518 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004519 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004520 u32 maxTessellationPatchSize /// max patch size (vertices)
4521 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4522 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4523 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4524 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4525 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4526 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004527 /// geometry stage limits
4528 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4529 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4530 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4531 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4532 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4533 /// fragment stage limits
4534 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004535 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004536 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004537 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4538 /// compute stage limits
4539 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4540 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4541 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4542 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4543
4544 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4545 u32 subTexelPrecisionBits /// num bits of subtexel precision
4546 u32 mipmapPrecisionBits /// num bits of mipmap precision
4547
4548 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004549 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004550
4551 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4552 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4553
4554 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004555 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4556 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4557 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4558
Jesse Halldc6d36c2015-11-29 19:12:15 -08004559 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4560 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4561 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4562 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004563
Jesse Hallfbf97b02015-11-20 14:17:03 -08004564 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004565 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004566 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004567 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4568 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4569 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4570 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4571
4572 u32 maxFramebufferWidth /// max width for a framebuffer
4573 u32 maxFramebufferHeight /// max height for a framebuffer
4574 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004575 VkSampleCountFlags framebufferColorSampleCounts
4576 VkSampleCountFlags framebufferDepthSampleCounts
4577 VkSampleCountFlags framebufferStencilSampleCounts
4578 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004579 u32 maxColorAttachments /// max num of framebuffer color attachments
4580
Jesse Hall091ed9e2015-11-30 00:55:29 -08004581 VkSampleCountFlags sampledImageColorSampleCounts
4582 VkSampleCountFlags sampledImageIntegerSampleCounts
4583 VkSampleCountFlags sampledImageDepthSampleCounts
4584 VkSampleCountFlags sampledImageStencilSampleCounts
4585 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004586 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004587 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004588
Jesse Halla9bb62b2015-11-21 19:31:56 -08004589 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004590
4591 u32 maxClipDistances /// max number of clip distances
4592 u32 maxCullDistances /// max number of cull distances
4593 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4594
Jesse Hallfbf97b02015-11-20 14:17:03 -08004595 u32 discreteQueuePriorities
4596
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004597 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4598 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004599 f32 pointSizeGranularity /// granularity of supported point sizes
4600 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004601 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004602 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004603
Jesse Hall65ab5522015-11-30 00:07:16 -08004604 VkDeviceSize optimalBufferCopyOffsetAlignment
4605 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004606 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004607}
4608
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004609class VkPhysicalDeviceSparseProperties {
4610 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 -08004611 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 -07004612 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4613 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 -07004614 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
4615}
4616
Jesse Halld27f6aa2015-08-15 17:58:48 -07004617class VkSemaphoreCreateInfo {
4618 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4619 const void* pNext /// Pointer to next structure
4620 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4621}
4622
4623class VkQueryPoolCreateInfo {
4624 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4625 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004626 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004627 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004628 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004629 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4630}
4631
4632class VkFramebufferCreateInfo {
4633 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4634 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004635 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004636 VkRenderPass renderPass
4637 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004638 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004639 u32 width
4640 u32 height
4641 u32 layers
4642}
4643
Jesse Hall3fbc8562015-11-29 22:10:52 -08004644class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004645 u32 vertexCount
4646 u32 instanceCount
4647 u32 firstVertex
4648 u32 firstInstance
4649}
4650
Jesse Hall3fbc8562015-11-29 22:10:52 -08004651class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004652 u32 indexCount
4653 u32 instanceCount
4654 u32 firstIndex
4655 s32 vertexOffset
4656 u32 firstInstance
4657}
4658
Jesse Hall3fbc8562015-11-29 22:10:52 -08004659class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004660 u32 x
4661 u32 y
4662 u32 z
4663}
4664
Jesse Hall54f8d132018-04-18 08:16:59 -07004665class VkBaseOutStructure {
4666 VkStructureType sType
4667 void* pNext
4668}
4669
4670class VkBaseInStructure {
4671 VkStructureType sType
4672 const void* pNext
4673}
4674
Ian Elliott28bd2c32017-10-13 09:21:12 -06004675//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004676
4677class VkPhysicalDeviceSubgroupProperties {
4678 VkStructureType sType
4679 void* pNext
4680 u32 subgroupSize
4681 VkShaderStageFlags supportedStages
4682 VkSubgroupFeatureFlags supportedOperations
4683 VkBool32 quadOperationsInAllStages
4684}
4685
4686class VkBindBufferMemoryInfo {
4687 VkStructureType sType
4688 const void* pNext
4689 VkBuffer buffer
4690 VkDeviceMemory memory
4691 VkDeviceSize memoryOffset
4692}
4693
4694class VkBindImageMemoryInfo {
4695 VkStructureType sType
4696 const void* pNext
4697 VkImage image
4698 VkDeviceMemory memory
4699 VkDeviceSize memoryOffset
4700}
4701
4702class VkPhysicalDevice16BitStorageFeatures {
4703 VkStructureType sType
4704 void* pNext
4705 VkBool32 storageBuffer16BitAccess
4706 VkBool32 uniformAndStorageBuffer16BitAccess
4707 VkBool32 storagePushConstant16
4708 VkBool32 storageInputOutput16
4709}
4710
4711class VkMemoryDedicatedRequirements {
4712 VkStructureType sType
4713 void* pNext
4714 VkBool32 prefersDedicatedAllocation
4715 VkBool32 requiresDedicatedAllocation
4716}
4717
4718class VkMemoryDedicatedAllocateInfo {
4719 VkStructureType sType
4720 const void* pNext
4721 VkImage image
4722 VkBuffer buffer
4723}
4724
4725class VkMemoryAllocateFlagsInfo {
4726 VkStructureType sType
4727 const void* pNext
4728 VkMemoryAllocateFlags flags
4729 u32 deviceMask
4730}
4731
4732class VkDeviceGroupRenderPassBeginInfo {
4733 VkStructureType sType
4734 const void* pNext
4735 u32 deviceMask
4736 u32 deviceRenderAreaCount
4737 const VkRect2D* pDeviceRenderAreas
4738}
4739
4740class VkDeviceGroupCommandBufferBeginInfo {
4741 VkStructureType sType
4742 const void* pNext
4743 u32 deviceMask
4744}
4745
4746class VkDeviceGroupSubmitInfo {
4747 VkStructureType sType
4748 const void* pNext
4749 u32 waitSemaphoreCount
4750 const u32* pWaitSemaphoreDeviceIndices
4751 u32 commandBufferCount
4752 const u32* pCommandBufferDeviceMasks
4753 u32 signalSemaphoreCount
4754 const u32* pSignalSemaphoreDeviceIndices
4755}
4756
4757class VkDeviceGroupBindSparseInfo {
4758 VkStructureType sType
4759 const void* pNext
4760 u32 resourceDeviceIndex
4761 u32 memoryDeviceIndex
4762}
4763
4764class VkBindBufferMemoryDeviceGroupInfo {
4765 VkStructureType sType
4766 const void* pNext
4767 u32 deviceIndexCount
4768 const u32* pDeviceIndices
4769}
4770
4771class VkBindImageMemoryDeviceGroupInfo {
4772 VkStructureType sType
4773 const void* pNext
4774 u32 deviceIndexCount
4775 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004776 u32 splitInstanceBindRegionCount
4777 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004778}
4779
4780class VkPhysicalDeviceGroupProperties {
4781 VkStructureType sType
4782 void* pNext
4783 u32 physicalDeviceCount
4784 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4785 VkBool32 subsetAllocation
4786}
4787
4788class VkDeviceGroupDeviceCreateInfo {
4789 VkStructureType sType
4790 const void* pNext
4791 u32 physicalDeviceCount
4792 const VkPhysicalDevice* pPhysicalDevices
4793}
4794
4795class VkBufferMemoryRequirementsInfo2 {
4796 VkStructureType sType
4797 const void* pNext
4798 VkBuffer buffer
4799}
4800
4801class VkImageMemoryRequirementsInfo2 {
4802 VkStructureType sType
4803 const void* pNext
4804 VkImage image
4805}
4806
4807class VkImageSparseMemoryRequirementsInfo2 {
4808 VkStructureType sType
4809 const void* pNext
4810 VkImage image
4811}
4812
4813class VkMemoryRequirements2 {
4814 VkStructureType sType
4815 void* pNext
4816 VkMemoryRequirements memoryRequirements
4817}
4818
4819class VkSparseImageMemoryRequirements2 {
4820 VkStructureType sType
4821 void* pNext
4822 VkSparseImageMemoryRequirements memoryRequirements
4823}
4824
4825class VkPhysicalDeviceFeatures2 {
4826 VkStructureType sType
4827 void* pNext
4828 VkPhysicalDeviceFeatures features
4829}
4830
4831class VkPhysicalDeviceProperties2 {
4832 VkStructureType sType
4833 void* pNext
4834 VkPhysicalDeviceProperties properties
4835}
4836
4837class VkFormatProperties2 {
4838 VkStructureType sType
4839 void* pNext
4840 VkFormatProperties formatProperties
4841}
4842
4843class VkImageFormatProperties2 {
4844 VkStructureType sType
4845 void* pNext
4846 VkImageFormatProperties imageFormatProperties
4847}
4848
4849class VkPhysicalDeviceImageFormatInfo2 {
4850 VkStructureType sType
4851 const void* pNext
4852 VkFormat format
4853 VkImageType type
4854 VkImageTiling tiling
4855 VkImageUsageFlags usage
4856 VkImageCreateFlags flags
4857}
4858
4859class VkQueueFamilyProperties2 {
4860 VkStructureType sType
4861 void* pNext
4862 VkQueueFamilyProperties queueFamilyProperties
4863}
4864
4865class VkPhysicalDeviceMemoryProperties2 {
4866 VkStructureType sType
4867 void* pNext
4868 VkPhysicalDeviceMemoryProperties memoryProperties
4869}
4870
4871class VkSparseImageFormatProperties2 {
4872 VkStructureType sType
4873 void* pNext
4874 VkSparseImageFormatProperties properties
4875}
4876
4877class VkPhysicalDeviceSparseImageFormatInfo2 {
4878 VkStructureType sType
4879 const void* pNext
4880 VkFormat format
4881 VkImageType type
4882 VkSampleCountFlagBits samples
4883 VkImageUsageFlags usage
4884 VkImageTiling tiling
4885}
4886
4887class VkPhysicalDevicePointClippingProperties {
4888 VkStructureType sType
4889 void* pNext
4890 VkPointClippingBehavior pointClippingBehavior
4891}
4892
4893class VkInputAttachmentAspectReference {
4894 u32 subpass
4895 u32 inputAttachmentIndex
4896 VkImageAspectFlags aspectMask
4897}
4898
4899class VkRenderPassInputAttachmentAspectCreateInfo {
4900 VkStructureType sType
4901 const void* pNext
4902 u32 aspectReferenceCount
4903 const VkInputAttachmentAspectReference* pAspectReferences
4904}
4905
4906class VkImageViewUsageCreateInfo {
4907 VkStructureType sType
4908 const void* pNext
4909 VkImageUsageFlags usage
4910}
4911
4912class VkPipelineTessellationDomainOriginStateCreateInfo {
4913 VkStructureType sType
4914 const void* pNext
4915 VkTessellationDomainOrigin domainOrigin
4916}
4917
4918class VkRenderPassMultiviewCreateInfo {
4919 VkStructureType sType
4920 const void* pNext
4921 u32 subpassCount
4922 const u32* pViewMasks
4923 u32 dependencyCount
4924 const s32* pViewOffsets
4925 u32 correlationMaskCount
4926 const u32* pCorrelationMasks
4927}
4928
4929class VkPhysicalDeviceMultiviewFeatures {
4930 VkStructureType sType
4931 void* pNext
4932 VkBool32 multiview
4933 VkBool32 multiviewGeometryShader
4934 VkBool32 multiviewTessellationShader
4935}
4936
4937class VkPhysicalDeviceMultiviewProperties {
4938 VkStructureType sType
4939 void* pNext
4940 u32 maxMultiviewViewCount
4941 u32 maxMultiviewInstanceIndex
4942}
4943
4944class VkPhysicalDeviceVariablePointerFeatures {
4945 VkStructureType sType
4946 void* pNext
4947 VkBool32 variablePointersStorageBuffer
4948 VkBool32 variablePointers
4949}
4950
4951class VkPhysicalDeviceProtectedMemoryFeatures {
4952 VkStructureType sType
4953 void* pNext
4954 VkBool32 protectedMemory
4955}
4956
4957class VkPhysicalDeviceProtectedMemoryProperties {
4958 VkStructureType sType
4959 void* pNext
4960 VkBool32 protectedNoFault
4961}
4962
4963class VkDeviceQueueInfo2 {
4964 VkStructureType sType
4965 const void* pNext
4966 VkDeviceQueueCreateFlags flags
4967 u32 queueFamilyIndex
4968 u32 queueIndex
4969}
4970
4971class VkProtectedSubmitInfo {
4972 VkStructureType sType
4973 const void* pNext
4974 VkBool32 protectedSubmit
4975}
4976
4977class VkSamplerYcbcrConversionCreateInfo {
4978 VkStructureType sType
4979 const void* pNext
4980 VkFormat format
4981 VkSamplerYcbcrModelConversion ycbcrModel
4982 VkSamplerYcbcrRange ycbcrRange
4983 VkComponentMapping components
4984 VkChromaLocation xChromaOffset
4985 VkChromaLocation yChromaOffset
4986 VkFilter chromaFilter
4987 VkBool32 forceExplicitReconstruction
4988}
4989
4990class VkSamplerYcbcrConversionInfo {
4991 VkStructureType sType
4992 const void* pNext
4993 VkSamplerYcbcrConversion conversion
4994}
4995
4996class VkBindImagePlaneMemoryInfo {
4997 VkStructureType sType
4998 const void* pNext
4999 VkImageAspectFlagBits planeAspect
5000}
5001
5002class VkImagePlaneMemoryRequirementsInfo {
5003 VkStructureType sType
5004 const void* pNext
5005 VkImageAspectFlagBits planeAspect
5006}
5007
5008class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5009 VkStructureType sType
5010 void* pNext
5011 VkBool32 samplerYcbcrConversion
5012}
5013
5014class VkSamplerYcbcrConversionImageFormatProperties {
5015 VkStructureType sType
5016 void* pNext
5017 u32 combinedImageSamplerDescriptorCount
5018}
5019
5020class VkDescriptorUpdateTemplateEntry {
5021 u32 dstBinding
5022 u32 dstArrayElement
5023 u32 descriptorCount
5024 VkDescriptorType descriptorType
5025 platform.size_t offset
5026 platform.size_t stride
5027}
5028
5029class VkDescriptorUpdateTemplateCreateInfo {
5030 VkStructureType sType
5031 void* pNext
5032 VkDescriptorUpdateTemplateCreateFlags flags
5033 u32 descriptorUpdateEntryCount
5034 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
5035 VkDescriptorUpdateTemplateType templateType
5036 VkDescriptorSetLayout descriptorSetLayout
5037 VkPipelineBindPoint pipelineBindPoint
5038 VkPipelineLayout pipelineLayout
5039 u32 set
5040}
5041
5042class VkExternalMemoryProperties {
5043 VkExternalMemoryFeatureFlags externalMemoryFeatures
5044 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
5045 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
5046}
5047
5048class VkPhysicalDeviceExternalImageFormatInfo {
5049 VkStructureType sType
5050 const void* pNext
5051 VkExternalMemoryHandleTypeFlagBits handleType
5052}
5053
5054class VkExternalImageFormatProperties {
5055 VkStructureType sType
5056 void* pNext
5057 VkExternalMemoryProperties externalMemoryProperties
5058}
5059
5060class VkPhysicalDeviceExternalBufferInfo {
5061 VkStructureType sType
5062 const void* pNext
5063 VkBufferCreateFlags flags
5064 VkBufferUsageFlags usage
5065 VkExternalMemoryHandleTypeFlagBits handleType
5066}
5067
5068class VkExternalBufferProperties {
5069 VkStructureType sType
5070 void* pNext
5071 VkExternalMemoryProperties externalMemoryProperties
5072}
5073
5074class VkPhysicalDeviceIDProperties {
5075 VkStructureType sType
5076 void* pNext
5077 u8[VK_UUID_SIZE] deviceUUID
5078 u8[VK_UUID_SIZE] driverUUID
5079 u8[VK_LUID_SIZE] deviceLUID
5080 u32 deviceNodeMask
5081 VkBool32 deviceLUIDValid
5082}
5083
5084class VkExternalMemoryImageCreateInfo {
5085 VkStructureType sType
5086 const void* pNext
5087 VkExternalMemoryHandleTypeFlags handleTypes
5088}
5089
5090class VkExternalMemoryBufferCreateInfo {
5091 VkStructureType sType
5092 const void* pNext
5093 VkExternalMemoryHandleTypeFlags handleTypes
5094}
5095
5096class VkExportMemoryAllocateInfo {
5097 VkStructureType sType
5098 const void* pNext
5099 VkExternalMemoryHandleTypeFlags handleTypes
5100}
5101
5102class VkPhysicalDeviceExternalFenceInfo {
5103 VkStructureType sType
5104 const void* pNext
5105 VkExternalFenceHandleTypeFlagBits handleType
5106}
5107
5108class VkExternalFenceProperties {
5109 VkStructureType sType
5110 void* pNext
5111 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
5112 VkExternalFenceHandleTypeFlags compatibleHandleTypes
5113 VkExternalFenceFeatureFlags externalFenceFeatures
5114}
5115
5116class VkExportFenceCreateInfo {
5117 VkStructureType sType
5118 const void* pNext
5119 VkExternalFenceHandleTypeFlags handleTypes
5120}
5121
5122class VkExportSemaphoreCreateInfo {
5123 VkStructureType sType
5124 const void* pNext
5125 VkExternalSemaphoreHandleTypeFlags handleTypes
5126}
5127
5128class VkPhysicalDeviceExternalSemaphoreInfo {
5129 VkStructureType sType
5130 const void* pNext
5131 VkExternalSemaphoreHandleTypeFlagBits handleType
5132}
5133
5134class VkExternalSemaphoreProperties {
5135 VkStructureType sType
5136 void* pNext
5137 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
5138 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
5139 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
5140}
5141
5142class VkPhysicalDeviceMaintenance3Properties {
5143 VkStructureType sType
5144 void* pNext
5145 u32 maxPerSetDescriptors
5146 VkDeviceSize maxMemoryAllocationSize
5147}
5148
5149class VkDescriptorSetLayoutSupport {
5150 VkStructureType sType
5151 void* pNext
5152 VkBool32 supported
5153}
5154
5155class VkPhysicalDeviceShaderDrawParameterFeatures {
5156 VkStructureType sType
5157 void* pNext
5158 VkBool32 shaderDrawParameters
5159}
5160
5161
Jesse Hallad250842017-03-10 18:35:38 -08005162@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08005163class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005164 u32 minImageCount
5165 u32 maxImageCount
5166 VkExtent2D currentExtent
5167 VkExtent2D minImageExtent
5168 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005169 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08005170 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005171 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08005172 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005173 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08005174}
5175
Jesse Hallad250842017-03-10 18:35:38 -08005176@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08005177class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005178 VkFormat format
5179 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08005180}
5181
Jesse Hallad250842017-03-10 18:35:38 -08005182@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005183class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005184 VkStructureType sType
5185 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005186 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005187 VkSurfaceKHR surface
5188 u32 minImageCount
5189 VkFormat imageFormat
5190 VkColorSpaceKHR imageColorSpace
5191 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005192 u32 imageArrayLayers
5193 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08005194 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08005195 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08005196 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005197 VkSurfaceTransformFlagBitsKHR preTransform
5198 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005199 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08005200 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005201 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08005202}
5203
Jesse Hallad250842017-03-10 18:35:38 -08005204@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005205class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005206 VkStructureType sType
5207 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08005208 u32 waitSemaphoreCount
5209 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08005210 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08005211 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005212 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08005213 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08005214}
5215
Ian Elliott28bd2c32017-10-13 09:21:12 -06005216@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005217@extension("VK_KHR_swapchain") // 2
5218class VkImageSwapchainCreateInfoKHR {
5219 VkStructureType sType
5220 const void* pNext
5221 VkSwapchainKHR swapchain
5222}
5223
Ian Elliott28bd2c32017-10-13 09:21:12 -06005224@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005225@extension("VK_KHR_swapchain") // 2
5226class VkBindImageMemorySwapchainInfoKHR {
5227 VkStructureType sType
5228 const void* pNext
5229 VkSwapchainKHR swapchain
5230 u32 imageIndex
5231}
5232
Ian Elliott28bd2c32017-10-13 09:21:12 -06005233@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005234@extension("VK_KHR_swapchain") // 2
5235class VkAcquireNextImageInfoKHR {
5236 VkStructureType sType
5237 const void* pNext
5238 VkSwapchainKHR swapchain
5239 u64 timeout
5240 VkSemaphore semaphore
5241 VkFence fence
5242 u32 deviceMask
5243}
5244
Ian Elliott28bd2c32017-10-13 09:21:12 -06005245@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005246@extension("VK_KHR_swapchain") // 2
5247class VkDeviceGroupPresentCapabilitiesKHR {
5248 VkStructureType sType
5249 const void* pNext
5250 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
5251 VkDeviceGroupPresentModeFlagsKHR modes
5252}
5253
Ian Elliott28bd2c32017-10-13 09:21:12 -06005254@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005255@extension("VK_KHR_swapchain") // 2
5256class VkDeviceGroupPresentInfoKHR {
5257 VkStructureType sType
5258 const void* pNext
5259 u32 swapchainCount
5260 const u32* pDeviceMasks
5261 VkDeviceGroupPresentModeFlagBitsKHR mode
5262}
5263
Ian Elliott28bd2c32017-10-13 09:21:12 -06005264@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005265@extension("VK_KHR_swapchain") // 2
5266class VkDeviceGroupSwapchainCreateInfoKHR {
5267 VkStructureType sType
5268 const void* pNext
5269 VkDeviceGroupPresentModeFlagsKHR modes
5270}
5271
Jesse Hallad250842017-03-10 18:35:38 -08005272@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005273class VkDisplayPropertiesKHR {
5274 VkDisplayKHR display
5275 const char* displayName
5276 VkExtent2D physicalDimensions
5277 VkExtent2D physicalResolution
5278 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08005279 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08005280 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08005281}
5282
Jesse Hallad250842017-03-10 18:35:38 -08005283@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005284class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005285 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08005286 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08005287}
Jesse Halld27f6aa2015-08-15 17:58:48 -07005288
Jesse Hallad250842017-03-10 18:35:38 -08005289@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005290class VkDisplayModePropertiesKHR {
5291 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08005292 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005293}
5294
Jesse Hallad250842017-03-10 18:35:38 -08005295@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005296class VkDisplayModeCreateInfoKHR {
5297 VkStructureType sType
5298 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08005299 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08005300 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005301}
5302
Jesse Hallad250842017-03-10 18:35:38 -08005303@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005304class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08005305 VkDisplayKHR currentDisplay
5306 u32 currentStackIndex
5307}
5308
Jesse Hallad250842017-03-10 18:35:38 -08005309@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005310class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005311 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
5312 VkOffset2D minSrcPosition
5313 VkOffset2D maxSrcPosition
5314 VkExtent2D minSrcExtent
5315 VkExtent2D maxSrcExtent
5316 VkOffset2D minDstPosition
5317 VkOffset2D maxDstPosition
5318 VkExtent2D minDstExtent
5319 VkExtent2D maxDstExtent
5320}
5321
Jesse Hallad250842017-03-10 18:35:38 -08005322@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005323class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005324 VkStructureType sType
5325 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005326 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005327 VkDisplayModeKHR displayMode
5328 u32 planeIndex
5329 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005330 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08005331 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005332 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
5333 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005334}
5335
Jesse Hallad250842017-03-10 18:35:38 -08005336@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08005337class VkDisplayPresentInfoKHR {
5338 VkStructureType sType
5339 const void* pNext
5340 VkRect2D srcRect
5341 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08005342 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005343}
5344
Jesse Hallad250842017-03-10 18:35:38 -08005345@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005346class VkXlibSurfaceCreateInfoKHR {
5347 VkStructureType sType
5348 const void* pNext
5349 VkXlibSurfaceCreateFlagsKHR flags
5350 platform.Display* dpy
5351 platform.Window window
5352}
5353
Jesse Hallad250842017-03-10 18:35:38 -08005354@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005355class VkXcbSurfaceCreateInfoKHR {
5356 VkStructureType sType
5357 const void* pNext
5358 VkXcbSurfaceCreateFlagsKHR flags
5359 platform.xcb_connection_t* connection
5360 platform.xcb_window_t window
5361}
5362
Jesse Hallad250842017-03-10 18:35:38 -08005363@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005364class VkWaylandSurfaceCreateInfoKHR {
5365 VkStructureType sType
5366 const void* pNext
5367 VkWaylandSurfaceCreateFlagsKHR flags
5368 platform.wl_display* display
5369 platform.wl_surface* surface
5370}
5371
Jesse Hallad250842017-03-10 18:35:38 -08005372@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005373class VkAndroidSurfaceCreateInfoKHR {
5374 VkStructureType sType
5375 const void* pNext
5376 VkAndroidSurfaceCreateFlagsKHR flags
5377 platform.ANativeWindow* window
5378}
5379
Jesse Hallad250842017-03-10 18:35:38 -08005380@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005381class VkWin32SurfaceCreateInfoKHR {
5382 VkStructureType sType
5383 const void* pNext
5384 VkWin32SurfaceCreateFlagsKHR flags
5385 platform.HINSTANCE hinstance
5386 platform.HWND hwnd
5387}
5388
Jesse Hallad250842017-03-10 18:35:38 -08005389@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08005390@internal class Gralloc1Usage {
5391 u64 consumer
5392 u64 producer
5393}
5394
Jesse Hallad250842017-03-10 18:35:38 -08005395@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005396class VkNativeBufferANDROID {
5397 VkStructureType sType
5398 const void* pNext
5399 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005400 s32 stride
5401 s32 format
5402 s32 usage
5403 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005404}
5405
Jesse Hallad250842017-03-10 18:35:38 -08005406@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005407class VkSwapchainImageCreateInfoANDROID {
5408 VkStructureType sType
5409 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005410 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005411}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005412
Jesse Hallad250842017-03-10 18:35:38 -08005413@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005414class VkPhysicalDevicePresentationPropertiesANDROID {
5415 VkStructureType sType
5416 void* pNext
5417 VkBool32 sharedImage
5418}
5419
Jesse Hallad250842017-03-10 18:35:38 -08005420@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005421class VkDebugReportCallbackCreateInfoEXT {
5422 VkStructureType sType
5423 const void* pNext
5424 VkDebugReportFlagsEXT flags
5425 PFN_vkDebugReportCallbackEXT pfnCallback
5426 void* pUserData
5427}
5428
Jesse Hallad250842017-03-10 18:35:38 -08005429@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005430class VkPipelineRasterizationStateRasterizationOrderAMD {
5431 VkStructureType sType
5432 const void* pNext
5433 VkRasterizationOrderAMD rasterizationOrder
5434}
5435
Jesse Hallad250842017-03-10 18:35:38 -08005436@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005437class VkDebugMarkerObjectNameInfoEXT {
5438 VkStructureType sType
5439 const void* pNext
5440 VkDebugReportObjectTypeEXT objectType
5441 u64 object
5442 const char* pObjectName
5443}
5444
Jesse Hallad250842017-03-10 18:35:38 -08005445@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005446class VkDebugMarkerObjectTagInfoEXT {
5447 VkStructureType sType
5448 const void* pNext
5449 VkDebugReportObjectTypeEXT objectType
5450 u64 object
5451 u64 tagName
5452 platform.size_t tagSize
5453 const void* pTag
5454}
5455
Jesse Hallad250842017-03-10 18:35:38 -08005456@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005457class VkDebugMarkerMarkerInfoEXT {
5458 VkStructureType sType
5459 const void* pNext
5460 const char* pMarkerName
5461 f32[4] color
5462}
5463
Jesse Hallad250842017-03-10 18:35:38 -08005464@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005465class VkDedicatedAllocationImageCreateInfoNV {
5466 VkStructureType sType
5467 const void* pNext
5468 VkBool32 dedicatedAllocation
5469}
5470
Jesse Hallad250842017-03-10 18:35:38 -08005471@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005472class VkDedicatedAllocationBufferCreateInfoNV {
5473 VkStructureType sType
5474 const void* pNext
5475 VkBool32 dedicatedAllocation
5476}
5477
Jesse Hallad250842017-03-10 18:35:38 -08005478@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005479class VkDedicatedAllocationMemoryAllocateInfoNV {
5480 VkStructureType sType
5481 const void* pNext
5482 VkImage image
5483 VkBuffer buffer
5484}
5485
Jesse Hallf47e8f82018-10-27 23:41:45 -07005486@extension("VK_EXT_transform_feedback") // 29
5487class VkPhysicalDeviceTransformFeedbackFeaturesEXT {
5488 VkStructureType sType
5489 void* pNext
5490 VkBool32 transformFeedback
5491 VkBool32 geometryStreams
5492}
5493
5494@extension("VK_EXT_transform_feedback") // 29
5495class VkPhysicalDeviceTransformFeedbackPropertiesEXT {
5496 VkStructureType sType
5497 void* pNext
5498 u32 maxTransformFeedbackStreams
5499 u32 maxTransformFeedbackBuffers
5500 VkDeviceSize maxTransformFeedbackBufferSize
5501 u32 maxTransformFeedbackStreamDataSize
5502 u32 maxTransformFeedbackBufferDataSize
5503 u32 maxTransformFeedbackBufferDataStride
5504 VkBool32 transformFeedbackQueries
5505 VkBool32 transformFeedbackStreamsLinesTriangles
5506 VkBool32 transformFeedbackRasterizationStreamSelect
5507 VkBool32 transformFeedbackDraw
5508}
5509
5510@extension("VK_EXT_transform_feedback") // 29
5511class VkPipelineRasterizationStateStreamCreateInfoEXT {
5512 VkStructureType sType
5513 const void* pNext
5514 VkPipelineRasterizationStateStreamCreateFlagsEXT flags
5515 u32 rasterizationStream
5516}
5517
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005518@extension("VK_AMD_texture_gather_bias_lod") // 42
5519class VkTextureLODGatherFormatPropertiesAMD {
5520 VkStructureType sType
5521 void* pNext
5522 VkBool32 supportsTextureGatherLODBiasAMD
5523}
5524
Jesse Hall8c954d32018-01-17 22:06:20 -08005525@extension("VK_AMD_shader_info") // 43
5526class VkShaderResourceUsageAMD {
5527 u32 numUsedVgprs
5528 u32 numUsedSgprs
5529 u32 ldsSizePerLocalWorkGroup
5530 platform.size_t ldsUsageSizeInBytes
5531 platform.size_t scratchMemUsageInBytes
5532}
5533
5534@extension("VK_AMD_shader_info") // 43
5535class VkShaderStatisticsInfoAMD {
5536 VkShaderStageFlags shaderStageMask
5537 VkShaderResourceUsageAMD resourceUsage
5538 u32 numPhysicalVgprs
5539 u32 numPhysicalSgprs
5540 u32 numAvailableVgprs
5541 u32 numAvailableSgprs
5542 u32[3] computeWorkGroupSize
5543}
5544
Jesse Hallb5297192018-09-22 20:52:13 +02005545@extension("VK_NV_corner_sampled_image") // 51
5546class VkPhysicalDeviceCornerSampledImageFeaturesNV {
5547 VkStructureType sType
5548 void* pNext
5549 VkBool32 cornerSampledImage
5550}
5551
Daniel Koch09f7bf92017-10-05 00:26:58 -04005552@extension("VK_KHR_multiview") // 54
5553class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005554 VkStructureType sType
5555 const void* pNext
5556 u32 subpassCount
5557 const u32* pViewMasks
5558 u32 dependencyCount
5559 const s32* pViewOffsets
5560 u32 correlationMaskCount
5561 const u32* pCorrelationMasks
5562}
5563
Daniel Koch09f7bf92017-10-05 00:26:58 -04005564@extension("VK_KHR_multiview") // 54
5565class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005566 VkStructureType sType
5567 void* pNext
5568 VkBool32 multiview
5569 VkBool32 multiviewGeometryShader
5570 VkBool32 multiviewTessellationShader
5571}
5572
Daniel Koch09f7bf92017-10-05 00:26:58 -04005573@extension("VK_KHR_multiview") // 54
5574class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005575 VkStructureType sType
5576 void* pNext
5577 u32 maxMultiviewViewCount
5578 u32 maxMultiviewInstanceIndex
5579}
5580
5581@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005582class VkExternalImageFormatPropertiesNV {
5583 VkImageFormatProperties imageFormatProperties
5584 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5585 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5586 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5587}
5588
Jesse Hallad250842017-03-10 18:35:38 -08005589@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005590class VkExternalMemoryImageCreateInfoNV {
5591 VkStructureType sType
5592 const void* pNext
5593 VkExternalMemoryHandleTypeFlagsNV handleTypes
5594}
5595
Jesse Hallad250842017-03-10 18:35:38 -08005596@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005597class VkExportMemoryAllocateInfoNV {
5598 VkStructureType sType
5599 const void* pNext
5600 VkExternalMemoryHandleTypeFlagsNV handleTypes
5601}
5602
Jesse Hallad250842017-03-10 18:35:38 -08005603@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005604class VkImportMemoryWin32HandleInfoNV {
5605 VkStructureType sType
5606 const void* pNext
5607 VkExternalMemoryHandleTypeFlagsNV handleType
5608 platform.HANDLE handle
5609}
5610
Jesse Hallad250842017-03-10 18:35:38 -08005611@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005612class VkExportMemoryWin32HandleInfoNV {
5613 VkStructureType sType
5614 const void* pNext
5615 const platform.SECURITY_ATTRIBUTES* pAttributes
5616 platform.DWORD dwAccess
5617}
5618
Jesse Hallad250842017-03-10 18:35:38 -08005619@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005620class VkWin32KeyedMutexAcquireReleaseInfoNV {
5621 VkStructureType sType
5622 const void* pNext
5623 u32 acquireCount
5624 const VkDeviceMemory* pAcquireSyncs
5625 const u64* pAcquireKeys
5626 const u32* pAcquireTimeoutMilliseconds
5627 u32 releaseCount
5628 const VkDeviceMemory* pReleaseSyncs
5629 const u64* pReleaseKeys
5630}
5631
Jesse Hallad250842017-03-10 18:35:38 -08005632@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005633class VkPhysicalDeviceFeatures2KHR {
5634 VkStructureType sType
5635 void* pNext
5636 VkPhysicalDeviceFeatures features
5637}
5638
Jesse Hallad250842017-03-10 18:35:38 -08005639@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005640class VkPhysicalDeviceProperties2KHR {
5641 VkStructureType sType
5642 void* pNext
5643 VkPhysicalDeviceProperties properties
5644}
5645
Jesse Hallad250842017-03-10 18:35:38 -08005646@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005647class VkFormatProperties2KHR {
5648 VkStructureType sType
5649 void* pNext
5650 VkFormatProperties formatProperties
5651}
5652
Jesse Hallad250842017-03-10 18:35:38 -08005653@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005654class VkImageFormatProperties2KHR {
5655 VkStructureType sType
5656 void* pNext
5657 VkImageFormatProperties imageFormatProperties
5658}
5659
Jesse Hallad250842017-03-10 18:35:38 -08005660@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005661class VkPhysicalDeviceImageFormatInfo2KHR {
5662 VkStructureType sType
5663 const void* pNext
5664 VkFormat format
5665 VkImageType type
5666 VkImageTiling tiling
5667 VkImageUsageFlags usage
5668 VkImageCreateFlags flags
5669}
5670
Jesse Hallad250842017-03-10 18:35:38 -08005671@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005672class VkQueueFamilyProperties2KHR {
5673 VkStructureType sType
5674 void* pNext
5675 VkQueueFamilyProperties queueFamilyProperties
5676}
5677
Jesse Hallad250842017-03-10 18:35:38 -08005678@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005679class VkPhysicalDeviceMemoryProperties2KHR {
5680 VkStructureType sType
5681 void* pNext
5682 VkPhysicalDeviceMemoryProperties memoryProperties
5683}
5684
Jesse Hallad250842017-03-10 18:35:38 -08005685@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005686class VkSparseImageFormatProperties2KHR {
5687 VkStructureType sType
5688 void* pNext
5689 VkSparseImageFormatProperties properties
5690}
5691
Jesse Hallad250842017-03-10 18:35:38 -08005692@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005693class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5694 VkStructureType sType
5695 const void* pNext
5696 VkFormat format
5697 VkImageType type
5698 VkSampleCountFlagBits samples
5699 VkImageUsageFlags usage
5700 VkImageTiling tiling
5701}
5702
Daniel Koch09f7bf92017-10-05 00:26:58 -04005703@extension("VK_KHR_device_group") // 61
5704class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005705 VkStructureType sType
5706 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005707 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005708 u32 deviceMask
5709}
5710
Daniel Koch09f7bf92017-10-05 00:26:58 -04005711@extension("VK_KHR_device_group") // 61
5712class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005713 VkStructureType sType
5714 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005715 u32 deviceIndexCount
5716 const u32* pDeviceIndices
5717}
5718
Daniel Koch09f7bf92017-10-05 00:26:58 -04005719@extension("VK_KHR_device_group") // 61
5720class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005721 VkStructureType sType
5722 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005723 u32 deviceIndexCount
5724 const u32* pDeviceIndices
5725 u32 SFRRectCount
5726 const VkRect2D* pSFRRects
5727}
5728
Daniel Koch09f7bf92017-10-05 00:26:58 -04005729@extension("VK_KHR_device_group") // 61
5730class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005731 VkStructureType sType
5732 const void* pNext
5733 u32 deviceMask
5734 u32 deviceRenderAreaCount
5735 const VkRect2D* pDeviceRenderAreas
5736}
5737
Daniel Koch09f7bf92017-10-05 00:26:58 -04005738@extension("VK_KHR_device_group") // 61
5739class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005740 VkStructureType sType
5741 const void* pNext
5742 u32 deviceMask
5743}
5744
Daniel Koch09f7bf92017-10-05 00:26:58 -04005745@extension("VK_KHR_device_group") // 61
5746class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005747 VkStructureType sType
5748 const void* pNext
5749 u32 waitSemaphoreCount
5750 const u32* pWaitSemaphoreDeviceIndices
5751 u32 commandBufferCount
5752 const u32* pCommandBufferDeviceMasks
5753 u32 signalSemaphoreCount
5754 const u32* pSignalSemaphoreDeviceIndices
5755}
5756
Daniel Koch09f7bf92017-10-05 00:26:58 -04005757@extension("VK_KHR_device_group") // 61
5758class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005759 VkStructureType sType
5760 const void* pNext
5761 u32 resourceDeviceIndex
5762 u32 memoryDeviceIndex
5763}
5764
Jesse Hallad250842017-03-10 18:35:38 -08005765@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005766class VkValidationFlagsEXT {
5767 VkStructureType sType
5768 const void* pNext
5769 u32 disabledValidationCheckCount
Jesse Hall115df0c2018-07-30 12:00:59 -07005770 const VkValidationCheckEXT* pDisabledValidationChecks
Chris Forbes289cb792016-12-30 15:03:55 +13005771}
5772
Jesse Hallad250842017-03-10 18:35:38 -08005773@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005774class VkViSurfaceCreateInfoNN {
5775 VkStructureType sType
5776 const void* pNext
5777 VkViSurfaceCreateFlagsNN flags
5778 void* window
5779}
5780
Jesse Hall4af6c462018-09-10 09:04:25 -07005781@extension("VK_EXT_astc_decode_mode") // 68
5782class VkImageViewASTCDecodeModeEXT {
5783 VkStructureType sType
5784 const void* pNext
5785 VkFormat decodeMode
5786}
5787
5788@extension("VK_EXT_astc_decode_mode") // 68
5789class VkPhysicalDeviceASTCDecodeFeaturesEXT {
5790 VkStructureType sType
5791 void* pNext
5792 VkBool32 decodeModeSharedExponent
5793}
5794
Daniel Koch09f7bf92017-10-05 00:26:58 -04005795@extension("VK_KHR_device_group_creation") // 71
5796class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005797 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005798 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005799 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005800 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005801 VkBool32 subsetAllocation
5802}
5803
Daniel Koch09f7bf92017-10-05 00:26:58 -04005804@extension("VK_KHR_device_group_creation") // 71
5805class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005806 VkStructureType sType
5807 const void* pNext
5808 u32 physicalDeviceCount
5809 const VkPhysicalDevice* pPhysicalDevices
5810}
5811
Jesse Hall9492f992017-08-28 12:10:06 -07005812@extension("VK_KHR_external_memory_capabilities") // 72
5813class VkExternalMemoryPropertiesKHR {
5814 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5815 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5816 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005817}
5818
Jesse Hall9492f992017-08-28 12:10:06 -07005819@extension("VK_KHR_external_memory_capabilities") // 72
5820class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005821 VkStructureType sType
5822 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005823 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005824}
5825
Jesse Hall9492f992017-08-28 12:10:06 -07005826@extension("VK_KHR_external_memory_capabilities") // 72
5827class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005828 VkStructureType sType
5829 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005830 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005831}
5832
Jesse Hall9492f992017-08-28 12:10:06 -07005833@extension("VK_KHR_external_memory_capabilities") // 72
5834class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005835 VkStructureType sType
5836 const void* pNext
5837 VkBufferCreateFlags flags
5838 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005839 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005840}
5841
Jesse Hall9492f992017-08-28 12:10:06 -07005842@extension("VK_KHR_external_memory_capabilities") // 72
5843class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005844 VkStructureType sType
5845 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005846 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005847}
5848
Jesse Hall9492f992017-08-28 12:10:06 -07005849@extension("VK_KHR_external_memory_capabilities") // 72
5850class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005851 VkStructureType sType
5852 void* pNext
5853 u8[VK_UUID_SIZE] deviceUUID
5854 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005855 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005856 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005857 VkBool32 deviceLUIDValid
5858}
5859
Jesse Hall9492f992017-08-28 12:10:06 -07005860@extension("VK_KHR_external_memory") // 73
5861class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005862 VkStructureType sType
5863 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005864 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005865}
5866
Jesse Hall9492f992017-08-28 12:10:06 -07005867@extension("VK_KHR_external_memory") // 73
5868class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005869 VkStructureType sType
5870 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005871 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005872}
5873
Jesse Hall9492f992017-08-28 12:10:06 -07005874@extension("VK_KHR_external_memory") // 73
5875class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005876 VkStructureType sType
5877 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005878 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005879}
5880
Jesse Hall9492f992017-08-28 12:10:06 -07005881@extension("VK_KHR_external_memory_win32") // 74
5882class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005883 VkStructureType sType
5884 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005885 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005886 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005887 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005888}
5889
Jesse Hall9492f992017-08-28 12:10:06 -07005890@extension("VK_KHR_external_memory_win32") // 74
5891class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005892 VkStructureType sType
5893 const void* pNext
5894 const platform.SECURITY_ATTRIBUTES* pAttributes
5895 platform.DWORD dwAccess
5896 platform.LPCWSTR name
5897}
5898
Jesse Hall9492f992017-08-28 12:10:06 -07005899@extension("VK_KHR_external_memory_win32") // 74
5900class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005901 VkStructureType sType
5902 void* pNext
5903 u32 memoryTypeBits
5904}
5905
Jesse Hall9492f992017-08-28 12:10:06 -07005906@extension("VK_KHR_external_memory_win32") // 74
5907class VkMemoryGetWin32HandleInfoKHR {
5908 VkStructureType sType
5909 void* pNext
5910 VkDeviceMemory memory
5911 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5912}
5913
5914@extension("VK_KHR_external_memory_fd") // 75
5915class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005916 VkStructureType sType
5917 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005918 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005919 int fd
5920}
5921
Jesse Hall9492f992017-08-28 12:10:06 -07005922@extension("VK_KHR_external_memory_fd") // 75
5923class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005924 VkStructureType sType
5925 void* pNext
5926 u32 memoryTypeBits
5927}
5928
Jesse Hall9492f992017-08-28 12:10:06 -07005929@extension("VK_KHR_external_memory_fd") // 75
5930class VkMemoryGetFdInfoKHR {
5931 VkStructureType sType
5932 void* pNext
5933 VkDeviceMemory memory
5934 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5935}
5936
5937@extension("VK_KHR_win32_keyed_mutex") // 76
5938class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005939 VkStructureType sType
5940 const void* pNext
5941 u32 acquireCount
5942 const VkDeviceMemory* pAcquireSyncs
5943 const u64* pAcquireKeys
5944 const u32* pAcquireTimeouts
5945 u32 releaseCount
5946 const VkDeviceMemory* pReleaseSyncs
5947 const u64* pReleaseKeys
5948}
5949
Jesse Hall9492f992017-08-28 12:10:06 -07005950@extension("VK_KHR_external_semaphore_capabilities") // 77
5951class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005952 VkStructureType sType
5953 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005954 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005955}
5956
Jesse Hall9492f992017-08-28 12:10:06 -07005957@extension("VK_KHR_external_semaphore_capabilities") // 77
5958class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005959 VkStructureType sType
5960 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005961 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5962 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5963 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005964}
5965
Jesse Hall9492f992017-08-28 12:10:06 -07005966@extension("VK_KHR_external_semaphore") // 78
5967class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005968 VkStructureType sType
5969 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005970 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005971}
5972
Jesse Hall9492f992017-08-28 12:10:06 -07005973@extension("VK_KHR_external_semaphore_win32") // 79
5974class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005975 VkStructureType sType
5976 const void* pNext
5977 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07005978 VkSemaphoreImportFlagsKHR flags
5979 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005980 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005981 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005982}
5983
Jesse Hall9492f992017-08-28 12:10:06 -07005984@extension("VK_KHR_external_semaphore_win32") // 79
5985class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005986 VkStructureType sType
5987 const void* pNext
5988 const platform.SECURITY_ATTRIBUTES* pAttributes
5989 platform.DWORD dwAccess
5990 platform.LPCWSTR name
5991}
5992
Jesse Hall9492f992017-08-28 12:10:06 -07005993@extension("VK_KHR_external_semaphore_win32") // 79
5994class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005995 VkStructureType sType
5996 const void* pNext
5997 u32 waitSemaphoreValuesCount
5998 const u64* pWaitSemaphoreValues
5999 u32 signalSemaphoreValuesCount
6000 const u64* pSignalSemaphoreValues
6001}
6002
Jesse Hall9492f992017-08-28 12:10:06 -07006003@extension("VK_KHR_external_semaphore_win32") // 79
6004class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006005 VkStructureType sType
6006 const void* pNext
6007 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07006008 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
6009}
6010
6011@extension("VK_KHR_external_semaphore_fd") // 80
6012class VkImportSemaphoreFdInfoKHR {
6013 VkStructureType sType
6014 const void* pNext
6015 VkSemaphore semaphore
6016 VkSemaphoreImportFlagsKHR flags
6017 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08006018 s32 fd
6019}
6020
Jesse Hall9492f992017-08-28 12:10:06 -07006021@extension("VK_KHR_external_semaphore_fd") // 80
6022class VkSemaphoreGetFdInfoKHR {
6023 VkStructureType sType
6024 const void* pNext
6025 VkSemaphore semaphore
6026 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
6027}
6028
Jesse Hallad250842017-03-10 18:35:38 -08006029@extension("VK_KHR_push_descriptor") // 81
6030class VkPhysicalDevicePushDescriptorPropertiesKHR {
6031 VkStructureType sType
6032 void* pNext
6033 u32 maxPushDescriptors
6034}
6035
Jesse Halla13a3cf2018-07-09 15:51:52 -07006036@extension("VK_EXT_conditional_rendering") // 82
6037class VkConditionalRenderingBeginInfoEXT {
6038 VkStructureType sType
6039 const void* pNext
6040 VkBuffer buffer
6041 VkDeviceSize offset
6042 VkConditionalRenderingFlagsEXT flags
6043}
6044
6045@extension("VK_EXT_conditional_rendering") // 82
6046class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
6047 VkStructureType sType
6048 void* pNext
6049 VkBool32 conditionalRendering
6050 VkBool32 inheritedConditionalRendering
6051}
6052
6053@extension("VK_EXT_conditional_rendering") // 82
6054class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
6055 VkStructureType sType
6056 const void* pNext
6057 VkBool32 conditionalRenderingEnable
6058}
6059
Jesse Hall9492f992017-08-28 12:10:06 -07006060@extension("VK_KHR_16bit_storage") // 84
6061class VkPhysicalDevice16BitStorageFeaturesKHR {
6062 VkStructureType sType
6063 void* pNext
6064 VkBool32 storageBuffer16BitAccess
6065 VkBool32 uniformAndStorageBuffer16BitAccess
6066 VkBool32 storagePushConstant16
6067 VkBool32 storageInputOutput16
6068}
6069
Jesse Hallad250842017-03-10 18:35:38 -08006070@extension("VK_KHR_incremental_present") // 85
6071class VkRectLayerKHR {
6072 VkOffset2D offset
6073 VkExtent2D extent
6074 u32 layer
6075}
6076
6077@extension("VK_KHR_incremental_present") // 85
6078class VkPresentRegionKHR {
6079 u32 rectangleCount
6080 const VkRectLayerKHR* pRectangles
6081}
6082
6083@extension("VK_KHR_incremental_present") // 85
6084class VkPresentRegionsKHR {
6085 VkStructureType sType
6086 const void* pNext
6087 u32 swapchainCount
6088 const VkPresentRegionKHR* pRegions
6089}
6090
6091@extension("VK_KHR_descriptor_update_template") // 86
6092class VkDescriptorUpdateTemplateEntryKHR {
6093 u32 dstBinding
6094 u32 dstArrayElement
6095 u32 descriptorCount
6096 VkDescriptorType descriptorType
6097 platform.size_t offset
6098 platform.size_t stride
6099}
6100
6101@extension("VK_KHR_descriptor_update_template") // 86
6102class VkDescriptorUpdateTemplateCreateInfoKHR {
6103 VkStructureType sType
6104 void* pNext
6105 VkDescriptorUpdateTemplateCreateFlagsKHR flags
6106 u32 descriptorUpdateEntryCount
6107 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
6108 VkDescriptorUpdateTemplateTypeKHR templateType
6109 VkDescriptorSetLayout descriptorSetLayout
6110 VkPipelineBindPoint pipelineBindPoint
6111 VkPipelineLayout pipelineLayout
6112 u32 set
6113}
6114
6115@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006116class VkDeviceGeneratedCommandsFeaturesNVX {
6117 VkStructureType sType
6118 const void* pNext
6119 VkBool32 computeBindingPointSupport
6120}
6121
Jesse Hallad250842017-03-10 18:35:38 -08006122@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006123class VkDeviceGeneratedCommandsLimitsNVX {
6124 VkStructureType sType
6125 const void* pNext
6126 u32 maxIndirectCommandsLayoutTokenCount
6127 u32 maxObjectEntryCounts
6128 u32 minSequenceCountBufferOffsetAlignment
6129 u32 minSequenceIndexBufferOffsetAlignment
6130 u32 minCommandsTokenBufferOffsetAlignment
6131}
6132
Jesse Hallad250842017-03-10 18:35:38 -08006133@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006134class VkIndirectCommandsTokenNVX {
6135 VkIndirectCommandsTokenTypeNVX tokenType
6136 VkBuffer buffer
6137 VkDeviceSize offset
6138}
6139
Jesse Hallad250842017-03-10 18:35:38 -08006140@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006141class VkIndirectCommandsLayoutTokenNVX {
6142 VkIndirectCommandsTokenTypeNVX tokenType
6143 u32 bindingUnit
6144 u32 dynamicCount
6145 u32 divisor
6146}
6147
Jesse Hallad250842017-03-10 18:35:38 -08006148@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006149class VkIndirectCommandsLayoutCreateInfoNVX {
6150 VkStructureType sType
6151 const void* pNext
6152 VkPipelineBindPoint pipelineBindPoint
6153 VkIndirectCommandsLayoutUsageFlagsNVX flags
6154 u32 tokenCount
6155 const VkIndirectCommandsLayoutTokenNVX* pTokens
6156}
6157
Jesse Hallad250842017-03-10 18:35:38 -08006158@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006159class VkCmdProcessCommandsInfoNVX {
6160 VkStructureType sType
6161 const void* pNext
6162 VkObjectTableNVX objectTable
6163 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6164 u32 indirectCommandsTokenCount
6165 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
6166 u32 maxSequencesCount
6167 VkCommandBuffer targetCommandBuffer
6168 VkBuffer sequencesCountBuffer
6169 VkDeviceSize sequencesCountOffset
6170 VkBuffer sequencesIndexBuffer
6171 VkDeviceSize sequencesIndexOffset
6172}
6173
Jesse Hallad250842017-03-10 18:35:38 -08006174@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006175class VkCmdReserveSpaceForCommandsInfoNVX {
6176 VkStructureType sType
6177 const void* pNext
6178 VkObjectTableNVX objectTable
6179 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6180 u32 maxSequencesCount
6181}
6182
Jesse Hallad250842017-03-10 18:35:38 -08006183@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006184class VkObjectTableCreateInfoNVX {
6185 VkStructureType sType
6186 const void* pNext
6187 u32 objectCount
6188 const VkObjectEntryTypeNVX* pObjectEntryTypes
6189 const u32* pObjectEntryCounts
6190 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
6191 u32 maxUniformBuffersPerDescriptor
6192 u32 maxStorageBuffersPerDescriptor
6193 u32 maxStorageImagesPerDescriptor
6194 u32 maxSampledImagesPerDescriptor
6195 u32 maxPipelineLayouts
6196}
6197
Jesse Hallad250842017-03-10 18:35:38 -08006198@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006199class VkObjectTableEntryNVX {
6200 VkObjectEntryTypeNVX type
6201 VkObjectEntryUsageFlagsNVX flags
6202}
6203
Jesse Hallad250842017-03-10 18:35:38 -08006204@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006205class VkObjectTablePipelineEntryNVX {
6206 VkObjectEntryTypeNVX type
6207 VkObjectEntryUsageFlagsNVX flags
6208 VkPipeline pipeline
6209}
6210
Jesse Hallad250842017-03-10 18:35:38 -08006211@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006212class VkObjectTableDescriptorSetEntryNVX {
6213 VkObjectEntryTypeNVX type
6214 VkObjectEntryUsageFlagsNVX flags
6215 VkPipelineLayout pipelineLayout
6216 VkDescriptorSet descriptorSet
6217}
6218
Jesse Hallad250842017-03-10 18:35:38 -08006219@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006220class VkObjectTableVertexBufferEntryNVX {
6221 VkObjectEntryTypeNVX type
6222 VkObjectEntryUsageFlagsNVX flags
6223 VkBuffer buffer
6224}
6225
Jesse Hallad250842017-03-10 18:35:38 -08006226@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006227class VkObjectTableIndexBufferEntryNVX {
6228 VkObjectEntryTypeNVX type
6229 VkObjectEntryUsageFlagsNVX flags
6230 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08006231 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13006232}
6233
Jesse Hallad250842017-03-10 18:35:38 -08006234@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006235class VkObjectTablePushConstantEntryNVX {
6236 VkObjectEntryTypeNVX type
6237 VkObjectEntryUsageFlagsNVX flags
6238 VkPipelineLayout pipelineLayout
6239 VkShaderStageFlags stageFlags
6240}
6241
Jesse Hallad250842017-03-10 18:35:38 -08006242@extension("VK_NV_clip_space_w_scaling") // 88
6243class VkViewportWScalingNV {
6244 f32 xcoeff
6245 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08006246}
6247
Jesse Hallad250842017-03-10 18:35:38 -08006248@extension("VK_NV_clip_space_w_scaling") // 88
6249class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08006250 VkStructureType sType
6251 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006252 VkBool32 viewportWScalingEnable
6253 u32 viewportCount
6254 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08006255}
6256
Jesse Hallad250842017-03-10 18:35:38 -08006257@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08006258class VkSurfaceCapabilities2EXT {
6259 VkStructureType sType
6260 void* pNext
6261 u32 minImageCount
6262 u32 maxImageCount
6263 VkExtent2D currentExtent
6264 VkExtent2D minImageExtent
6265 VkExtent2D maxImageExtent
6266 u32 maxImageArrayLayers
6267 VkSurfaceTransformFlagsKHR supportedTransforms
6268 VkSurfaceTransformFlagBitsKHR currentTransform
6269 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
6270 VkImageUsageFlags supportedUsageFlags
6271 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
6272}
6273
Jesse Hallad250842017-03-10 18:35:38 -08006274@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006275class VkDisplayPowerInfoEXT {
6276 VkStructureType sType
6277 const void* pNext
6278 VkDisplayPowerStateEXT powerState
6279}
6280
Jesse Hallad250842017-03-10 18:35:38 -08006281@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006282class VkDeviceEventInfoEXT {
6283 VkStructureType sType
6284 const void* pNext
6285 VkDeviceEventTypeEXT deviceEvent
6286}
6287
Jesse Hallad250842017-03-10 18:35:38 -08006288@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006289class VkDisplayEventInfoEXT {
6290 VkStructureType sType
6291 const void* pNext
6292 VkDisplayEventTypeEXT displayEvent
6293}
6294
Jesse Hallad250842017-03-10 18:35:38 -08006295@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006296class VkSwapchainCounterCreateInfoEXT {
6297 VkStructureType sType
6298 const void* pNext
6299 VkSurfaceCounterFlagsEXT surfaceCounters
6300}
6301
Jesse Hallad250842017-03-10 18:35:38 -08006302@extension("VK_GOOGLE_display_timing") // 93
6303class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006304 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08006305}
6306
6307@extension("VK_GOOGLE_display_timing") // 93
6308class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006309 u32 presentID
6310 u64 desiredPresentTime
6311 u64 actualPresentTime
6312 u64 earliestPresentTime
6313 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08006314}
6315
6316@extension("VK_GOOGLE_display_timing") // 93
6317class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006318 u32 presentID
6319 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08006320}
6321
6322@extension("VK_GOOGLE_display_timing") // 93
6323class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006324 VkStructureType sType
6325 const void* pNext
6326 u32 swapchainCount
6327 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08006328}
6329
6330@extension("VK_NVX_multiview_per_view_attributes") // 98
6331class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
6332 VkStructureType sType
6333 void* pNext
6334 VkBool32 perViewPositionAllComponents
6335}
6336
6337@extension("VK_NV_viewport_swizzle") // 99
6338class VkViewportSwizzleNV {
6339 VkViewportCoordinateSwizzleNV x
6340 VkViewportCoordinateSwizzleNV y
6341 VkViewportCoordinateSwizzleNV z
6342 VkViewportCoordinateSwizzleNV w
6343}
6344
6345@extension("VK_NV_viewport_swizzle") // 99
6346class VkPipelineViewportSwizzleStateCreateInfoNV {
6347 VkStructureType sType
6348 const void* pNext
6349 VkPipelineViewportSwizzleStateCreateFlagsNV flags
6350 u32 viewportCount
6351 const VkViewportSwizzleNV* pViewportSwizzles
6352}
6353
6354@extension("VK_EXT_discard_rectangles") // 100
6355class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
6356 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07006357 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006358 u32 maxDiscardRectangles
6359}
6360
6361@extension("VK_EXT_discard_rectangles") // 100
6362class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006363 VkStructureType sType
6364 const void* pNext
6365 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
6366 VkDiscardRectangleModeEXT discardRectangleMode
6367 u32 discardRectangleCount
6368 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08006369}
6370
Jesse Hall8c954d32018-01-17 22:06:20 -08006371@extension("VK_EXT_conservative_rasterization") // 102
6372class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
6373 VkStructureType sType
6374 void* pNext
6375 f32 primitiveOverestimationSize
6376 f32 maxExtraPrimitiveOverestimationSize
6377 f32 extraPrimitiveOverestimationSizeGranularity
6378 VkBool32 primitiveUnderestimation
6379 VkBool32 conservativePointAndLineRasterization
6380 VkBool32 degenerateTrianglesRasterized
6381 VkBool32 degenerateLinesRasterized
6382 VkBool32 fullyCoveredFragmentShaderInputVariable
6383 VkBool32 conservativeRasterizationPostDepthCoverage
6384}
6385
6386@extension("VK_EXT_conservative_rasterization") // 102
6387class VkPipelineRasterizationConservativeStateCreateInfoEXT {
6388 VkStructureType sType
6389 const void* pNext
6390 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
6391 VkConservativeRasterizationModeEXT conservativeRasterizationMode
6392 f32 extraPrimitiveOverestimationSize
6393}
6394
Jesse Hallad250842017-03-10 18:35:38 -08006395@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006396class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006397 f32 x
6398 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006399}
6400
Jesse Hallad250842017-03-10 18:35:38 -08006401@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006402class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006403 VkStructureType sType
6404 const void* pNext
6405 VkXYColorEXT displayPrimaryRed
6406 VkXYColorEXT displayPrimaryGreen
6407 VkXYColorEXT displayPrimaryBlue
6408 VkXYColorEXT whitePoint
6409 f32 maxLuminance
6410 f32 minLuminance
6411 f32 maxContentLightLevel
6412 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006413}
6414
Jesse Halla13a3cf2018-07-09 15:51:52 -07006415@extension("VK_KHR_create_renderpass2") // 110
6416class VkAttachmentDescription2KHR {
6417 VkStructureType sType
6418 const void* pNext
6419 VkAttachmentDescriptionFlags flags
6420 VkFormat format
6421 VkSampleCountFlagBits samples
6422 VkAttachmentLoadOp loadOp
6423 VkAttachmentStoreOp storeOp
6424 VkAttachmentLoadOp stencilLoadOp
6425 VkAttachmentStoreOp stencilStoreOp
6426 VkImageLayout initialLayout
6427 VkImageLayout finalLayout
6428}
6429
6430@extension("VK_KHR_create_renderpass2") // 110
6431class VkAttachmentReference2KHR {
6432 VkStructureType sType
6433 const void* pNext
6434 u32 attachment
6435 VkImageLayout layout
6436 VkImageAspectFlags aspectMask
6437}
6438
6439@extension("VK_KHR_create_renderpass2") // 110
6440class VkSubpassDescription2KHR {
6441 VkStructureType sType
6442 const void* pNext
6443 VkSubpassDescriptionFlags flags
6444 VkPipelineBindPoint pipelineBindPoint
6445 u32 viewMask
6446 u32 inputAttachmentCount
6447 const VkAttachmentReference2KHR* pInputAttachments
6448 u32 colorAttachmentCount
6449 const VkAttachmentReference2KHR* pColorAttachments
6450 const VkAttachmentReference2KHR* pResolveAttachments
6451 const VkAttachmentReference2KHR* pDepthStencilAttachment
6452 u32 preserveAttachmentCount
6453 const u32* pPreserveAttachments
6454}
6455
6456@extension("VK_KHR_create_renderpass2") // 110
6457class VkSubpassDependency2KHR {
6458 VkStructureType sType
6459 const void* pNext
6460 u32 srcSubpass
6461 u32 dstSubpass
6462 VkPipelineStageFlags srcStageMask
6463 VkPipelineStageFlags dstStageMask
6464 VkAccessFlags srcAccessMask
6465 VkAccessFlags dstAccessMask
6466 VkDependencyFlags dependencyFlags
6467 s32 viewOffset
6468}
6469
6470@extension("VK_KHR_create_renderpass2") // 110
6471class VkRenderPassCreateInfo2KHR {
6472 VkStructureType sType
6473 const void* pNext
6474 VkRenderPassCreateFlags flags
6475 u32 attachmentCount
6476 const VkAttachmentDescription2KHR* pAttachments
6477 u32 subpassCount
6478 const VkSubpassDescription2KHR* pSubpasses
6479 u32 dependencyCount
6480 const VkSubpassDependency2KHR* pDependencies
6481 u32 correlatedViewMaskCount
6482 const u32* pCorrelatedViewMasks
6483}
6484
6485@extension("VK_KHR_create_renderpass2") // 110
6486class VkSubpassBeginInfoKHR {
6487 VkStructureType sType
6488 const void* pNext
6489 VkSubpassContents contents
6490}
6491
6492@extension("VK_KHR_create_renderpass2") // 110
6493class VkSubpassEndInfoKHR {
6494 VkStructureType sType
6495 const void* pNext
6496}
6497
Jesse Hall05556b12017-05-18 17:40:25 -07006498@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006499class VkSharedPresentSurfaceCapabilitiesKHR {
6500 VkStructureType sType
6501 const void* pNext
6502 VkImageUsageFlags sharedPresentSupportedUsageFlags
6503}
6504
Jesse Hall9492f992017-08-28 12:10:06 -07006505@extension("VK_KHR_external_fence_capabilities") // 113
6506class VkPhysicalDeviceExternalFenceInfoKHR {
6507 VkStructureType sType
6508 const void* pNext
6509 VkExternalFenceHandleTypeFlagBitsKHR handleType
6510}
6511
6512@extension("VK_KHR_external_fence_capabilities") // 113
6513class VkExternalFencePropertiesKHR {
6514 VkStructureType sType
6515 void* pNext
6516 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6517 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6518 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6519}
6520
6521@extension("VK_KHR_external_fence") // 114
6522class VkExportFenceCreateInfoKHR {
6523 VkStructureType sType
6524 const void* pNext
6525 VkExternalFenceHandleTypeFlagsKHR handleTypes
6526}
6527
6528@extension("VK_KHR_external_fence_win32") // 115
6529class VkImportFenceWin32HandleInfoKHR {
6530 VkStructureType sType
6531 const void* pNext
6532 VkFence fence
6533 VkFenceImportFlagsKHR flags
6534 VkExternalFenceHandleTypeFlagBitsKHR handleType
6535 platform.HANDLE handle
6536 platform.LPCWSTR name
6537}
6538
6539@extension("VK_KHR_external_fence_win32") // 115
6540class VkExportFenceWin32HandleInfoKHR {
6541 VkStructureType sType
6542 const void* pNext
6543 const platform.SECURITY_ATTRIBUTES* pAttributes
6544 platform.DWORD dwAccess
6545 platform.LPCWSTR name
6546}
6547
6548@extension("VK_KHR_external_fence_win32") // 115
6549class VkFenceGetWin32HandleInfoKHR {
6550 VkStructureType sType
6551 const void* pNext
6552 VkFence fence
6553 VkExternalFenceHandleTypeFlagBitsKHR handleType
6554}
6555
6556@extension("VK_KHR_external_fence_fd") // 116
6557class VkImportFenceFdInfoKHR {
6558 VkStructureType sType
6559 const void* pNext
6560 VkFence fence
6561 VkFenceImportFlagsKHR flags
6562 VkExternalFenceHandleTypeFlagBitsKHR handleType
6563 int fd
6564}
6565
6566@extension("VK_KHR_external_fence_fd") // 116
6567class VkFenceGetFdInfoKHR {
6568 VkStructureType sType
6569 const void* pNext
6570 VkFence fence
6571 VkExternalFenceHandleTypeFlagBitsKHR handleType
6572}
6573
Jesse Hall076f95d2017-09-20 11:34:47 -07006574@extension("VK_KHR_maintenance2") // 118
6575class VkPhysicalDevicePointClippingPropertiesKHR {
6576 VkStructureType sType
6577 void* pNext
6578 VkPointClippingBehaviorKHR pointClippingBehavior
6579}
6580
6581@extension("VK_KHR_maintenance2") // 118
6582class VkInputAttachmentAspectReferenceKHR {
6583 u32 subpass
6584 u32 inputAttachmentIndex
6585 VkImageAspectFlags aspectMask
6586}
6587
6588@extension("VK_KHR_maintenance2") // 118
6589class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6590 VkStructureType sType
6591 const void* pNext
6592 u32 aspectReferenceCount
6593 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6594}
6595
6596@extension("VK_KHR_maintenance2") // 118
6597class VkImageViewUsageCreateInfoKHR {
6598 VkStructureType sType
6599 const void* pNext
6600 VkImageUsageFlags usage
6601}
6602
6603@extension("VK_KHR_maintenance2") // 118
6604class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6605 VkStructureType sType
6606 const void* pNext
6607 VkTessellationDomainOriginKHR domainOrigin
6608}
6609
Jesse Hall05556b12017-05-18 17:40:25 -07006610@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006611class VkPhysicalDeviceSurfaceInfo2KHR {
6612 VkStructureType sType
6613 const void* pNext
6614 VkSurfaceKHR surface
6615}
6616
Jesse Hall05556b12017-05-18 17:40:25 -07006617@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006618class VkSurfaceCapabilities2KHR {
6619 VkStructureType sType
6620 void* pNext
6621 VkSurfaceCapabilitiesKHR surfaceCapabilities
6622}
6623
Jesse Hall05556b12017-05-18 17:40:25 -07006624@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006625class VkSurfaceFormat2KHR {
6626 VkStructureType sType
6627 void* pNext
6628 VkSurfaceFormatKHR surfaceFormat
6629}
6630
Jesse Hall9492f992017-08-28 12:10:06 -07006631@extension("VK_KHR_variable_pointers") // 121
6632class VkPhysicalDeviceVariablePointerFeaturesKHR {
6633 VkStructureType sType
6634 void* pNext
6635 VkBool32 variablePointersStorageBuffer
6636 VkBool32 variablePointers
6637}
6638
Jesse Hall54f8d132018-04-18 08:16:59 -07006639@extension("VK_KHR_display_properties2") // 122
6640class VkDisplayProperties2KHR {
6641 VkStructureType sType
6642 void* pNext
6643 VkDisplayPropertiesKHR displayProperties
6644}
6645
6646@extension("VK_KHR_display_properties2") // 122
6647class VkDisplayPlaneProperties2KHR {
6648 VkStructureType sType
6649 void* pNext
6650 VkDisplayPlanePropertiesKHR displayPlaneProperties
6651}
6652
6653@extension("VK_KHR_display_properties2") // 122
6654class VkDisplayModeProperties2KHR {
6655 VkStructureType sType
6656 void* pNext
6657 VkDisplayModePropertiesKHR displayModeProperties
6658}
6659
6660@extension("VK_KHR_display_properties2") // 122
6661class VkDisplayPlaneInfo2KHR {
6662 VkStructureType sType
6663 const void* pNext
6664 VkDisplayModeKHR mode
6665 u32 planeIndex
6666}
6667
6668@extension("VK_KHR_display_properties2") // 122
6669class VkDisplayPlaneCapabilities2KHR {
6670 VkStructureType sType
6671 void* pNext
6672 VkDisplayPlaneCapabilitiesKHR capabilities
6673}
6674
Jesse Hallad250842017-03-10 18:35:38 -08006675@extension("VK_MVK_ios_surface") // 123
6676class VkIOSSurfaceCreateInfoMVK {
6677 VkStructureType sType
6678 const void* pNext
6679 VkIOSSurfaceCreateFlagsMVK flags
6680 const void* pView
6681}
6682
6683@extension("VK_MVK_macos_surface") // 124
6684class VkMacOSSurfaceCreateInfoMVK {
6685 VkStructureType sType
6686 const void* pNext
6687 VkMacOSSurfaceCreateFlagsMVK flags
6688 const void* pView
6689}
6690
Jesse Hall9492f992017-08-28 12:10:06 -07006691@extension("VK_KHR_dedicated_allocation") // 128
6692class VkMemoryDedicatedRequirementsKHR {
6693 VkStructureType sType
6694 void* pNext
6695 VkBool32 prefersDedicatedAllocation
6696 VkBool32 requiresDedicatedAllocation
6697}
6698
6699@extension("VK_KHR_dedicated_allocation") // 128
6700class VkMemoryDedicatedAllocateInfoKHR {
6701 VkStructureType sType
6702 const void* pNext
6703 VkImage image
6704 VkBuffer buffer
6705}
6706
Jesse Hall8c954d32018-01-17 22:06:20 -08006707@extension("VK_EXT_debug_utils") // 129
6708class VkDebugUtilsObjectNameInfoEXT {
6709 VkStructureType sType
6710 const void* pNext
6711 VkObjectType objectType
6712 u64 objectHandle
6713 const char* pObjectName
6714}
Jesse Hall72e6a132018-04-06 13:00:44 -07006715
Jesse Hall8c954d32018-01-17 22:06:20 -08006716@extension("VK_EXT_debug_utils") // 129
6717class VkDebugUtilsObjectTagInfoEXT {
6718 VkStructureType sType
6719 const void* pNext
6720 VkObjectType objectType
6721 u64 objectHandle
6722 u64 tagName
6723 platform.size_t tagSize
6724 const void* pTag
6725}
Jesse Hall72e6a132018-04-06 13:00:44 -07006726
Jesse Hall8c954d32018-01-17 22:06:20 -08006727@extension("VK_EXT_debug_utils") // 129
6728class VkDebugUtilsLabelEXT {
6729 VkStructureType sType
6730 const void* pNext
6731 const char* pLabelName
6732 f32[4] color
6733}
6734
6735@extension("VK_EXT_debug_utils") // 129
6736class VkDebugUtilsMessengerCallbackDataEXT {
6737 VkStructureType sType
6738 const void* pNext
6739 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6740 const char* pMessageIdName
6741 s32 messageIdNumber
6742 const char* pMessage
6743 u32 queueLabelCount
6744 VkDebugUtilsLabelEXT* pQueueLabels
6745 u32 cmdBufLabelCount
6746 VkDebugUtilsLabelEXT* pCmdBufLabels
6747 u32 objectCount
6748 VkDebugUtilsObjectNameInfoEXT* pObjects
6749}
6750
6751@extension("VK_EXT_debug_utils") // 129
6752class VkDebugUtilsMessengerCreateInfoEXT {
6753 VkStructureType sType
6754 const void* pNext
6755 VkDebugUtilsMessengerCreateFlagsEXT flags
6756 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
Jesse Hallf47e8f82018-10-27 23:41:45 -07006757 VkDebugUtilsMessageTypeFlagsEXT messageTypes
Jesse Hall8c954d32018-01-17 22:06:20 -08006758 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6759 void* pUserData
6760}
6761
Jesse Hall36215a92018-01-18 15:04:37 -08006762@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6763class VkAndroidHardwareBufferUsageANDROID {
6764 VkStructureType sType
6765 void* pNext
6766 u64 androidHardwareBufferUsage
6767}
6768
6769@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6770class VkAndroidHardwareBufferPropertiesANDROID {
6771 VkStructureType sType
6772 void* pNext
6773 VkDeviceSize allocationSize
6774 u32 memoryTypeBits
6775}
6776
6777@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6778class VkAndroidHardwareBufferFormatPropertiesANDROID {
6779 VkStructureType sType
6780 void* pNext
6781 VkFormat format
6782 u64 externalFormat
6783 VkFormatFeatureFlags formatFeatures
6784 VkComponentMapping samplerYcbcrConversionComponents
6785 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6786 VkSamplerYcbcrRange suggestedYcbcrRange
6787 VkChromaLocation suggestedXChromaOffset
6788 VkChromaLocation suggestedYChromaOffset
6789}
6790
6791@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6792class VkImportAndroidHardwareBufferInfoANDROID {
6793 VkStructureType sType
6794 const void* pNext
6795 platform.AHardwareBuffer* buffer
6796}
6797
6798@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6799class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6800 VkStructureType sType
6801 const void* pNext
6802 VkDeviceMemory memory
6803}
6804
6805@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6806class VkExternalFormatANDROID {
6807 VkStructureType sType
6808 void* pNext
6809 u64 externalFormat
6810}
6811
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006812@extension("VK_EXT_sampler_filter_minmax") // 131
6813class VkSamplerReductionModeCreateInfoEXT {
6814 VkStructureType sType
6815 const void* pNext
6816 VkSamplerReductionModeEXT reductionMode
6817}
6818
6819@extension("VK_EXT_sampler_filter_minmax") // 131
6820class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6821 VkStructureType sType
6822 void* pNext
6823 VkBool32 filterMinmaxSingleComponentFormats
6824 VkBool32 filterMinmaxImageComponentMapping
6825}
6826
Jesse Hall4af6c462018-09-10 09:04:25 -07006827@extension("VK_EXT_inline_uniform_block") // 139
6828class VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
6829 VkStructureType sType
6830 void* pNext
6831 VkBool32 inlineUniformBlock
6832 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind
6833}
6834
6835@extension("VK_EXT_inline_uniform_block") // 139
6836class VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
6837 VkStructureType sType
6838 void* pNext
6839 u32 maxInlineUniformBlockSize
6840 u32 maxPerStageDescriptorInlineUniformBlocks
6841 u32 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
6842 u32 maxDescriptorSetInlineUniformBlocks
6843 u32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks
6844}
6845
6846@extension("VK_EXT_inline_uniform_block") // 139
6847class VkWriteDescriptorSetInlineUniformBlockEXT {
6848 VkStructureType sType
6849 const void* pNext
6850 u32 dataSize
6851 const void* pData
6852}
6853
6854@extension("VK_EXT_inline_uniform_block") // 139
6855class VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
6856 VkStructureType sType
6857 const void* pNext
6858 u32 maxInlineUniformBlockBindings
6859}
6860
Jesse Hall77726222017-09-19 14:49:27 -05006861@extension("VK_EXT_sample_locations") // 144
6862class VkSampleLocationEXT {
6863 f32 x
6864 f32 y
6865}
6866
6867@extension("VK_EXT_sample_locations") // 144
6868class VkSampleLocationsInfoEXT {
6869 VkStructureType sType
6870 const void* pNext
6871 VkSampleCountFlagBits sampleLocationsPerPixel
6872 VkExtent2D sampleLocationGridSize
6873 u32 sampleLocationsCount
6874 const VkSampleLocationEXT* pSampleLocations
6875}
6876
6877@extension("VK_EXT_sample_locations") // 144
6878class VkAttachmentSampleLocationsEXT {
6879 u32 attachmentIndex
6880 VkSampleLocationsInfoEXT sampleLocationsInfo
6881}
6882
6883@extension("VK_EXT_sample_locations") // 144
6884class VkSubpassSampleLocationsEXT {
6885 u32 subpassIndex
6886 VkSampleLocationsInfoEXT sampleLocationsInfo
6887}
6888
6889@extension("VK_EXT_sample_locations") // 144
6890class VkRenderPassSampleLocationsBeginInfoEXT {
6891 VkStructureType sType
6892 const void* pNext
6893 u32 attachmentInitialSampleLocationsCount
6894 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6895 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006896 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006897}
6898
6899@extension("VK_EXT_sample_locations") // 144
6900class VkPipelineSampleLocationsStateCreateInfoEXT {
6901 VkStructureType sType
6902 const void* pNext
6903 VkBool32 sampleLocationsEnable
6904 VkSampleLocationsInfoEXT sampleLocationsInfo
6905}
6906
6907@extension("VK_EXT_sample_locations") // 144
6908class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6909 VkStructureType sType
6910 void* pNext
6911 VkSampleCountFlags sampleLocationSampleCounts
6912 VkExtent2D maxSampleLocationGridSize
6913 f32[2] sampleLocationCoordinateRange
6914 u32 sampleLocationSubPixelBits
6915 VkBool32 variableSampleLocations
6916}
6917
6918@extension("VK_EXT_sample_locations") // 144
6919class VkMultisamplePropertiesEXT {
6920 VkStructureType sType
6921 void* pNext
6922 VkExtent2D maxSampleLocationGridSize
6923}
6924
Jesse Hall9492f992017-08-28 12:10:06 -07006925@extension("VK_KHR_get_memory_requirements2") // 147
6926class VkBufferMemoryRequirementsInfo2KHR {
6927 VkStructureType sType
6928 const void* pNext
6929 VkBuffer buffer
6930}
6931
6932@extension("VK_KHR_get_memory_requirements2") // 147
6933class VkImageMemoryRequirementsInfo2KHR {
6934 VkStructureType sType
6935 const void* pNext
6936 VkImage image
6937}
6938
6939@extension("VK_KHR_get_memory_requirements2") // 147
6940class VkImageSparseMemoryRequirementsInfo2KHR {
6941 VkStructureType sType
6942 const void* pNext
6943 VkImage image
6944}
6945
6946@extension("VK_KHR_get_memory_requirements2") // 147
6947class VkMemoryRequirements2KHR {
6948 VkStructureType sType
6949 void* pNext
6950 VkMemoryRequirements memoryRequirements
6951}
6952
6953@extension("VK_KHR_get_memory_requirements2") // 147
6954class VkSparseImageMemoryRequirements2KHR {
6955 VkStructureType sType
6956 void* pNext
6957 VkSparseImageMemoryRequirements memoryRequirements
6958}
6959
Jesse Hall076f95d2017-09-20 11:34:47 -07006960@extension("VK_KHR_image_format_list") // 148
6961class VkImageFormatListCreateInfoKHR {
6962 VkStructureType sType
6963 const void* pNext
6964 u32 viewFormatCount
6965 const VkFormat* pViewFormats
6966}
6967
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006968@extension("VK_EXT_blend_operation_advanced") // 149
6969class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
6970 VkStructureType sType
6971 void* pNext
6972 VkBool32 advancedBlendCoherentOperations
6973}
6974
6975@extension("VK_EXT_blend_operation_advanced") // 149
6976class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
6977 VkStructureType sType
6978 void* pNext
6979 u32 advancedBlendMaxColorAttachments
6980 VkBool32 advancedBlendIndependentBlend
6981 VkBool32 advancedBlendNonPremultipliedSrcColor
6982 VkBool32 advancedBlendNonPremultipliedDstColor
6983 VkBool32 advancedBlendCorrelatedOverlap
6984 VkBool32 advancedBlendAllOperations
6985}
6986
6987@extension("VK_EXT_blend_operation_advanced") // 149
6988class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
6989 VkStructureType sType
6990 const void* pNext
6991 VkBool32 srcPremultiplied
6992 VkBool32 dstPremultiplied
6993 VkBlendOverlapEXT blendOverlap
6994}
6995
6996@extension("VK_NV_fragment_coverage_to_color") // 150
6997class VkPipelineCoverageToColorStateCreateInfoNV {
6998 VkStructureType sType
6999 const void* pNext
7000 VkPipelineCoverageToColorStateCreateFlagsNV flags
7001 VkBool32 coverageToColorEnable
7002 u32 coverageToColorLocation
7003}
7004
7005@extension("VK_NV_framebuffer_mixed_samples") // 153
7006class VkPipelineCoverageModulationStateCreateInfoNV {
7007 VkStructureType sType
7008 const void* pNext
7009 VkPipelineCoverageModulationStateCreateFlagsNV flags
7010 VkCoverageModulationModeNV coverageModulationMode
7011 VkBool32 coverageModulationTableEnable
7012 u32 coverageModulationTableCount
7013 const f32* pCoverageModulationTable
7014}
7015
Jesse Hall076f95d2017-09-20 11:34:47 -07007016@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7017class VkSamplerYcbcrConversionCreateInfoKHR {
7018 VkStructureType sType
7019 const void* pNext
7020 VkFormat format
7021 VkSamplerYcbcrModelConversionKHR ycbcrModel
7022 VkSamplerYcbcrRangeKHR ycbcrRange
7023 VkComponentMapping components
7024 VkChromaLocationKHR xChromaOffset
7025 VkChromaLocationKHR yChromaOffset
7026 VkFilter chromaFilter
7027 VkBool32 forceExplicitReconstruction
7028}
7029
7030@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7031class VkSamplerYcbcrConversionInfoKHR {
7032 VkStructureType sType
7033 const void* pNext
7034 VkSamplerYcbcrConversionKHR conversion
7035}
7036
7037@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7038class VkBindImagePlaneMemoryInfoKHR {
7039 VkStructureType sType
7040 const void* pNext
7041 VkImageAspectFlagBits planeAspect
7042}
7043
7044@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7045class VkImagePlaneMemoryRequirementsInfoKHR {
7046 VkStructureType sType
7047 const void* pNext
7048 VkImageAspectFlagBits planeAspect
7049}
7050
7051@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7052class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
7053 VkStructureType sType
7054 void* pNext
7055 VkBool32 samplerYcbcrConversion
7056}
7057
7058@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7059class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
7060 VkStructureType sType
7061 void* pNext
7062 u32 combinedImageSamplerDescriptorCount
7063}
7064
7065@extension("VK_KHR_bind_memory2") // 158
7066class VkBindBufferMemoryInfoKHR {
7067 VkStructureType sType
7068 const void* pNext
7069 VkBuffer buffer
7070 VkDeviceMemory memory
7071 VkDeviceSize memoryOffset
7072}
7073
7074@extension("VK_KHR_bind_memory2") // 158
7075class VkBindImageMemoryInfoKHR {
7076 VkStructureType sType
7077 const void* pNext
7078 VkImage image
7079 VkDeviceMemory memory
7080 VkDeviceSize memoryOffset
7081}
7082
Jesse Hallf47e8f82018-10-27 23:41:45 -07007083@extension("VK_EXT_image_drm_format_modifier") // 159
7084class VkDrmFormatModifierPropertiesEXT {
7085 u64 drmFormatModifier
7086 u32 drmFormatModifierPlaneCount
7087 VkFormatFeatureFlags drmFormatModifierTilingFeatures
7088}
7089
7090@extension("VK_EXT_image_drm_format_modifier") // 159
7091class VkDrmFormatModifierPropertiesListEXT {
7092 VkStructureType sType
7093 void* pNext
7094 u32 drmFormatModifierCount
7095 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties
7096}
7097
7098@extension("VK_EXT_image_drm_format_modifier") // 159
7099class VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
7100 VkStructureType sType
7101 const void* pNext
7102 u64 drmFormatModifier
7103 VkSharingMode sharingMode
7104 u32 queueFamilyIndexCount
7105 const u32* pQueueFamilyIndices
7106}
7107
7108@extension("VK_EXT_image_drm_format_modifier") // 159
7109class VkImageDrmFormatModifierListCreateInfoEXT {
7110 VkStructureType sType
7111 const void* pNext
7112 u32 drmFormatModifierCount
7113 const u64* pDrmFormatModifiers
7114}
7115
7116@extension("VK_EXT_image_drm_format_modifier") // 159
7117class VkImageDrmFormatModifierExplicitCreateInfoEXT {
7118 VkStructureType sType
7119 const void* pNext
7120 u64 drmFormatModifier
7121 u32 drmFormatModifierPlaneCount
7122 const VkSubresourceLayout* pPlaneLayouts
7123}
7124
7125@extension("VK_EXT_image_drm_format_modifier") // 159
7126class VkImageDrmFormatModifierPropertiesEXT {
7127 VkStructureType sType
7128 void* pNext
7129 u64 drmFormatModifier
7130}
7131
Jesse Hall77726222017-09-19 14:49:27 -05007132@extension("VK_EXT_validation_cache") // 161
7133class VkValidationCacheCreateInfoEXT {
7134 VkStructureType sType
7135 const void* pNext
7136 VkValidationCacheCreateFlagsEXT flags
7137 platform.size_t initialDataSize
7138 const void* pInitialData
7139}
7140
7141@extension("VK_EXT_validation_cache") // 161
7142class VkShaderModuleValidationCacheCreateInfoEXT {
7143 VkStructureType sType
7144 const void* pNext
7145 VkValidationCacheEXT validationCache
7146}
7147
Jesse Hall72e6a132018-04-06 13:00:44 -07007148@extension("VK_EXT_descriptor_indexing") // 162
7149class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
7150 VkStructureType sType
7151 const void* pNext
7152 u32 bindingCount
7153 const VkDescriptorBindingFlagsEXT* pBindingFlags
7154}
7155
7156@extension("VK_EXT_descriptor_indexing") // 162
7157class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
7158 VkStructureType sType
7159 void* pNext
7160 VkBool32 shaderInputAttachmentArrayDynamicIndexing
7161 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
7162 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
7163 VkBool32 shaderUniformBufferArrayNonUniformIndexing
7164 VkBool32 shaderSampledImageArrayNonUniformIndexing
7165 VkBool32 shaderStorageBufferArrayNonUniformIndexing
7166 VkBool32 shaderStorageImageArrayNonUniformIndexing
7167 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
7168 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
7169 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
7170 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
7171 VkBool32 descriptorBindingSampledImageUpdateAfterBind
7172 VkBool32 descriptorBindingStorageImageUpdateAfterBind
7173 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
7174 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
7175 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
7176 VkBool32 descriptorBindingUpdateUnusedWhilePending
7177 VkBool32 descriptorBindingPartiallyBound
7178 VkBool32 descriptorBindingVariableDescriptorCount
7179 VkBool32 runtimeDescriptorArray
7180}
7181
7182@extension("VK_EXT_descriptor_indexing") // 162
7183class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
7184 VkStructureType sType
7185 void* pNext
7186 u32 maxUpdateAfterBindDescriptorsInAllPools
7187 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
7188 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
7189 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
7190 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
7191 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
7192 VkBool32 robustBufferAccessUpdateAfterBind
7193 VkBool32 quadDivergentImplicitLod
7194 u32 maxPerStageDescriptorUpdateAfterBindSamplers
7195 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
7196 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
7197 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
7198 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
7199 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
7200 u32 maxPerStageUpdateAfterBindResources
7201 u32 maxDescriptorSetUpdateAfterBindSamplers
7202 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
7203 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
7204 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
7205 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
7206 u32 maxDescriptorSetUpdateAfterBindSampledImages
7207 u32 maxDescriptorSetUpdateAfterBindStorageImages
7208 u32 maxDescriptorSetUpdateAfterBindInputAttachments
7209}
7210
7211@extension("VK_EXT_descriptor_indexing") // 162
7212class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
7213 VkStructureType sType
7214 const void* pNext
7215 u32 descriptorSetCount
7216 const u32* pDescriptorCounts
7217}
7218
7219@extension("VK_EXT_descriptor_indexing") // 162
7220class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
7221 VkStructureType sType
7222 void* pNext
7223 u32 maxVariableDescriptorCount
7224}
7225
Jesse Hallb5297192018-09-22 20:52:13 +02007226@extension("VK_NV_shading_rate_image") // 165
7227class VkShadingRatePaletteNV {
7228 u32 shadingRatePaletteEntryCount
7229 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries
7230}
7231
7232@extension("VK_NV_shading_rate_image") // 165
7233class VkPipelineViewportShadingRateImageStateCreateInfoNV {
7234 VkStructureType sType
7235 const void* pNext
7236 VkBool32 shadingRateImageEnable
7237 u32 viewportCount
7238 const VkShadingRatePaletteNV* pShadingRatePalettes
7239}
7240
7241@extension("VK_NV_shading_rate_image") // 165
7242class VkPhysicalDeviceShadingRateImageFeaturesNV {
7243 VkStructureType sType
7244 void* pNext
7245 VkBool32 shadingRateImage
7246 VkBool32 shadingRateCoarseSampleOrder
7247}
7248
7249@extension("VK_NV_shading_rate_image") // 165
7250class VkPhysicalDeviceShadingRateImagePropertiesNV {
7251 VkStructureType sType
7252 void* pNext
7253 VkExtent2D shadingRateTexelSize
7254 u32 shadingRatePaletteSize
7255 u32 shadingRateMaxCoarseSamples
7256}
7257
7258@extension("VK_NV_shading_rate_image") // 165
7259class VkCoarseSampleLocationNV {
7260 u32 pixelX
7261 u32 pixelY
7262 u32 sample
7263}
7264
7265@extension("VK_NV_shading_rate_image") // 165
7266class VkCoarseSampleOrderCustomNV {
7267 VkShadingRatePaletteEntryNV shadingRate
7268 u32 sampleCount
7269 u32 sampleLocationCount
7270 const VkCoarseSampleLocationNV* pSampleLocations
7271}
7272
7273@extension("VK_NV_shading_rate_image") // 165
7274class VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
7275 VkStructureType sType
7276 const void* pNext
7277 VkCoarseSampleOrderTypeNV sampleOrderType
7278 u32 customSampleOrderCount
7279 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders
7280}
7281
Jesse Hallbeea46d2018-12-04 14:38:07 -08007282@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007283class VkRayTracingShaderGroupCreateInfoNV {
7284 VkStructureType sType
7285 const void* pNext
7286 VkRayTracingShaderGroupTypeNV type
7287 u32 generalShader
7288 u32 closestHitShader
7289 u32 anyHitShader
7290 u32 intersectionShader
Jesse Hallb5297192018-09-22 20:52:13 +02007291}
7292
Jesse Hallbeea46d2018-12-04 14:38:07 -08007293@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007294class VkRayTracingPipelineCreateInfoNV {
7295 VkStructureType sType
7296 const void* pNext
7297 VkPipelineCreateFlags flags
7298 u32 stageCount
7299 const VkPipelineShaderStageCreateInfo* pStages
7300 u32 groupCount
7301 const VkRayTracingShaderGroupCreateInfoNV* pGroups
7302 u32 maxRecursionDepth
7303 VkPipelineLayout layout
7304 VkPipeline basePipelineHandle
7305 s32 basePipelineIndex
7306}
7307
Jesse Hallbeea46d2018-12-04 14:38:07 -08007308@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007309class VkGeometryTrianglesNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007310 VkStructureType sType
7311 const void* pNext
7312 VkBuffer vertexData
7313 VkDeviceSize vertexOffset
7314 u32 vertexCount
7315 VkDeviceSize vertexStride
7316 VkFormat vertexFormat
7317 VkBuffer indexData
7318 VkDeviceSize indexOffset
7319 u32 indexCount
7320 VkIndexType indexType
7321 VkBuffer transformData
7322 VkDeviceSize transformOffset
7323}
7324
Jesse Hallbeea46d2018-12-04 14:38:07 -08007325@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007326class VkGeometryAABBNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007327 VkStructureType sType
7328 const void* pNext
7329 VkBuffer aabbData
7330 u32 numAABBs
7331 u32 stride
7332 VkDeviceSize offset
7333}
7334
Jesse Hallbeea46d2018-12-04 14:38:07 -08007335@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007336class VkGeometryDataNV {
7337 VkGeometryTrianglesNV triangles
7338 VkGeometryAABBNV aabbs
Jesse Hallb5297192018-09-22 20:52:13 +02007339}
7340
Jesse Hallbeea46d2018-12-04 14:38:07 -08007341@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007342class VkGeometryNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007343 VkStructureType sType
7344 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007345 VkGeometryTypeNV geometryType
7346 VkGeometryDataNV geometry
7347 VkGeometryFlagsNV flags
Jesse Hallb5297192018-09-22 20:52:13 +02007348}
7349
Jesse Hallbeea46d2018-12-04 14:38:07 -08007350@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007351class VkAccelerationStructureInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007352 VkStructureType sType
7353 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007354 VkAccelerationStructureTypeNV type
7355 VkBuildAccelerationStructureFlagsNV flags
Jesse Hallb5297192018-09-22 20:52:13 +02007356 u32 instanceCount
7357 u32 geometryCount
Jesse Halla363a8e2018-11-05 21:18:00 -07007358 const VkGeometryNV* pGeometries
Jesse Hallb5297192018-09-22 20:52:13 +02007359}
7360
Jesse Hallbeea46d2018-12-04 14:38:07 -08007361@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007362class VkAccelerationStructureCreateInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007363 VkStructureType sType
7364 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007365 VkDeviceSize compactedSize
7366 VkAccelerationStructureInfoNV info
7367}
7368
Jesse Hallbeea46d2018-12-04 14:38:07 -08007369@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007370class VkBindAccelerationStructureMemoryInfoNV {
7371 VkStructureType sType
7372 const void* pNext
7373 VkAccelerationStructureNV accelerationStructure
Jesse Hallb5297192018-09-22 20:52:13 +02007374 VkDeviceMemory memory
7375 VkDeviceSize memoryOffset
7376 u32 deviceIndexCount
7377 const u32* pDeviceIndices
7378}
7379
Jesse Hallbeea46d2018-12-04 14:38:07 -08007380@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007381class VkDescriptorAccelerationStructureInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007382 VkStructureType sType
7383 const void* pNext
7384 u32 accelerationStructureCount
Jesse Halla363a8e2018-11-05 21:18:00 -07007385 const VkAccelerationStructureNV* pAccelerationStructures
Jesse Hallb5297192018-09-22 20:52:13 +02007386}
7387
Jesse Hallbeea46d2018-12-04 14:38:07 -08007388@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007389class VkAccelerationStructureMemoryRequirementsInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007390 VkStructureType sType
7391 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007392 VkAccelerationStructureMemoryRequirementsTypeNV type
7393 VkAccelerationStructureNV accelerationStructure
Jesse Hallb5297192018-09-22 20:52:13 +02007394}
7395
Jesse Hallbeea46d2018-12-04 14:38:07 -08007396@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007397class VkPhysicalDeviceRaytracingPropertiesNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007398 VkStructureType sType
7399 void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007400 u32 shaderGroupHandleSize
Jesse Hallb5297192018-09-22 20:52:13 +02007401 u32 maxRecursionDepth
Jesse Halla363a8e2018-11-05 21:18:00 -07007402 u32 maxShaderGroupStride
7403 u32 shaderGroupBaseAlignment
7404 u64 maxGeometryCount
7405 u64 maxInstanceCount
7406 u64 maxTriangleCount
7407 u32 maxDescriptorSetAccelerationStructures
Jesse Hallb5297192018-09-22 20:52:13 +02007408}
7409
7410@extension("VK_NV_representative_fragment_test") // 167
7411class VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
7412 VkStructureType sType
7413 void* pNext
7414 VkBool32 representativeFragmentTest
7415}
7416
7417@extension("VK_NV_representative_fragment_test") // 167
7418class VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
7419 VkStructureType sType
7420 const void* pNext
7421 VkBool32 representativeFragmentTestEnable
7422}
7423
Daniel Koch09f7bf92017-10-05 00:26:58 -04007424@extension("VK_KHR_maintenance3") // 169
7425class VkPhysicalDeviceMaintenance3PropertiesKHR {
7426 VkStructureType sType
7427 void* pNext
7428 u32 maxPerSetDescriptors
7429 VkDeviceSize maxMemoryAllocationSize
7430}
7431
7432@extension("VK_KHR_maintenance3") // 169
7433class VkDescriptorSetLayoutSupportKHR {
7434 VkStructureType sType
7435 void* pNext
7436 VkBool32 supported
7437}
7438
Jesse Hall8c954d32018-01-17 22:06:20 -08007439@extension("VK_EXT_global_priority") // 175
7440class VkDeviceQueueGlobalPriorityCreateInfoEXT {
7441 VkStructureType sType
7442 const void* pNext
7443 VkQueueGlobalPriorityEXT globalPriority
7444}
7445
Jesse Halla13a3cf2018-07-09 15:51:52 -07007446@extension("VK_KHR_8bit_storage") // 178
7447class VkPhysicalDevice8BitStorageFeaturesKHR {
7448 VkStructureType sType
7449 void* pNext
7450 VkBool32 storageBuffer8BitAccess
7451 VkBool32 uniformAndStorageBuffer8BitAccess
7452 VkBool32 storagePushConstant8
7453}
7454
Jesse Hall8c954d32018-01-17 22:06:20 -08007455@extension("VK_EXT_external_memory_host") // 179
7456class VkImportMemoryHostPointerInfoEXT {
7457 VkStructureType sType
7458 const void* pNext
7459 VkExternalMemoryHandleTypeFlagBits handleType
7460 void* pHostPointer
7461}
7462
7463@extension("VK_EXT_external_memory_host") // 179
7464class VkMemoryHostPointerPropertiesEXT {
7465 VkStructureType sType
7466 void* pNext
7467 u32 memoryTypeBits
7468}
7469
7470@extension("VK_EXT_external_memory_host") // 179
7471class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
7472 VkStructureType sType
7473 void* pNext
7474 VkDeviceSize minImportedHostPointerAlignment
7475}
7476
Jesse Hall2e6853c2018-10-02 14:05:37 -07007477@extension("VK_KHR_shader_atomic_int64") // 181
7478class VkPhysicalDeviceShaderAtomicInt64FeaturesKHR {
7479 VkStructureType sType
7480 void* pNext
7481 VkBool32 shaderBufferInt64Atomics
7482 VkBool32 shaderSharedInt64Atomics
7483}
7484
Jesse Hallf47e8f82018-10-27 23:41:45 -07007485@extension("VK_EXT_calibrated_timestamps") // 185
7486class VkCalibratedTimestampInfoEXT {
7487 VkStructureType sType
7488 const void* pNext
7489 VkTimeDomainEXT timeDomain
7490}
7491
Jesse Hall72e6a132018-04-06 13:00:44 -07007492@extension("VK_AMD_shader_core_properties") // 186
7493class VkPhysicalDeviceShaderCorePropertiesAMD {
7494 VkStructureType sType
7495 void* pNext
7496 u32 shaderEngineCount
7497 u32 shaderArraysPerEngineCount
7498 u32 computeUnitsPerShaderArray
7499 u32 simdPerComputeUnit
7500 u32 wavefrontsPerSimd
7501 u32 wavefrontSize
7502 u32 sgprsPerSimd
7503 u32 minSgprAllocation
7504 u32 maxSgprAllocation
7505 u32 sgprAllocationGranularity
7506 u32 vgprsPerSimd
7507 u32 minVgprAllocation
7508 u32 maxVgprAllocation
7509 u32 vgprAllocationGranularity
7510}
7511
Jesse Halla363a8e2018-11-05 21:18:00 -07007512@extension("VK_AMD_memory_overallocation_behavior") // 190
7513class VkDeviceMemoryOverallocationCreateInfoAMD {
7514 VkStructureType sType
7515 const void* pNext
7516 VkMemoryOverallocationBehaviorAMD overallocationBehavior
7517}
7518
Jesse Hall72e6a132018-04-06 13:00:44 -07007519@extension("VK_EXT_vertex_attribute_divisor") // 191
7520class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
7521 VkStructureType sType
7522 void* pNext
7523 u32 maxVertexAttribDivisor
7524}
7525
7526@extension("VK_EXT_vertex_attribute_divisor") // 191
7527class VkVertexInputBindingDivisorDescriptionEXT {
7528 u32 binding
7529 u32 divisor
7530}
7531
7532@extension("VK_EXT_vertex_attribute_divisor") // 191
7533class VkPipelineVertexInputDivisorStateCreateInfoEXT {
7534 VkStructureType sType
7535 const void* pNext
7536 u32 vertexBindingDivisorCount
7537 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
7538}
7539
Jesse Hall4af6c462018-09-10 09:04:25 -07007540@extension("VK_EXT_vertex_attribute_divisor") // 191
7541class VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
7542 VkStructureType sType
7543 void* pNext
7544 VkBool32 vertexAttributeInstanceRateDivisor
7545 VkBool32 vertexAttributeInstanceRateZeroDivisor
7546}
7547
Jesse Hall2e6853c2018-10-02 14:05:37 -07007548@extension("VK_KHR_driver_properties") // 197
7549class VkConformanceVersionKHR {
7550 u8 major
7551 u8 minor
7552 u8 subminor
7553 u8 patch
7554}
7555
7556@extension("VK_KHR_driver_properties") // 197
7557class VkPhysicalDeviceDriverPropertiesKHR {
7558 VkStructureType sType
7559 void* pNext
Jesse Hallf47e8f82018-10-27 23:41:45 -07007560 VkDriverIdKHR driverID
Jesse Hall2e6853c2018-10-02 14:05:37 -07007561 char[VK_MAX_DRIVER_NAME_SIZE_KHR] driverName
7562 char[VK_MAX_DRIVER_INFO_SIZE_KHR] driverInfo
7563 VkConformanceVersionKHR conformanceVersion
7564}
7565
Jesse Hallb5297192018-09-22 20:52:13 +02007566@extension("VK_NV_compute_shader_derivatives") // 202
7567class VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
7568 VkStructureType sType
7569 void* pNext
7570 VkBool32 computeDerivativeGroupQuads
7571 VkBool32 computeDerivativeGroupLinear
7572}
7573
7574@extension("VK_NV_mesh_shader") // 203
7575class VkPhysicalDeviceMeshShaderFeaturesNV {
7576 VkStructureType sType
7577 void* pNext
7578 VkBool32 taskShader
7579 VkBool32 meshShader
7580}
7581
7582@extension("VK_NV_mesh_shader") // 203
7583class VkPhysicalDeviceMeshShaderPropertiesNV {
7584 VkStructureType sType
7585 void* pNext
7586 u32 maxDrawMeshTasksCount
7587 u32 maxTaskWorkGroupInvocations
7588 u32[3] maxTaskWorkGroupSize
7589 u32 maxTaskTotalMemorySize
7590 u32 maxTaskOutputCount
7591 u32 maxMeshWorkGroupInvocations
7592 u32[3] maxMeshWorkGroupSize
7593 u32 maxMeshTotalMemorySize
7594 u32 maxMeshOutputVertices
7595 u32 maxMeshOutputPrimitives
7596 u32 maxMeshMultiviewViewCount
7597 u32 meshOutputPerVertexGranularity
7598 u32 meshOutputPerPrimitiveGranularity
7599}
7600
7601@extension("VK_NV_mesh_shader") // 203
7602class VkDrawMeshTasksIndirectCommandNV {
7603 u32 taskCount
7604 u32 firstTask
7605}
7606
7607@extension("VK_NV_fragment_shader_barycentric") // 204
7608class VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
7609 VkStructureType sType
7610 void* pNext
7611 VkBool32 fragmentShaderBarycentric
7612}
7613
7614@extension("VK_NV_shader_image_footprint") // 205
7615class VkPhysicalDeviceShaderImageFootprintFeaturesNV {
7616 VkStructureType sType
7617 void* pNext
7618 VkBool32 imageFootprint
7619}
7620
7621@extension("VK_NV_scissor_exclusive") // 206
7622class VkPipelineViewportExclusiveScissorStateCreateInfoNV {
7623 VkStructureType sType
7624 const void* pNext
7625 u32 exclusiveScissorCount
7626 const VkRect2D* pExclusiveScissors
7627}
7628
7629@extension("VK_NV_scissor_exclusive") // 206
7630class VkPhysicalDeviceExclusiveScissorFeaturesNV {
7631 VkStructureType sType
7632 void* pNext
7633 VkBool32 exclusiveScissor
7634}
7635
Jesse Hall115df0c2018-07-30 12:00:59 -07007636@extension("VK_NV_device_diagnostic_checkpoints") // 207
7637class VkQueueFamilyCheckpointPropertiesNV {
7638 VkStructureType sType
7639 void* pNext
7640 VkPipelineStageFlags checkpointExecutionStageMask
7641}
7642
7643@extension("VK_NV_device_diagnostic_checkpoints") // 207
7644class VkCheckpointDataNV {
7645 VkStructureType sType
7646 void* pNext
7647 VkPipelineStageFlagBits stage
7648 void* pCheckpointMarker
7649}
7650
Jesse Hall4af6c462018-09-10 09:04:25 -07007651@extension("VK_KHR_vulkan_memory_model") // 212
7652class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
7653 VkStructureType sType
7654 void* pNext
7655 VkBool32 vulkanMemoryModel
7656 VkBool32 vulkanMemoryModelDeviceScope
7657}
7658
Jesse Hallf47e8f82018-10-27 23:41:45 -07007659@extension("VK_EXT_pci_bus_info") // 213
7660class VkPhysicalDevicePCIBusInfoPropertiesEXT {
7661 VkStructureType sType
7662 void* pNext
7663 u16 pciDomain
7664 u8 pciBus
7665 u8 pciDevice
7666 u8 pciFunction
7667}
7668
Jesse Hall497c46f2018-10-08 12:52:48 -07007669@extension("VK_FUCHSIA_imagepipe_surface") // 215
7670class VkImagePipeSurfaceCreateInfoFUCHSIA {
7671 VkStructureType sType
7672 const void* pNext
7673 VkImagePipeSurfaceCreateFlagsFUCHSIA flags
7674 platform.zx_handle_t imagePipeHandle
7675}
7676
Jesse Hall89bde782018-11-12 08:06:07 -08007677@extension("VK_EXT_scalar_block_layout") // 222
7678class VkPhysicalDeviceScalarBlockLayoutFeaturesEXT {
7679 VkStructureType sType
7680 void* pNext
7681 VkBool32 scalarBlockLayout
7682}
7683
7684@extension("VK_EXT_separate_stencil_usage") // 247
7685class VkImageStencilUsageCreateInfoEXT {
7686 VkStructureType sType
7687 const void* pNext
7688 VkImageUsageFlags stencilUsage
7689}
7690
Daniel Koch09f7bf92017-10-05 00:26:58 -04007691
Jesse Halld27f6aa2015-08-15 17:58:48 -07007692////////////////
7693// Commands //
7694////////////////
7695
7696// Function pointers. TODO: add support for function pointers.
7697
7698@external type void* PFN_vkVoidFunction
7699@pfn cmd void vkVoidFunction() {
7700}
7701
Jesse Hall3fbc8562015-11-29 22:10:52 -08007702@external type void* PFN_vkAllocationFunction
7703@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007704 void* pUserData,
7705 platform.size_t size,
7706 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007707 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007708 return ?
7709}
7710
Jesse Hall3fbc8562015-11-29 22:10:52 -08007711@external type void* PFN_vkReallocationFunction
7712@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007713 void* pUserData,
7714 void* pOriginal,
7715 platform.size_t size,
7716 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007717 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007718 return ?
7719}
7720
7721@external type void* PFN_vkFreeFunction
7722@pfn cmd void vkFreeFunction(
7723 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007724 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007725}
7726
Jesse Hall3fbc8562015-11-29 22:10:52 -08007727@external type void* PFN_vkInternalAllocationNotification
7728@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007729 void* pUserData,
7730 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007731 VkInternalAllocationType allocationType,
7732 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007733}
7734
7735@external type void* PFN_vkInternalFreeNotification
7736@pfn cmd void vkInternalFreeNotification(
7737 void* pUserData,
7738 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007739 VkInternalAllocationType allocationType,
7740 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007741}
Jesse Halld27f6aa2015-08-15 17:58:48 -07007742
7743// Global functions
7744
7745@threadSafety("system")
7746cmd VkResult vkCreateInstance(
7747 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007748 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007749 VkInstance* pInstance) {
7750 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
7751
7752 instance := ?
7753 pInstance[0] = instance
7754 State.Instances[instance] = new!InstanceObject()
7755
Jesse Hall3dd678a2016-01-08 21:52:01 -08007756 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
7757 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07007758
7759 return ?
7760}
7761
7762@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007763cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007764 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007765 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007766 instanceObject := GetInstance(instance)
7767
7768 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007769}
7770
7771@threadSafety("system")
7772cmd VkResult vkEnumeratePhysicalDevices(
7773 VkInstance instance,
7774 u32* pPhysicalDeviceCount,
7775 VkPhysicalDevice* pPhysicalDevices) {
7776 instanceObject := GetInstance(instance)
7777
7778 physicalDeviceCount := as!u32(?)
7779 pPhysicalDeviceCount[0] = physicalDeviceCount
7780 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
7781
7782 for i in (0 .. physicalDeviceCount) {
7783 physicalDevice := ?
7784 physicalDevices[i] = physicalDevice
7785 if !(physicalDevice in State.PhysicalDevices) {
7786 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
7787 }
7788 }
7789
7790 return ?
7791}
7792
7793cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
7794 VkDevice device,
7795 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007796 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007797 device := GetDevice(device)
7798 }
7799
7800 return ?
7801}
7802
7803cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
7804 VkInstance instance,
7805 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007806 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007807 instanceObject := GetInstance(instance)
7808 }
7809
7810 return ?
7811}
7812
Jesse Hall606a54e2015-11-19 22:17:28 -08007813cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007814 VkPhysicalDevice physicalDevice,
7815 VkPhysicalDeviceProperties* pProperties) {
7816 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7817
7818 properties := ?
7819 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007820}
7821
Jesse Hall606a54e2015-11-19 22:17:28 -08007822cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007823 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007824 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007825 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007826 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007827 // TODO: Figure out how to express fetch-count-or-properties
7828 // This version fails 'apic validate' with 'fence not allowed in
7829 // *semantic.Branch'. Other attempts have failed with the same or other
7830 // errors.
7831 // if pQueueFamilyProperties != null {
7832 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
7833 // for i in (0 .. pCount[0]) {
7834 // queueProperties := as!VkQueueFamilyProperties(?)
7835 // queuesProperties[i] = queueProperties
7836 // }
7837 // } else {
7838 // count := ?
7839 // pCount[0] = count
7840 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007841}
7842
Jesse Hall606a54e2015-11-19 22:17:28 -08007843cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007844 VkPhysicalDevice physicalDevice,
7845 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
7846 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7847
7848 memoryProperties := ?
7849 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007850}
7851
Jesse Hall606a54e2015-11-19 22:17:28 -08007852cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007853 VkPhysicalDevice physicalDevice,
7854 VkPhysicalDeviceFeatures* pFeatures) {
7855 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7856
7857 features := ?
7858 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07007859}
7860
Jesse Hall606a54e2015-11-19 22:17:28 -08007861cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007862 VkPhysicalDevice physicalDevice,
7863 VkFormat format,
7864 VkFormatProperties* pFormatProperties) {
7865 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7866
7867 formatProperties := ?
7868 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007869}
7870
Jesse Halla9e57032015-11-30 01:03:10 -08007871cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007872 VkPhysicalDevice physicalDevice,
7873 VkFormat format,
7874 VkImageType type,
7875 VkImageTiling tiling,
7876 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007877 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007878 VkImageFormatProperties* pImageFormatProperties) {
7879 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7880
7881 imageFormatProperties := ?
7882 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08007883
7884 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07007885}
7886
Jesse Halld27f6aa2015-08-15 17:58:48 -07007887
7888// Device functions
7889
7890@threadSafety("system")
7891cmd VkResult vkCreateDevice(
7892 VkPhysicalDevice physicalDevice,
7893 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007894 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007895 VkDevice* pDevice) {
7896 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
7897 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7898
7899 device := ?
7900 pDevice[0] = device
7901 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
7902
7903 return ?
7904}
7905
7906@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007907cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007908 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007909 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007910 deviceObject := GetDevice(device)
7911
7912 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007913}
7914
7915
7916// Extension discovery functions
7917
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007918cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007919 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007920 VkLayerProperties* pProperties) {
7921 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007922 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007923
7924 properties := pProperties[0:count]
7925 for i in (0 .. count) {
7926 property := ?
7927 properties[i] = property
7928 }
7929
7930 return ?
7931}
7932
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007933cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007934 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007935 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007936 VkExtensionProperties* pProperties) {
7937 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007938 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007939
7940 properties := pProperties[0:count]
7941 for i in (0 .. count) {
7942 property := ?
7943 properties[i] = property
7944 }
7945
7946 return ?
7947}
7948
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007949cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007950 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007951 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007952 VkLayerProperties* pProperties) {
7953 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7954 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007955 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007956
7957 properties := pProperties[0:count]
7958 for i in (0 .. count) {
7959 property := ?
7960 properties[i] = property
7961 }
7962
7963 return ?
7964}
7965
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007966cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007967 VkPhysicalDevice physicalDevice,
7968 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007969 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007970 VkExtensionProperties* pProperties) {
7971 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7972
7973 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007974 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007975
7976 properties := pProperties[0:count]
7977 for i in (0 .. count) {
7978 property := ?
7979 properties[i] = property
7980 }
7981
7982 return ?
7983}
7984
7985
7986// Queue functions
7987
7988@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08007989cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007990 VkDevice device,
7991 u32 queueFamilyIndex,
7992 u32 queueIndex,
7993 VkQueue* pQueue) {
7994 deviceObject := GetDevice(device)
7995
7996 queue := ?
7997 pQueue[0] = queue
7998
7999 if !(queue in State.Queues) {
8000 State.Queues[queue] = new!QueueObject(device: device)
8001 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008002}
8003
8004@threadSafety("app")
8005cmd VkResult vkQueueSubmit(
8006 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08008007 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08008008 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008009 VkFence fence) {
8010 queueObject := GetQueue(queue)
8011
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008012 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008013 fenceObject := GetFence(fence)
8014 assert(fenceObject.device == queueObject.device)
8015 }
8016
Jesse Hall3fbc8562015-11-29 22:10:52 -08008017 // commandBuffers := pcommandBuffers[0:commandBufferCount]
8018 // for i in (0 .. commandBufferCount) {
8019 // commandBuffer := commandBuffers[i]
8020 // commandBufferObject := GetCommandBuffer(commandBuffer)
8021 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08008022 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08008023 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
8024 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08008025 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008026
8027 return ?
8028}
8029
8030@threadSafety("system")
8031cmd VkResult vkQueueWaitIdle(
8032 VkQueue queue) {
8033 queueObject := GetQueue(queue)
8034
8035 return ?
8036}
8037
8038@threadSafety("system")
8039cmd VkResult vkDeviceWaitIdle(
8040 VkDevice device) {
8041 deviceObject := GetDevice(device)
8042
8043 return ?
8044}
8045
8046
8047// Memory functions
8048
8049@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008050cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008051 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008052 const VkMemoryAllocateInfo* pAllocateInfo,
8053 const VkAllocationCallbacks* pAllocator,
8054 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008055 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008056 deviceObject := GetDevice(device)
8057
Jesse Hall3fbc8562015-11-29 22:10:52 -08008058 memory := ?
8059 pMemory[0] = memory
8060 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008061 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008062 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008063
8064 return ?
8065}
8066
8067@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008068cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008069 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008070 VkDeviceMemory memory,
8071 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008072 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008073 memoryObject := GetDeviceMemory(memory)
8074 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008075
8076 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008077 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008078 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008079 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
8080 "vkFreeMemory: commandBuffers still bound")
8081 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008082}
8083
8084@threadSafety("app")
8085cmd VkResult vkMapMemory(
8086 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008087 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008088 VkDeviceSize offset,
8089 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008090 VkMemoryMapFlags flags,
8091 void** ppData) {
8092 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008093 memoryObject := GetDeviceMemory(memory)
8094 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008095
8096 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08008097 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008098
8099 return ?
8100}
8101
8102@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008103cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008104 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008105 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008106 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008107 memoryObject := GetDeviceMemory(memory)
8108 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008109}
8110
8111cmd VkResult vkFlushMappedMemoryRanges(
8112 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008113 u32 memoryRangeCount
8114 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008115 deviceObject := GetDevice(device)
8116
Jesse Hall3fbc8562015-11-29 22:10:52 -08008117 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8118 for i in (0 .. memoryRangeCount) {
8119 memoryRange := memoryRanges[i]
8120 memoryObject := GetDeviceMemory(memoryRange.memory)
8121 assert(memoryObject.device == device)
8122 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008123 }
8124
8125 return ?
8126}
8127
8128cmd VkResult vkInvalidateMappedMemoryRanges(
8129 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008130 u32 memoryRangeCount,
8131 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008132 deviceObject := GetDevice(device)
8133
Jesse Hall3fbc8562015-11-29 22:10:52 -08008134 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8135 for i in (0 .. memoryRangeCount) {
8136 memoryRange := memoryRanges[i]
8137 memoryObject := GetDeviceMemory(memoryRange.memory)
8138 assert(memoryObject.device == device)
8139 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008140 }
8141
8142 return ?
8143}
8144
8145
8146// Memory management API functions
8147
Jesse Hall606a54e2015-11-19 22:17:28 -08008148cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008149 VkDevice device,
8150 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008151 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008152 deviceObject := GetDevice(device)
8153
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008154 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008155 memoryObject := GetDeviceMemory(memory)
8156 assert(memoryObject.device == device)
8157 }
8158
8159 committedMemoryInBytes := ?
8160 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07008161}
8162
Jesse Hall606a54e2015-11-19 22:17:28 -08008163cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008164 VkDevice device,
8165 VkBuffer buffer,
8166 VkMemoryRequirements* pMemoryRequirements) {
8167 deviceObject := GetDevice(device)
8168 bufferObject := GetBuffer(buffer)
8169 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008170}
8171
8172cmd VkResult vkBindBufferMemory(
8173 VkDevice device,
8174 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008175 VkDeviceMemory memory,
8176 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008177 deviceObject := GetDevice(device)
8178 bufferObject := GetBuffer(buffer)
8179 assert(bufferObject.device == device)
8180
8181 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008182 if bufferObject.memory != NULL_HANDLE {
8183 memoryObject := GetDeviceMemory(bufferObject.memory)
8184 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008185 }
8186
8187 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008188 if memory != NULL_HANDLE {
8189 memoryObject := GetDeviceMemory(memory)
8190 assert(memoryObject.device == device)
8191 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008192 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008193 bufferObject.memory = memory
8194 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008195
8196 return ?
8197}
8198
Jesse Hall606a54e2015-11-19 22:17:28 -08008199cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008200 VkDevice device,
8201 VkImage image,
8202 VkMemoryRequirements* pMemoryRequirements) {
8203 deviceObject := GetDevice(device)
8204 imageObject := GetImage(image)
8205 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008206}
8207
8208cmd VkResult vkBindImageMemory(
8209 VkDevice device,
8210 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008211 VkDeviceMemory memory,
8212 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008213 deviceObject := GetDevice(device)
8214 imageObject := GetImage(image)
8215 assert(imageObject.device == device)
8216
8217 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008218 if imageObject.memory != NULL_HANDLE {
8219 memoryObject := GetDeviceMemory(imageObject.memory)
8220 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008221 }
8222
8223 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008224 if memory != NULL_HANDLE {
8225 memoryObject := GetDeviceMemory(memory)
8226 assert(memoryObject.device == device)
8227 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008228 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008229 imageObject.memory = memory
8230 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008231
8232 return ?
8233}
8234
Jesse Hall606a54e2015-11-19 22:17:28 -08008235cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008236 VkDevice device,
8237 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008238 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008239 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
8240 deviceObject := GetDevice(device)
8241 imageObject := GetImage(image)
8242 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008243}
8244
Jesse Hall606a54e2015-11-19 22:17:28 -08008245cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008246 VkPhysicalDevice physicalDevice,
8247 VkFormat format,
8248 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08008249 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008250 VkImageUsageFlags usage,
8251 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008252 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008253 VkSparseImageFormatProperties* pProperties) {
8254 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008255}
8256
Jesse Halla6429252015-11-29 18:59:42 -08008257cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008258 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008259 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08008260 const VkBindSparseInfo* pBindInfo,
8261 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008262 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008263
8264 return ?
8265}
8266
8267
8268// Fence functions
8269
8270@threadSafety("system")
8271cmd VkResult vkCreateFence(
8272 VkDevice device,
8273 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008274 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008275 VkFence* pFence) {
8276 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
8277 deviceObject := GetDevice(device)
8278
8279 fence := ?
8280 pFence[0] = fence
8281 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08008282 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07008283
8284 return ?
8285}
8286
8287@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008288cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008289 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008290 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008291 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008292 deviceObject := GetDevice(device)
8293 fenceObject := GetFence(fence)
8294 assert(fenceObject.device == device)
8295
8296 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008297}
8298
8299@threadSafety("system")
8300cmd VkResult vkResetFences(
8301 VkDevice device,
8302 u32 fenceCount,
8303 const VkFence* pFences) {
8304 deviceObject := GetDevice(device)
8305
8306 fences := pFences[0:fenceCount]
8307 for i in (0 .. fenceCount) {
8308 fence := fences[i]
8309 fenceObject := GetFence(fence)
8310 assert(fenceObject.device == device)
8311 fenceObject.signaled = false
8312 }
8313
8314 return ?
8315}
8316
8317@threadSafety("system")
8318cmd VkResult vkGetFenceStatus(
8319 VkDevice device,
8320 VkFence fence) {
8321 deviceObject := GetDevice(device)
8322 fenceObject := GetFence(fence)
8323 assert(fenceObject.device == device)
8324
8325 return ?
8326}
8327
8328@threadSafety("system")
8329cmd VkResult vkWaitForFences(
8330 VkDevice device,
8331 u32 fenceCount,
8332 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008333 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008334 u64 timeout) { /// timeout in nanoseconds
8335 deviceObject := GetDevice(device)
8336
8337 fences := pFences[0:fenceCount]
8338 for i in (0 .. fenceCount) {
8339 fence := fences[i]
8340 fenceObject := GetFence(fence)
8341 assert(fenceObject.device == device)
8342 }
8343
8344 return ?
8345}
8346
8347
8348// Queue semaphore functions
8349
8350@threadSafety("system")
8351cmd VkResult vkCreateSemaphore(
8352 VkDevice device,
8353 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008354 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008355 VkSemaphore* pSemaphore) {
8356 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
8357 deviceObject := GetDevice(device)
8358
8359 semaphore := ?
8360 pSemaphore[0] = semaphore
8361 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
8362
8363 return ?
8364}
8365
8366@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008367cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008368 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008369 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008370 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008371 deviceObject := GetDevice(device)
8372 semaphoreObject := GetSemaphore(semaphore)
8373 assert(semaphoreObject.device == device)
8374
8375 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008376}
8377
Jesse Halld27f6aa2015-08-15 17:58:48 -07008378
8379// Event functions
8380
8381@threadSafety("system")
8382cmd VkResult vkCreateEvent(
8383 VkDevice device,
8384 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008385 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008386 VkEvent* pEvent) {
8387 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
8388 deviceObject := GetDevice(device)
8389
8390 event := ?
8391 pEvent[0] = event
8392 State.Events[event] = new!EventObject(device: device)
8393
8394 return ?
8395}
8396
8397@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008398cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008399 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008400 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008401 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008402 deviceObject := GetDevice(device)
8403 eventObject := GetEvent(event)
8404 assert(eventObject.device == device)
8405
8406 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008407}
8408
8409@threadSafety("system")
8410cmd VkResult vkGetEventStatus(
8411 VkDevice device,
8412 VkEvent event) {
8413 deviceObject := GetDevice(device)
8414 eventObject := GetEvent(event)
8415 assert(eventObject.device == device)
8416
8417 return ?
8418}
8419
8420@threadSafety("system")
8421cmd VkResult vkSetEvent(
8422 VkDevice device,
8423 VkEvent event) {
8424 deviceObject := GetDevice(device)
8425 eventObject := GetEvent(event)
8426 assert(eventObject.device == device)
8427
8428 return ?
8429}
8430
8431@threadSafety("system")
8432cmd VkResult vkResetEvent(
8433 VkDevice device,
8434 VkEvent event) {
8435 deviceObject := GetDevice(device)
8436 eventObject := GetEvent(event)
8437 assert(eventObject.device == device)
8438
8439 return ?
8440}
8441
8442
8443// Query functions
8444
8445@threadSafety("system")
8446cmd VkResult vkCreateQueryPool(
8447 VkDevice device,
8448 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008449 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008450 VkQueryPool* pQueryPool) {
8451 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
8452 deviceObject := GetDevice(device)
8453
8454 queryPool := ?
8455 pQueryPool[0] = queryPool
8456 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
8457
8458 return ?
8459}
8460
8461@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008462cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008463 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008464 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008465 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008466 deviceObject := GetDevice(device)
8467 queryPoolObject := GetQueryPool(queryPool)
8468 assert(queryPoolObject.device == device)
8469
8470 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008471}
8472
8473@threadSafety("system")
8474cmd VkResult vkGetQueryPoolResults(
8475 VkDevice device,
8476 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008477 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008478 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008479 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008480 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008481 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008482 VkQueryResultFlags flags) {
8483 deviceObject := GetDevice(device)
8484 queryPoolObject := GetQueryPool(queryPool)
8485 assert(queryPoolObject.device == device)
8486
Jesse Halld27f6aa2015-08-15 17:58:48 -07008487 data := pData[0:dataSize]
8488
8489 return ?
8490}
8491
8492// Buffer functions
8493
8494@threadSafety("system")
8495cmd VkResult vkCreateBuffer(
8496 VkDevice device,
8497 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008498 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008499 VkBuffer* pBuffer) {
8500 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
8501 deviceObject := GetDevice(device)
8502
8503 buffer := ?
8504 pBuffer[0] = buffer
8505 State.Buffers[buffer] = new!BufferObject(device: device)
8506
8507 return ?
8508}
8509
8510@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008511cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008512 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008513 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008514 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008515 deviceObject := GetDevice(device)
8516 bufferObject := GetBuffer(buffer)
8517 assert(bufferObject.device == device)
8518
Jesse Hall3fbc8562015-11-29 22:10:52 -08008519 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008520 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008521}
8522
8523
8524// Buffer view functions
8525
8526@threadSafety("system")
8527cmd VkResult vkCreateBufferView(
8528 VkDevice device,
8529 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008530 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008531 VkBufferView* pView) {
8532 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
8533 deviceObject := GetDevice(device)
8534
8535 bufferObject := GetBuffer(pCreateInfo.buffer)
8536 assert(bufferObject.device == device)
8537
8538 view := ?
8539 pView[0] = view
8540 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
8541
8542 return ?
8543}
8544
8545@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008546cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008547 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008548 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008549 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008550 deviceObject := GetDevice(device)
8551 bufferViewObject := GetBufferView(bufferView)
8552 assert(bufferViewObject.device == device)
8553
8554 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008555}
8556
8557
8558// Image functions
8559
8560@threadSafety("system")
8561cmd VkResult vkCreateImage(
8562 VkDevice device,
8563 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008564 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008565 VkImage* pImage) {
8566 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
8567 deviceObject := GetDevice(device)
8568
8569 image := ?
8570 pImage[0] = image
8571 State.Images[image] = new!ImageObject(device: device)
8572
8573 return ?
8574}
8575
8576@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008577cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008578 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008579 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008580 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008581 deviceObject := GetDevice(device)
8582 imageObject := GetImage(image)
8583 assert(imageObject.device == device)
8584
Jesse Hall3fbc8562015-11-29 22:10:52 -08008585 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008586 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008587}
8588
Jesse Hall606a54e2015-11-19 22:17:28 -08008589cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008590 VkDevice device,
8591 VkImage image,
8592 const VkImageSubresource* pSubresource,
8593 VkSubresourceLayout* pLayout) {
8594 deviceObject := GetDevice(device)
8595 imageObject := GetImage(image)
8596 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008597}
8598
8599
8600// Image view functions
8601
8602@threadSafety("system")
8603cmd VkResult vkCreateImageView(
8604 VkDevice device,
8605 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008606 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008607 VkImageView* pView) {
8608 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
8609 deviceObject := GetDevice(device)
8610
8611 imageObject := GetImage(pCreateInfo.image)
8612 assert(imageObject.device == device)
8613
8614 view := ?
8615 pView[0] = view
8616 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
8617
8618 return ?
8619}
8620
8621@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008622cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008623 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008624 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008625 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008626 deviceObject := GetDevice(device)
8627 imageViewObject := GetImageView(imageView)
8628 assert(imageViewObject.device == device)
8629
8630 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008631}
8632
8633
8634// Shader functions
8635
8636cmd VkResult vkCreateShaderModule(
8637 VkDevice device,
8638 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008639 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008640 VkShaderModule* pShaderModule) {
8641 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
8642 deviceObject := GetDevice(device)
8643
8644 shaderModule := ?
8645 pShaderModule[0] = shaderModule
8646 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
8647
8648 return ?
8649}
8650
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008651cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008652 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008653 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008654 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008655 deviceObject := GetDevice(device)
8656 shaderModuleObject := GetShaderModule(shaderModule)
8657 assert(shaderModuleObject.device == device)
8658
8659 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008660}
8661
Jesse Halld27f6aa2015-08-15 17:58:48 -07008662
8663// Pipeline functions
8664
8665cmd VkResult vkCreatePipelineCache(
8666 VkDevice device,
8667 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008668 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008669 VkPipelineCache* pPipelineCache) {
8670 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
8671 deviceObject := GetDevice(device)
8672
8673 pipelineCache := ?
8674 pPipelineCache[0] = pipelineCache
8675 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
8676
8677 return ?
8678}
8679
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008680cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008681 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008682 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008683 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008684 deviceObject := GetDevice(device)
8685 pipelineCacheObject := GetPipelineCache(pipelineCache)
8686 assert(pipelineCacheObject.device == device)
8687
8688 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008689}
8690
Jesse Halld27f6aa2015-08-15 17:58:48 -07008691cmd VkResult vkGetPipelineCacheData(
8692 VkDevice device,
8693 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008694 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008695 void* pData) {
8696 deviceObject := GetDevice(device)
8697 pipelineCacheObject := GetPipelineCache(pipelineCache)
8698 assert(pipelineCacheObject.device == device)
8699
8700 return ?
8701}
8702
8703cmd VkResult vkMergePipelineCaches(
8704 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008705 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008706 u32 srcCacheCount,
8707 const VkPipelineCache* pSrcCaches) {
8708 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008709 dstCacheObject := GetPipelineCache(dstCache)
8710 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008711
8712 srcCaches := pSrcCaches[0:srcCacheCount]
8713 for i in (0 .. srcCacheCount) {
8714 srcCache := srcCaches[i]
8715 srcCacheObject := GetPipelineCache(srcCache)
8716 assert(srcCacheObject.device == device)
8717 }
8718
8719 return ?
8720}
8721
8722cmd VkResult vkCreateGraphicsPipelines(
8723 VkDevice device,
8724 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008725 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008726 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008727 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008728 VkPipeline* pPipelines) {
8729 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008730 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008731 pipelineCacheObject := GetPipelineCache(pipelineCache)
8732 assert(pipelineCacheObject.device == device)
8733 }
8734
Jesse Hall03b6fe12015-11-24 12:44:21 -08008735 createInfos := pCreateInfos[0:createInfoCount]
8736 pipelines := pPipelines[0:createInfoCount]
8737 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008738 pipeline := ?
8739 pipelines[i] = pipeline
8740 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8741 }
8742
8743 return ?
8744}
8745
8746cmd VkResult vkCreateComputePipelines(
8747 VkDevice device,
8748 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008749 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008750 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008751 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008752 VkPipeline* pPipelines) {
8753 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008754 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008755 pipelineCacheObject := GetPipelineCache(pipelineCache)
8756 assert(pipelineCacheObject.device == device)
8757 }
8758
Jesse Hall03b6fe12015-11-24 12:44:21 -08008759 createInfos := pCreateInfos[0:createInfoCount]
8760 pipelines := pPipelines[0:createInfoCount]
8761 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008762 pipeline := ?
8763 pipelines[i] = pipeline
8764 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8765 }
8766
8767 return ?
8768}
8769
8770@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008771cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008772 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008773 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008774 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008775 deviceObject := GetDevice(device)
8776 pipelineObjects := GetPipeline(pipeline)
8777 assert(pipelineObjects.device == device)
8778
8779 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008780}
8781
8782
8783// Pipeline layout functions
8784
8785@threadSafety("system")
8786cmd VkResult vkCreatePipelineLayout(
8787 VkDevice device,
8788 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008789 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008790 VkPipelineLayout* pPipelineLayout) {
8791 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
8792 deviceObject := GetDevice(device)
8793
8794 pipelineLayout := ?
8795 pPipelineLayout[0] = pipelineLayout
8796 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
8797
8798 return ?
8799}
8800
8801@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008802cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008803 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008804 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008805 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008806 deviceObject := GetDevice(device)
8807 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
8808 assert(pipelineLayoutObjects.device == device)
8809
8810 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008811}
8812
8813
8814// Sampler functions
8815
8816@threadSafety("system")
8817cmd VkResult vkCreateSampler(
8818 VkDevice device,
8819 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008820 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008821 VkSampler* pSampler) {
8822 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
8823 deviceObject := GetDevice(device)
8824
8825 sampler := ?
8826 pSampler[0] = sampler
8827 State.Samplers[sampler] = new!SamplerObject(device: device)
8828
8829 return ?
8830}
8831
8832@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008833cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008834 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008835 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008836 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008837 deviceObject := GetDevice(device)
8838 samplerObject := GetSampler(sampler)
8839 assert(samplerObject.device == device)
8840
8841 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008842}
8843
8844
8845// Descriptor set functions
8846
8847@threadSafety("system")
8848cmd VkResult vkCreateDescriptorSetLayout(
8849 VkDevice device,
8850 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008851 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008852 VkDescriptorSetLayout* pSetLayout) {
8853 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
8854 deviceObject := GetDevice(device)
8855
8856 setLayout := ?
8857 pSetLayout[0] = setLayout
8858 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
8859
8860 return ?
8861}
8862
8863@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008864cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008865 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008866 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008867 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008868 deviceObject := GetDevice(device)
8869 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
8870 assert(descriptorSetLayoutObject.device == device)
8871
8872 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008873}
8874
8875@threadSafety("system")
8876cmd VkResult vkCreateDescriptorPool(
8877 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008878 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008879 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008880 VkDescriptorPool* pDescriptorPool) {
8881 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
8882 deviceObject := GetDevice(device)
8883
8884 descriptorPool := ?
8885 pDescriptorPool[0] = descriptorPool
8886 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
8887
8888 return ?
8889}
8890
8891@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008892cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008893 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008894 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008895 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008896 deviceObject := GetDevice(device)
8897 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8898 assert(descriptorPoolObject.device == device)
8899
8900 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008901}
8902
8903@threadSafety("app")
8904cmd VkResult vkResetDescriptorPool(
8905 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08008906 VkDescriptorPool descriptorPool,
8907 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008908 deviceObject := GetDevice(device)
8909 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8910 assert(descriptorPoolObject.device == device)
8911
8912 return ?
8913}
8914
8915@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008916cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008917 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008918 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008919 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008920 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008921 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008922 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008923
Jesse Hall03b6fe12015-11-24 12:44:21 -08008924 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
8925 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008926 setLayout := setLayouts[i]
8927 setLayoutObject := GetDescriptorSetLayout(setLayout)
8928 assert(setLayoutObject.device == device)
8929 }
8930
Jesse Hall03b6fe12015-11-24 12:44:21 -08008931 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
8932 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008933 descriptorSet := ?
8934 descriptorSets[i] = descriptorSet
8935 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
8936 }
8937
8938 return ?
8939}
8940
Jesse Hallf09c6b12015-08-15 19:54:28 -07008941cmd VkResult vkFreeDescriptorSets(
8942 VkDevice device,
8943 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008944 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07008945 const VkDescriptorSet* pDescriptorSets) {
8946 deviceObject := GetDevice(device)
8947 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8948
Jesse Hall03b6fe12015-11-24 12:44:21 -08008949 descriptorSets := pDescriptorSets[0:descriptorSetCount]
8950 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07008951 descriptorSet := descriptorSets[i]
8952 descriptorSetObject := GetDescriptorSet(descriptorSet)
8953 assert(descriptorSetObject.device == device)
8954 State.DescriptorSets[descriptorSet] = null
8955 }
8956
8957 return ?
8958}
8959
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008960cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008961 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08008962 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008963 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08008964 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008965 const VkCopyDescriptorSet* pDescriptorCopies) {
8966 deviceObject := GetDevice(device)
8967
Jesse Hallb00daad2015-11-29 19:46:20 -08008968 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
8969 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008970 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008971 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008972 assert(descriptorWriteObject.device == device)
8973 }
8974
Jesse Hallb00daad2015-11-29 19:46:20 -08008975 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
8976 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008977 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08008978 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008979 assert(descriptorCopyObject.device == device)
8980 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008981}
8982
8983
8984// Framebuffer functions
8985
8986@threadSafety("system")
8987cmd VkResult vkCreateFramebuffer(
8988 VkDevice device,
8989 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008990 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008991 VkFramebuffer* pFramebuffer) {
8992 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
8993 deviceObject := GetDevice(device)
8994
8995 framebuffer := ?
8996 pFramebuffer[0] = framebuffer
8997 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
8998
8999 return ?
9000}
9001
9002@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009003cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009004 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009005 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009006 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009007 deviceObject := GetDevice(device)
9008 framebufferObject := GetFramebuffer(framebuffer)
9009 assert(framebufferObject.device == device)
9010
9011 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009012}
9013
9014
9015// Renderpass functions
9016
9017@threadSafety("system")
9018cmd VkResult vkCreateRenderPass(
9019 VkDevice device,
9020 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009021 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009022 VkRenderPass* pRenderPass) {
9023 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
9024 deviceObject := GetDevice(device)
9025
9026 renderpass := ?
9027 pRenderPass[0] = renderpass
9028 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
9029
9030 return ?
9031}
9032
9033@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009034cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009035 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009036 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009037 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009038 deviceObject := GetDevice(device)
9039 renderPassObject := GetRenderPass(renderPass)
9040 assert(renderPassObject.device == device)
9041
9042 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009043}
9044
Jesse Hall606a54e2015-11-19 22:17:28 -08009045cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009046 VkDevice device,
9047 VkRenderPass renderPass,
9048 VkExtent2D* pGranularity) {
9049 deviceObject := GetDevice(device)
9050 renderPassObject := GetRenderPass(renderPass)
9051
9052 granularity := ?
9053 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07009054}
9055
9056// Command pool functions
9057
9058cmd VkResult vkCreateCommandPool(
9059 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009060 const VkCommandPoolCreateInfo* pCreateInfo,
9061 const VkAllocationCallbacks* pAllocator,
9062 VkCommandPool* pCommandPool) {
9063 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009064 deviceObject := GetDevice(device)
9065
Jesse Hall3fbc8562015-11-29 22:10:52 -08009066 commandPool := ?
9067 pCommandPool[0] = commandPool
9068 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009069
9070 return ?
9071}
9072
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009073cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009074 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009075 VkCommandPool commandPool,
9076 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009077 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009078 commandPoolObject := GetCommandPool(commandPool)
9079 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009080
Jesse Hall3fbc8562015-11-29 22:10:52 -08009081 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009082}
9083
9084cmd VkResult vkResetCommandPool(
9085 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009086 VkCommandPool commandPool,
9087 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009088 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009089 commandPoolObject := GetCommandPool(commandPool)
9090 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009091
9092 return ?
9093}
9094
9095// Command buffer functions
9096
Jesse Hall3fbc8562015-11-29 22:10:52 -08009097macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9098 memoryObject := GetDeviceMemory(memory)
9099 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07009100
Jesse Hall3fbc8562015-11-29 22:10:52 -08009101 commandBufferObject := GetCommandBuffer(commandBuffer)
9102 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07009103}
9104
Jesse Hall3fbc8562015-11-29 22:10:52 -08009105macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9106 memoryObject := GetDeviceMemory(memory)
9107 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009108
Jesse Hall3fbc8562015-11-29 22:10:52 -08009109 commandBufferObject := GetCommandBuffer(commandBuffer)
9110 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009111}
9112
9113@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08009114cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009115 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009116 const VkCommandBufferAllocateInfo* pAllocateInfo,
9117 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009118 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009119
Jesse Hall3dd678a2016-01-08 21:52:01 -08009120 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08009121 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08009122 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009123 commandBuffer := ?
9124 commandBuffers[i] = commandBuffer
9125 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009126 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009127
9128 return ?
9129}
9130
9131@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08009132cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009133 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009134 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009135 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009136 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009137 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009138
Jesse Hall3fbc8562015-11-29 22:10:52 -08009139 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08009140 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009141 commandBufferObject := GetCommandBuffer(commandBuffers[i])
9142 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009143 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08009144 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08009145 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009146}
9147
9148@threadSafety("app")
9149cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009150 VkCommandBuffer commandBuffer,
9151 const VkCommandBufferBeginInfo* pBeginInfo) {
9152 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
9153 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009154
9155 // TODO: iterate over boundObjects and clear memory bindings
9156
9157 return ?
9158}
9159
9160@threadSafety("app")
9161cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009162 VkCommandBuffer commandBuffer) {
9163 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009164
9165 return ?
9166}
9167
9168@threadSafety("app")
9169cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009170 VkCommandBuffer commandBuffer,
9171 VkCommandBufferResetFlags flags) {
9172 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009173
9174 // TODO: iterate over boundObjects and clear memory bindings
9175
9176 return ?
9177}
9178
9179
9180// Command buffer building functions
9181
9182@threadSafety("app")
9183cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009184 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009185 VkPipelineBindPoint pipelineBindPoint,
9186 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009187 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009188 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009189 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009190
Jesse Halld8bade02015-11-24 10:24:18 -08009191 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009192 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9193 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9194 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009195 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009196}
9197
9198@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009199cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009200 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009201 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009202 u32 viewportCount,
9203 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009204 commandBufferObject := GetCommandBuffer(commandBuffer)
9205 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009206}
9207
9208@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009209cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009210 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009211 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009212 u32 scissorCount,
9213 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009214 commandBufferObject := GetCommandBuffer(commandBuffer)
9215 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009216}
9217
9218@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009219cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009220 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009221 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009222 commandBufferObject := GetCommandBuffer(commandBuffer)
9223 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009224}
9225
9226@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009227cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009228 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009229 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009230 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009231 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009232 commandBufferObject := GetCommandBuffer(commandBuffer)
9233 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009234}
Jesse Halld27f6aa2015-08-15 17:58:48 -07009235
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009236@threadSafety("app")
9237cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009238 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009239 // TODO(jessehall): apic only supports 'const' on pointer types. Using
9240 // an annotation as a quick hack to pass this to the template without
9241 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08009242 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009243 commandBufferObject := GetCommandBuffer(commandBuffer)
9244 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009245}
9246
9247@threadSafety("app")
9248cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009249 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009250 f32 minDepthBounds,
9251 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009252 commandBufferObject := GetCommandBuffer(commandBuffer)
9253 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009254}
9255
9256@threadSafety("app")
9257cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009258 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009259 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009260 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009261 commandBufferObject := GetCommandBuffer(commandBuffer)
9262 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009263}
9264
9265@threadSafety("app")
9266cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009267 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009268 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009269 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009270 commandBufferObject := GetCommandBuffer(commandBuffer)
9271 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009272}
9273
9274@threadSafety("app")
9275cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009276 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009277 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009278 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009279 commandBufferObject := GetCommandBuffer(commandBuffer)
9280 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009281}
9282
9283@threadSafety("app")
9284cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009285 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009286 VkPipelineBindPoint pipelineBindPoint,
9287 VkPipelineLayout layout,
9288 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009289 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009290 const VkDescriptorSet* pDescriptorSets,
9291 u32 dynamicOffsetCount,
9292 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009293 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009294
Jesse Hall03b6fe12015-11-24 12:44:21 -08009295 descriptorSets := pDescriptorSets[0:descriptorSetCount]
9296 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009297 descriptorSet := descriptorSets[i]
9298 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009299 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009300 }
9301
9302 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
9303 for i in (0 .. dynamicOffsetCount) {
9304 dynamicOffset := dynamicOffsets[i]
9305 }
9306
Jesse Halld8bade02015-11-24 10:24:18 -08009307 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009308 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9309 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9310 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009311 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009312}
9313
9314@threadSafety("app")
9315cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009316 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009317 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009318 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009319 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009320 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009321 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009322 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009323
Jesse Hall3fbc8562015-11-29 22:10:52 -08009324 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009325
Jesse Hall3fbc8562015-11-29 22:10:52 -08009326 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009327}
9328
9329@threadSafety("app")
9330cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009331 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009332 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009333 u32 bindingCount,
9334 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009335 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009336 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009337
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009338 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07009339 buffers := pBuffers[0:bindingCount]
9340 offsets := pOffsets[0:bindingCount]
9341 for i in (0 .. bindingCount) {
9342 buffer := buffers[i]
9343 offset := offsets[i]
9344 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009345 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009346
Jesse Hall3fbc8562015-11-29 22:10:52 -08009347 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009348 }
9349
Jesse Hall3fbc8562015-11-29 22:10:52 -08009350 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009351}
9352
9353@threadSafety("app")
9354cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009355 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009356 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009357 u32 instanceCount,
9358 u32 firstVertex,
9359 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009360 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009361
Jesse Hall3fbc8562015-11-29 22:10:52 -08009362 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009363}
9364
9365@threadSafety("app")
9366cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009367 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009368 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009369 u32 instanceCount,
9370 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009371 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009372 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009373 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009374
Jesse Hall3fbc8562015-11-29 22:10:52 -08009375 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009376}
9377
9378@threadSafety("app")
9379cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009380 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009381 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009382 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009383 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009384 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009385 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009386 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009387 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009388
Jesse Hall3fbc8562015-11-29 22:10:52 -08009389 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009390
Jesse Hall3fbc8562015-11-29 22:10:52 -08009391 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009392}
9393
9394@threadSafety("app")
9395cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009396 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009397 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009398 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009399 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009400 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009401 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009402 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009403 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009404
Jesse Hall3fbc8562015-11-29 22:10:52 -08009405 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009406
Jesse Hall3fbc8562015-11-29 22:10:52 -08009407 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009408}
9409
9410@threadSafety("app")
9411cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009412 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08009413 u32 groupCountX,
9414 u32 groupCountY,
9415 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009416 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009417
Jesse Hall3fbc8562015-11-29 22:10:52 -08009418 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009419}
9420
9421@threadSafety("app")
9422cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009423 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009424 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009425 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009426 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009427 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009428 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009429
Jesse Hall3fbc8562015-11-29 22:10:52 -08009430 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009431
Jesse Hall3fbc8562015-11-29 22:10:52 -08009432 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009433}
9434
9435@threadSafety("app")
9436cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009437 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009438 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009439 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009440 u32 regionCount,
9441 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009442 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009443 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009444 dstBufferObject := GetBuffer(dstBuffer)
9445 assert(commandBufferObject.device == srcBufferObject.device)
9446 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009447
9448 regions := pRegions[0:regionCount]
9449 for i in (0 .. regionCount) {
9450 region := regions[i]
9451 }
9452
Jesse Hall3fbc8562015-11-29 22:10:52 -08009453 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9454 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009455
Jesse Hall65ab5522015-11-30 00:07:16 -08009456 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009457}
9458
9459@threadSafety("app")
9460cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009461 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009462 VkImage srcImage,
9463 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009464 VkImage dstImage,
9465 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009466 u32 regionCount,
9467 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009468 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009469 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009470 dstImageObject := GetImage(dstImage)
9471 assert(commandBufferObject.device == srcImageObject.device)
9472 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009473
9474 regions := pRegions[0:regionCount]
9475 for i in (0 .. regionCount) {
9476 region := regions[i]
9477 }
9478
Jesse Hall3fbc8562015-11-29 22:10:52 -08009479 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9480 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009481
Jesse Hall65ab5522015-11-30 00:07:16 -08009482 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009483}
9484
9485@threadSafety("app")
9486cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009487 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009488 VkImage srcImage,
9489 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009490 VkImage dstImage,
9491 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009492 u32 regionCount,
9493 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08009494 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009495 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009496 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009497 dstImageObject := GetImage(dstImage)
9498 assert(commandBufferObject.device == srcImageObject.device)
9499 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009500
9501 regions := pRegions[0:regionCount]
9502 for i in (0 .. regionCount) {
9503 region := regions[i]
9504 }
9505
Jesse Hall3fbc8562015-11-29 22:10:52 -08009506 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9507 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009508
Jesse Hall3fbc8562015-11-29 22:10:52 -08009509 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009510}
9511
9512@threadSafety("app")
9513cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009514 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009515 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009516 VkImage dstImage,
9517 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009518 u32 regionCount,
9519 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009520 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009521 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009522 dstImageObject := GetImage(dstImage)
9523 assert(commandBufferObject.device == srcBufferObject.device)
9524 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009525
9526 regions := pRegions[0:regionCount]
9527 for i in (0 .. regionCount) {
9528 region := regions[i]
9529 }
9530
Jesse Hall3fbc8562015-11-29 22:10:52 -08009531 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9532 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009533
Jesse Hall65ab5522015-11-30 00:07:16 -08009534 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009535}
9536
9537@threadSafety("app")
9538cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009539 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009540 VkImage srcImage,
9541 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009542 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009543 u32 regionCount,
9544 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009545 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009546 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009547 dstBufferObject := GetBuffer(dstBuffer)
9548 assert(commandBufferObject.device == srcImageObject.device)
9549 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009550
9551 regions := pRegions[0:regionCount]
9552 for i in (0 .. regionCount) {
9553 region := regions[i]
9554 }
9555
Jesse Hall3fbc8562015-11-29 22:10:52 -08009556 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9557 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009558
Jesse Hall65ab5522015-11-30 00:07:16 -08009559 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009560}
9561
9562@threadSafety("app")
9563cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009564 VkCommandBuffer commandBuffer,
9565 VkBuffer dstBuffer,
9566 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009567 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07009568 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009569 commandBufferObject := GetCommandBuffer(commandBuffer)
9570 dstBufferObject := GetBuffer(dstBuffer)
9571 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009572
9573 data := pData[0:dataSize]
9574
Jesse Hall3fbc8562015-11-29 22:10:52 -08009575 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009576
Jesse Hall65ab5522015-11-30 00:07:16 -08009577 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009578}
9579
9580@threadSafety("app")
9581cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009582 VkCommandBuffer commandBuffer,
9583 VkBuffer dstBuffer,
9584 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08009585 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009586 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009587 commandBufferObject := GetCommandBuffer(commandBuffer)
9588 dstBufferObject := GetBuffer(dstBuffer)
9589 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009590
Jesse Hall65ab5522015-11-30 00:07:16 -08009591 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009592}
9593
9594@threadSafety("app")
9595cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009596 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009597 VkImage image,
9598 VkImageLayout imageLayout,
9599 const VkClearColorValue* pColor,
9600 u32 rangeCount,
9601 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009602 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009603 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009604 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009605
9606 ranges := pRanges[0:rangeCount]
9607 for i in (0 .. rangeCount) {
9608 range := ranges[i]
9609 }
9610
Jesse Hall3fbc8562015-11-29 22:10:52 -08009611 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009612
Jesse Hall3fbc8562015-11-29 22:10:52 -08009613 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009614}
9615
9616@threadSafety("app")
9617cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009618 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009619 VkImage image,
9620 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009621 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009622 u32 rangeCount,
9623 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009624 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009625 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009626 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009627
9628 ranges := pRanges[0:rangeCount]
9629 for i in (0 .. rangeCount) {
9630 range := ranges[i]
9631 }
9632
Jesse Hall3fbc8562015-11-29 22:10:52 -08009633 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009634
Jesse Hall3fbc8562015-11-29 22:10:52 -08009635 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009636}
9637
9638@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08009639cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009640 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08009641 u32 attachmentCount,
9642 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009643 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08009644 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009645 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009646
9647 rects := pRects[0:rectCount]
9648 for i in (0 .. rectCount) {
9649 rect := rects[i]
9650 }
9651
Jesse Hall3fbc8562015-11-29 22:10:52 -08009652 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009653}
9654
9655@threadSafety("app")
9656cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009657 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009658 VkImage srcImage,
9659 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009660 VkImage dstImage,
9661 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009662 u32 regionCount,
9663 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009664 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009665 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009666 dstImageObject := GetImage(dstImage)
9667 assert(commandBufferObject.device == srcImageObject.device)
9668 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009669
9670 regions := pRegions[0:regionCount]
9671 for i in (0 .. regionCount) {
9672 region := regions[i]
9673 }
9674
Jesse Hall3fbc8562015-11-29 22:10:52 -08009675 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9676 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009677
Jesse Hall3fbc8562015-11-29 22:10:52 -08009678 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009679}
9680
9681@threadSafety("app")
9682cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009683 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009684 VkEvent event,
9685 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009686 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009687 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009688 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009689}
9690
9691@threadSafety("app")
9692cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009693 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009694 VkEvent event,
9695 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009696 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009697 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009698 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009699}
9700
9701@threadSafety("app")
9702cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009703 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009704 u32 eventCount,
9705 const VkEvent* pEvents,
9706 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009707 VkPipelineStageFlags dstStageMask,
9708 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009709 const VkMemoryBarrier* pMemoryBarriers,
9710 u32 bufferMemoryBarrierCount,
9711 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9712 u32 imageMemoryBarrierCount,
9713 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009714 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009715
9716 events := pEvents[0:eventCount]
9717 for i in (0 .. eventCount) {
9718 event := events[i]
9719 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009720 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009721 }
9722
Jesse Hall3dd678a2016-01-08 21:52:01 -08009723 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009724 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009725 memoryBarrier := memoryBarriers[i]
9726 }
9727 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9728 for i in (0 .. bufferMemoryBarrierCount) {
9729 bufferMemoryBarrier := bufferMemoryBarriers[i]
9730 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9731 assert(bufferObject.device == commandBufferObject.device)
9732 }
9733 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9734 for i in (0 .. imageMemoryBarrierCount) {
9735 imageMemoryBarrier := imageMemoryBarriers[i]
9736 imageObject := GetImage(imageMemoryBarrier.image)
9737 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009738 }
9739}
9740
9741@threadSafety("app")
9742cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009743 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009744 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009745 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08009746 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009747 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009748 const VkMemoryBarrier* pMemoryBarriers,
9749 u32 bufferMemoryBarrierCount,
9750 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9751 u32 imageMemoryBarrierCount,
9752 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009753 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009754
Jesse Hall3dd678a2016-01-08 21:52:01 -08009755 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009756 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009757 memoryBarrier := memoryBarriers[i]
9758 }
9759 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9760 for i in (0 .. bufferMemoryBarrierCount) {
9761 bufferMemoryBarrier := bufferMemoryBarriers[i]
9762 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9763 assert(bufferObject.device == commandBufferObject.device)
9764 }
9765 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9766 for i in (0 .. imageMemoryBarrierCount) {
9767 imageMemoryBarrier := imageMemoryBarriers[i]
9768 imageObject := GetImage(imageMemoryBarrier.image)
9769 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009770 }
9771}
9772
9773@threadSafety("app")
9774cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009775 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009776 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009777 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009778 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009779 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009780 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009781 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009782}
9783
9784@threadSafety("app")
9785cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009786 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009787 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009788 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009789 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009790 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009791 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009792}
9793
9794@threadSafety("app")
9795cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009796 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009797 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009798 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009799 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009800 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009801 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009802 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009803}
9804
9805@threadSafety("app")
9806cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009807 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08009808 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009809 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009810 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009811 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009812 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009813 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009814}
9815
9816@threadSafety("app")
9817cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009818 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009819 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009820 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009821 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009822 VkBuffer dstBuffer,
9823 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009824 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009825 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009826 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009827 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009828 dstBufferObject := GetBuffer(dstBuffer)
9829 assert(commandBufferObject.device == queryPoolObject.device)
9830 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009831}
9832
9833cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009834 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009835 VkPipelineLayout layout,
9836 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009837 u32 offset,
9838 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009839 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009840 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009841 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009842 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009843}
9844
9845@threadSafety("app")
9846cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009847 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009848 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08009849 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009850 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009851 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
9852 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009853 assert(commandBufferObject.device == renderPassObject.device)
9854 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009855
Jesse Hall3fbc8562015-11-29 22:10:52 -08009856 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009857}
9858
9859cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009860 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08009861 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009862 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009863}
9864
9865@threadSafety("app")
9866cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009867 VkCommandBuffer commandBuffer) {
9868 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009869
Jesse Hall3fbc8562015-11-29 22:10:52 -08009870 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009871}
9872
9873cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009874 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009875 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009876 const VkCommandBuffer* pCommandBuffers) {
9877 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009878
Jesse Hall3dd678a2016-01-08 21:52:01 -08009879 commandBuffers := pCommandBuffers[0:commandBufferCount]
9880 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009881 secondaryCommandBuffer := commandBuffers[i]
9882 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
9883 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009884 }
9885}
9886
Ian Elliott28bd2c32017-10-13 09:21:12 -06009887//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04009888
Ian Elliott28bd2c32017-10-13 09:21:12 -06009889@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009890cmd VkResult vkEnumerateInstanceVersion(
9891 u32* pApiVersion) {
9892 return ?
9893}
9894
Ian Elliott28bd2c32017-10-13 09:21:12 -06009895@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009896cmd VkResult vkBindBufferMemory2(
9897 VkDevice device,
9898 u32 bindInfoCount,
9899 const VkBindBufferMemoryInfo* pBindInfos) {
9900 return ?
9901}
9902
Ian Elliott28bd2c32017-10-13 09:21:12 -06009903@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009904cmd VkResult vkBindImageMemory2(
9905 VkDevice device,
9906 u32 bindInfoCount,
9907 const VkBindImageMemoryInfo* pBindInfos) {
9908 return ?
9909}
9910
Ian Elliott28bd2c32017-10-13 09:21:12 -06009911@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009912cmd void vkGetDeviceGroupPeerMemoryFeatures(
9913 VkDevice device,
9914 u32 heapIndex,
9915 u32 localDeviceIndex,
9916 u32 remoteDeviceIndex,
9917 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
9918}
9919
Ian Elliott28bd2c32017-10-13 09:21:12 -06009920@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009921cmd void vkCmdSetDeviceMask(
9922 VkCommandBuffer commandBuffer,
9923 u32 deviceMask) {
9924}
9925
Ian Elliott28bd2c32017-10-13 09:21:12 -06009926@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009927cmd void vkCmdDispatchBase(
9928 VkCommandBuffer commandBuffer,
9929 u32 baseGroupX,
9930 u32 baseGroupY,
9931 u32 baseGroupZ,
9932 u32 groupCountX,
9933 u32 groupCountY,
9934 u32 groupCountZ) {
9935}
9936
9937@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06009938@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009939cmd VkResult vkEnumeratePhysicalDeviceGroups(
9940 VkInstance instance,
9941 u32* pPhysicalDeviceGroupCount,
9942 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
9943 instanceObject := GetInstance(instance)
9944
9945 physicalDeviceGroupCount := as!u32(?)
9946 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
9947 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
9948
9949 for i in (0 .. physicalDeviceGroupCount) {
9950 physicalDevice := ?
9951 physicalDevices[i] = physicalDevice
9952 if !(physicalDevice in State.PhysicalDevices) {
9953 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
9954 }
9955 }
9956
9957 return ?
9958}
9959
Ian Elliott28bd2c32017-10-13 09:21:12 -06009960@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009961cmd void vkGetImageMemoryRequirements2(
9962 VkDevice device,
9963 const VkImageMemoryRequirementsInfo2* pInfo,
9964 VkMemoryRequirements2* pMemoryRequirements) {
9965}
9966
Ian Elliott28bd2c32017-10-13 09:21:12 -06009967@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009968cmd void vkGetBufferMemoryRequirements2(
9969 VkDevice device,
9970 const VkBufferMemoryRequirementsInfo2* pInfo,
9971 VkMemoryRequirements2* pMemoryRequirements) {
9972}
9973
Ian Elliott28bd2c32017-10-13 09:21:12 -06009974@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009975cmd void vkGetImageSparseMemoryRequirements2(
9976 VkDevice device,
9977 const VkImageSparseMemoryRequirementsInfo2* pInfo,
9978 u32* pSparseMemoryRequirementCount,
9979 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
9980}
9981
Ian Elliott28bd2c32017-10-13 09:21:12 -06009982@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009983cmd void vkGetPhysicalDeviceFeatures2(
9984 VkPhysicalDevice physicalDevice,
9985 VkPhysicalDeviceFeatures2* pFeatures) {
9986}
9987
Ian Elliott28bd2c32017-10-13 09:21:12 -06009988@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009989cmd void vkGetPhysicalDeviceProperties2(
9990 VkPhysicalDevice physicalDevice,
9991 VkPhysicalDeviceProperties2* pProperties) {
9992}
9993
Ian Elliott28bd2c32017-10-13 09:21:12 -06009994@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009995cmd void vkGetPhysicalDeviceFormatProperties2(
9996 VkPhysicalDevice physicalDevice,
9997 VkFormat format,
9998 VkFormatProperties2* pFormatProperties) {
9999}
10000
Ian Elliott28bd2c32017-10-13 09:21:12 -060010001@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010002cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
10003 VkPhysicalDevice physicalDevice,
10004 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
10005 VkImageFormatProperties2* pImageFormatProperties) {
10006 return ?
10007}
10008
Ian Elliott28bd2c32017-10-13 09:21:12 -060010009@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010010cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
10011 VkPhysicalDevice physicalDevice,
10012 u32* pQueueFamilyPropertyCount,
10013 VkQueueFamilyProperties2* pQueueFamilyProperties) {
10014}
10015
Ian Elliott28bd2c32017-10-13 09:21:12 -060010016@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010017cmd void vkGetPhysicalDeviceMemoryProperties2(
10018 VkPhysicalDevice physicalDevice,
10019 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
10020}
10021
Ian Elliott28bd2c32017-10-13 09:21:12 -060010022@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010023cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
10024 VkPhysicalDevice physicalDevice,
10025 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
10026 u32* pPropertyCount,
10027 VkSparseImageFormatProperties2* pProperties) {
10028}
10029
Ian Elliott28bd2c32017-10-13 09:21:12 -060010030@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010031cmd void vkTrimCommandPool(
10032 VkDevice device,
10033 VkCommandPool commandPool,
10034 VkCommandPoolTrimFlags flags) {
10035}
10036
10037
Ian Elliott28bd2c32017-10-13 09:21:12 -060010038@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010039cmd void vkGetDeviceQueue2(
10040 VkDevice device,
10041 const VkDeviceQueueInfo2* pQueueInfo,
10042 VkQueue* pQueue) {
10043 deviceObject := GetDevice(device)
10044
10045 queue := ?
10046 pQueue[0] = queue
10047
10048 if !(queue in State.Queues) {
10049 State.Queues[queue] = new!QueueObject(device: device)
10050 }
10051}
10052
Ian Elliott28bd2c32017-10-13 09:21:12 -060010053@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010054cmd VkResult vkCreateSamplerYcbcrConversion(
10055 VkDevice device,
10056 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
10057 const VkAllocationCallbacks* pAllocator,
10058 VkSamplerYcbcrConversion* pYcbcrConversion) {
10059 return ?
10060}
10061
Ian Elliott28bd2c32017-10-13 09:21:12 -060010062@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010063cmd void vkDestroySamplerYcbcrConversion(
10064 VkDevice device,
10065 VkSamplerYcbcrConversion ycbcrConversion,
10066 const VkAllocationCallbacks* pAllocator) {
10067}
10068
Ian Elliott28bd2c32017-10-13 09:21:12 -060010069@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010070cmd VkResult vkCreateDescriptorUpdateTemplate(
10071 VkDevice device,
10072 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10073 const VkAllocationCallbacks* pAllocator,
10074 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
10075 return ?
10076}
10077
Ian Elliott28bd2c32017-10-13 09:21:12 -060010078@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010079cmd void vkDestroyDescriptorUpdateTemplate(
10080 VkDevice device,
10081 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10082 const VkAllocationCallbacks* pAllocator) {
10083}
10084
Ian Elliott28bd2c32017-10-13 09:21:12 -060010085@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010086cmd void vkUpdateDescriptorSetWithTemplate(
10087 VkDevice device,
10088 VkDescriptorSet descriptorSet,
10089 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10090 const void* pData) {
10091}
10092
Ian Elliott28bd2c32017-10-13 09:21:12 -060010093@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010094cmd void vkGetPhysicalDeviceExternalBufferProperties(
10095 VkPhysicalDevice physicalDevice,
10096 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
10097 VkExternalBufferProperties* pExternalBufferProperties) {
10098}
10099
Ian Elliott28bd2c32017-10-13 09:21:12 -060010100@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010101cmd void vkGetPhysicalDeviceExternalFenceProperties(
10102 VkPhysicalDevice physicalDevice,
10103 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
10104 VkExternalFenceProperties* pExternalFenceProperties) {
10105}
10106
Ian Elliott28bd2c32017-10-13 09:21:12 -060010107@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010108cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
10109 VkPhysicalDevice physicalDevice,
10110 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10111 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
10112}
10113
Ian Elliott28bd2c32017-10-13 09:21:12 -060010114@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010115cmd void vkGetDescriptorSetLayoutSupport(
10116 VkDevice device,
10117 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
10118 VkDescriptorSetLayoutSupport* pSupport) {
10119}
10120
10121
Jesse Hallad250842017-03-10 18:35:38 -080010122@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -080010123cmd void vkDestroySurfaceKHR(
10124 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -080010125 VkSurfaceKHR surface,
10126 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010127 instanceObject := GetInstance(instance)
10128 surfaceObject := GetSurface(surface)
10129 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -080010130
Jesse Hall1356b0d2015-11-23 17:24:58 -080010131 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -080010132}
10133
Jesse Hallad250842017-03-10 18:35:38 -080010134@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -080010135cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010136 VkPhysicalDevice physicalDevice,
10137 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010138 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -080010139 VkBool32* pSupported) {
10140 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010141
10142 return ?
10143}
10144
Jesse Hallad250842017-03-10 18:35:38 -080010145@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010146cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
10147 VkPhysicalDevice physicalDevice,
10148 VkSurfaceKHR surface,
10149 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
10150 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10151
10152 surfaceCapabilities := ?
10153 pSurfaceCapabilities[0] = surfaceCapabilities
10154
10155 return ?
10156}
10157
Jesse Hallad250842017-03-10 18:35:38 -080010158@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010159cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
10160 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010161 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010162 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010163 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010164 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010165
10166 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010167 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010168 surfaceFormats := pSurfaceFormats[0:count]
10169
10170 for i in (0 .. count) {
10171 surfaceFormat := ?
10172 surfaceFormats[i] = surfaceFormat
10173 }
10174
10175 return ?
10176}
10177
Jesse Hallad250842017-03-10 18:35:38 -080010178@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010179cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
10180 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010181 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010182 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010183 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010184 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010185
10186 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010187 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010188 presentModes := pPresentModes[0:count]
10189
10190 for i in (0 .. count) {
10191 presentMode := ?
10192 presentModes[i] = presentMode
10193 }
10194
10195 return ?
10196}
10197
Jesse Hallad250842017-03-10 18:35:38 -080010198@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010199cmd VkResult vkCreateSwapchainKHR(
10200 VkDevice device,
10201 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010202 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -080010203 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010204 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -080010205 deviceObject := GetDevice(device)
10206
10207 swapchain := ?
10208 pSwapchain[0] = swapchain
10209 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
10210
10211 return ?
10212}
10213
Jesse Hallad250842017-03-10 18:35:38 -080010214@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -080010215cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -080010216 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -080010217 VkSwapchainKHR swapchain,
10218 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -080010219 deviceObject := GetDevice(device)
10220 swapchainObject := GetSwapchain(swapchain)
10221 assert(swapchainObject.device == device)
10222
10223 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -080010224}
10225
Jesse Hallad250842017-03-10 18:35:38 -080010226@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010227cmd VkResult vkGetSwapchainImagesKHR(
10228 VkDevice device,
10229 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010230 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -080010231 VkImage* pSwapchainImages) {
10232 deviceObject := GetDevice(device)
10233
10234 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010235 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010236 swapchainImages := pSwapchainImages[0:count]
10237
10238 for i in (0 .. count) {
10239 swapchainImage := ?
10240 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -080010241 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -080010242 }
10243
10244 return ?
10245}
10246
Jesse Hallad250842017-03-10 18:35:38 -080010247@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010248cmd VkResult vkAcquireNextImageKHR(
10249 VkDevice device,
10250 VkSwapchainKHR swapchain,
10251 u64 timeout,
10252 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010253 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -080010254 u32* pImageIndex) {
10255 deviceObject := GetDevice(device)
10256 swapchainObject := GetSwapchain(swapchain)
10257
10258 imageIndex := ?
10259 pImageIndex[0] = imageIndex
10260
10261 return ?
10262}
10263
Jesse Hallad250842017-03-10 18:35:38 -080010264@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010265cmd VkResult vkQueuePresentKHR(
10266 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010267 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -080010268 queueObject := GetQueue(queue)
10269
10270 presentInfo := ?
10271 pPresentInfo[0] = presentInfo
10272
10273 return ?
10274}
10275
Ian Elliott28bd2c32017-10-13 09:21:12 -060010276@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010277@extension("VK_KHR_swapchain") // 2
10278cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
10279 VkDevice device,
10280 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
10281 return ?
10282}
10283
Ian Elliott28bd2c32017-10-13 09:21:12 -060010284@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010285@extension("VK_KHR_swapchain") // 2
10286cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
10287 VkDevice device,
10288 VkSurfaceKHR surface,
10289 VkDeviceGroupPresentModeFlagsKHR* pModes) {
10290 return ?
10291}
10292
Ian Elliott28bd2c32017-10-13 09:21:12 -060010293@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010294@extension("VK_KHR_swapchain") // 2
10295cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
10296 VkPhysicalDevice physicalDevice,
10297 VkSurfaceKHR surface,
10298 u32* pRectCount,
10299 VkRect2D* pRects) {
10300 return ?
10301}
10302
Ian Elliott28bd2c32017-10-13 09:21:12 -060010303@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010304@extension("VK_KHR_swapchain") // 2
10305cmd VkResult vkAcquireNextImage2KHR(
10306 VkDevice device,
10307 const VkAcquireNextImageInfoKHR* pAcquireInfo,
10308 u32* pImageIndex) {
10309 return ?
10310}
10311
Jesse Hallad250842017-03-10 18:35:38 -080010312@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010313cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
10314 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010315 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010316 VkDisplayPropertiesKHR* pProperties) {
10317 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10318 return ?
10319}
10320
Jesse Hallad250842017-03-10 18:35:38 -080010321@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010322cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
10323 VkPhysicalDevice physicalDevice,
10324 u32* pPropertyCount,
10325 VkDisplayPlanePropertiesKHR* pProperties) {
10326 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10327 return ?
10328}
10329
Jesse Hallad250842017-03-10 18:35:38 -080010330@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010331cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
10332 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -080010333 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010334 u32* pDisplayCount,
10335 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -080010336 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10337 return ?
10338}
10339
Jesse Hallad250842017-03-10 18:35:38 -080010340@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010341cmd VkResult vkGetDisplayModePropertiesKHR(
10342 VkPhysicalDevice physicalDevice,
10343 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010344 u32* pPropertyCount,
10345 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010346 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10347 return ?
10348}
10349
Jesse Hallad250842017-03-10 18:35:38 -080010350@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010351cmd VkResult vkCreateDisplayModeKHR(
10352 VkPhysicalDevice physicalDevice,
10353 VkDisplayKHR display,
10354 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010355 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010356 VkDisplayModeKHR* pMode) {
10357 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10358 return ?
10359}
10360
Jesse Hallad250842017-03-10 18:35:38 -080010361@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010362cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010363 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010364 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010365 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -080010366 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010367 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10368 return ?
10369}
10370
Jesse Hallad250842017-03-10 18:35:38 -080010371@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010372cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
10373 VkInstance instance,
10374 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010375 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -080010376 VkSurfaceKHR* pSurface) {
10377 return ?
10378}
10379
Jesse Hallad250842017-03-10 18:35:38 -080010380@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010381cmd VkResult vkCreateSharedSwapchainsKHR(
10382 VkDevice device,
10383 u32 swapchainCount,
10384 const VkSwapchainCreateInfoKHR* pCreateInfos,
10385 const VkAllocationCallbacks* pAllocator,
10386 VkSwapchainKHR* pSwapchains) {
10387 return ?
10388}
10389
Jesse Hallad250842017-03-10 18:35:38 -080010390@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010391cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010392 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010393 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010394 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010395 VkSurfaceKHR* pSurface) {
10396 instanceObject := GetInstance(instance)
10397 return ?
10398}
10399
Jesse Hallad250842017-03-10 18:35:38 -080010400@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010401cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
10402 VkPhysicalDevice physicalDevice,
10403 u32 queueFamilyIndex,
10404 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -080010405 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -080010406 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10407 return ?
10408}
10409
Jesse Hallad250842017-03-10 18:35:38 -080010410@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010411cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010412 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010413 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010414 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010415 VkSurfaceKHR* pSurface) {
10416 instanceObject := GetInstance(instance)
10417 return ?
10418}
10419
Jesse Hallad250842017-03-10 18:35:38 -080010420@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -080010421cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
10422 VkPhysicalDevice physicalDevice,
10423 u32 queueFamilyIndex,
10424 platform.xcb_connection_t* connection,
10425 platform.xcb_visualid_t visual_id) {
10426 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10427 return ?
10428}
10429
Jesse Hallad250842017-03-10 18:35:38 -080010430@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -080010431cmd VkResult vkCreateWaylandSurfaceKHR(
10432 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010433 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010434 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010435 VkSurfaceKHR* pSurface) {
10436 instanceObject := GetInstance(instance)
10437 return ?
10438}
10439
Jesse Hallad250842017-03-10 18:35:38 -080010440@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -080010441cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
10442 VkPhysicalDevice physicalDevice,
10443 u32 queueFamilyIndex,
10444 platform.wl_display* display) {
10445 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10446 return ?
10447}
10448
Jesse Hallad250842017-03-10 18:35:38 -080010449@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -080010450cmd VkResult vkCreateAndroidSurfaceKHR(
10451 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010452 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010453 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010454 VkSurfaceKHR* pSurface) {
10455 instanceObject := GetInstance(instance)
10456 return ?
10457}
10458
Jesse Hallad250842017-03-10 18:35:38 -080010459@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -080010460cmd VkResult vkCreateWin32SurfaceKHR(
10461 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010462 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010463 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010464 VkSurfaceKHR* pSurface) {
10465 instanceObject := GetInstance(instance)
10466 return ?
10467}
10468
Jesse Hallad250842017-03-10 18:35:38 -080010469@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -080010470cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
10471 VkPhysicalDevice physicalDevice,
10472 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -080010473 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -080010474 return ?
10475}
10476
Jesse Hallad250842017-03-10 18:35:38 -080010477@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010478@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +080010479cmd VkResult vkGetSwapchainGrallocUsageANDROID(
10480 VkDevice device,
10481 VkFormat format,
10482 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010483 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +080010484 return ?
10485}
10486
Jesse Hallad250842017-03-10 18:35:38 -080010487@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010488@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +130010489cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
10490 VkDevice device,
10491 VkFormat format,
10492 VkImageUsageFlags imageUsage,
10493 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010494 u64* grallocConsumerUsage,
10495 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +130010496 return ?
10497}
10498
Jesse Hallad250842017-03-10 18:35:38 -080010499@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010500cmd VkResult vkAcquireImageANDROID(
10501 VkDevice device,
10502 VkImage image,
10503 int nativeFenceFd,
10504 VkSemaphore semaphore,
10505 VkFence fence) {
10506 return ?
10507}
10508
Jesse Hallad250842017-03-10 18:35:38 -080010509@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010510cmd VkResult vkQueueSignalReleaseImageANDROID(
10511 VkQueue queue,
10512 u32 waitSemaphoreCount,
10513 const VkSemaphore* pWaitSemaphores,
10514 VkImage image,
10515 int* pNativeFenceFd) {
10516 return ?
10517}
10518
Jesse Hallad250842017-03-10 18:35:38 -080010519@extension("VK_EXT_debug_report") // 12
10520@external type void* PFN_vkDebugReportCallbackEXT
10521@extension("VK_EXT_debug_report") // 12
10522@pfn cmd VkBool32 vkDebugReportCallbackEXT(
10523 VkDebugReportFlagsEXT flags,
10524 VkDebugReportObjectTypeEXT objectType,
10525 u64 object,
10526 platform.size_t location,
10527 s32 messageCode,
10528 const char* pLayerPrefix,
10529 const char* pMessage,
10530 void* pUserData) {
10531 return ?
10532}
10533
10534@extension("VK_EXT_debug_report") // 12
10535cmd VkResult vkCreateDebugReportCallbackEXT(
10536 VkInstance instance,
10537 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
10538 const VkAllocationCallbacks* pAllocator,
10539 VkDebugReportCallbackEXT* pCallback) {
10540 return ?
10541}
10542
10543@extension("VK_EXT_debug_report") // 12
10544cmd void vkDestroyDebugReportCallbackEXT(
10545 VkInstance instance,
10546 VkDebugReportCallbackEXT callback,
10547 const VkAllocationCallbacks* pAllocator) {
10548}
10549
10550@extension("VK_EXT_debug_report") // 12
10551cmd void vkDebugReportMessageEXT(
10552 VkInstance instance,
10553 VkDebugReportFlagsEXT flags,
10554 VkDebugReportObjectTypeEXT objectType,
10555 u64 object,
10556 platform.size_t location,
10557 s32 messageCode,
10558 const char* pLayerPrefix,
10559 const char* pMessage) {
10560}
10561
10562@extension("VK_EXT_debug_marker") // 23
10563cmd VkResult vkDebugMarkerSetObjectTagEXT(
10564 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010565 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010566 return ?
10567}
10568
10569@extension("VK_EXT_debug_marker") // 23
10570cmd VkResult vkDebugMarkerSetObjectNameEXT(
10571 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010572 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010573 return ?
10574}
10575
10576@extension("VK_EXT_debug_marker") // 23
10577cmd void vkCmdDebugMarkerBeginEXT(
10578 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010579 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010580}
10581
10582@extension("VK_EXT_debug_marker") // 23
10583cmd void vkCmdDebugMarkerEndEXT(
10584 VkCommandBuffer commandBuffer) {
10585}
10586
10587@extension("VK_EXT_debug_marker") // 23
10588cmd void vkCmdDebugMarkerInsertEXT(
10589 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010590 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010591}
10592
Jesse Hallf47e8f82018-10-27 23:41:45 -070010593@extension("VK_EXT_transform_feedback") // 29
10594cmd void vkCmdBindTransformFeedbackBuffersEXT(
10595 VkCommandBuffer commandBuffer,
10596 u32 firstBinding,
10597 u32 bindingCount,
10598 const VkBuffer* pBuffers,
10599 const VkDeviceSize* pOffsets,
10600 const VkDeviceSize* pSizes) {
10601}
10602
10603@extension("VK_EXT_transform_feedback") // 29
10604cmd void vkCmdBeginTransformFeedbackEXT(
10605 VkCommandBuffer commandBuffer,
10606 u32 firstCounterBuffer,
10607 u32 counterBufferCount,
10608 const VkBuffer* pCounterBuffers,
10609 const VkDeviceSize* pCounterBufferOffsets) {
10610}
10611
10612@extension("VK_EXT_transform_feedback") // 29
10613cmd void vkCmdEndTransformFeedbackEXT(
10614 VkCommandBuffer commandBuffer,
10615 u32 firstCounterBuffer,
10616 u32 counterBufferCount,
10617 const VkBuffer* pCounterBuffers,
10618 const VkDeviceSize* pCounterBufferOffsets) {
10619}
10620
10621@extension("VK_EXT_transform_feedback") // 29
10622cmd void vkCmdBeginQueryIndexedEXT(
10623 VkCommandBuffer commandBuffer,
10624 VkQueryPool queryPool,
10625 u32 query,
10626 VkQueryControlFlags flags,
10627 u32 index) {
10628}
10629
10630@extension("VK_EXT_transform_feedback") // 29
10631cmd void vkCmdEndQueryIndexedEXT(
10632 VkCommandBuffer commandBuffer,
10633 VkQueryPool queryPool,
10634 u32 query,
10635 u32 index) {
10636}
10637
10638@extension("VK_EXT_transform_feedback") // 29
10639cmd void vkCmdDrawIndirectByteCountEXT(
10640 VkCommandBuffer commandBuffer,
10641 u32 instanceCount,
10642 u32 firstInstance,
10643 VkBuffer counterBuffer,
10644 VkDeviceSize counterBufferOffset,
10645 u32 counterOffset,
10646 u32 vertexStride) {
10647}
10648
Jesse Hallad250842017-03-10 18:35:38 -080010649@extension("VK_AMD_draw_indirect_count") // 34
10650cmd void vkCmdDrawIndirectCountAMD(
10651 VkCommandBuffer commandBuffer,
10652 VkBuffer buffer,
10653 VkDeviceSize offset,
10654 VkBuffer countBuffer,
10655 VkDeviceSize countBufferOffset,
10656 u32 maxDrawCount,
10657 u32 stride) {
10658}
10659
10660@extension("VK_AMD_draw_indirect_count") // 34
10661cmd void vkCmdDrawIndexedIndirectCountAMD(
10662 VkCommandBuffer commandBuffer,
10663 VkBuffer buffer,
10664 VkDeviceSize offset,
10665 VkBuffer countBuffer,
10666 VkDeviceSize countBufferOffset,
10667 u32 maxDrawCount,
10668 u32 stride) {
10669}
10670
Jesse Hall8c954d32018-01-17 22:06:20 -080010671@extension("VK_AMD_shader_info") // 43
10672cmd VkResult vkGetShaderInfoAMD(
10673 VkDevice device,
10674 VkPipeline pipeline,
10675 VkShaderStageFlagBits shaderStage,
10676 VkShaderInfoTypeAMD infoType,
10677 platform.size_t* pInfoSize,
10678 void* pInfo) {
10679 return ?
10680}
10681
Jesse Hallad250842017-03-10 18:35:38 -080010682@extension("VK_NV_external_memory_capabilities") // 56
10683cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
10684 VkPhysicalDevice physicalDevice,
10685 VkFormat format,
10686 VkImageType type,
10687 VkImageTiling tiling,
10688 VkImageUsageFlags usage,
10689 VkImageCreateFlags flags,
10690 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
10691 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
10692 return ?
10693}
10694
10695@extension("VK_NV_external_memory_win32") // 58
10696cmd VkResult vkGetMemoryWin32HandleNV(
10697 VkDevice device,
10698 VkDeviceMemory memory,
10699 VkExternalMemoryHandleTypeFlagsNV handleType,
10700 platform.HANDLE* pHandle) {
10701 return ?
10702}
10703
10704@extension("VK_KHR_get_physical_device_properties2") // 60
10705cmd void vkGetPhysicalDeviceFeatures2KHR(
10706 VkPhysicalDevice physicalDevice,
10707 VkPhysicalDeviceFeatures2KHR* pFeatures) {
10708}
10709
10710@extension("VK_KHR_get_physical_device_properties2") // 60
10711cmd void vkGetPhysicalDeviceProperties2KHR(
10712 VkPhysicalDevice physicalDevice,
10713 VkPhysicalDeviceProperties2KHR* pProperties) {
10714}
10715
10716@extension("VK_KHR_get_physical_device_properties2") // 60
10717cmd void vkGetPhysicalDeviceFormatProperties2KHR(
10718 VkPhysicalDevice physicalDevice,
10719 VkFormat format,
10720 VkFormatProperties2KHR* pFormatProperties) {
10721}
10722
10723@extension("VK_KHR_get_physical_device_properties2") // 60
10724cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
10725 VkPhysicalDevice physicalDevice,
10726 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
10727 VkImageFormatProperties2KHR* pImageFormatProperties) {
10728 return ?
10729}
10730
10731@extension("VK_KHR_get_physical_device_properties2") // 60
10732cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10733 VkPhysicalDevice physicalDevice,
10734 u32* pQueueFamilyPropertyCount,
10735 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
10736}
10737
10738@extension("VK_KHR_get_physical_device_properties2") // 60
10739cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
10740 VkPhysicalDevice physicalDevice,
10741 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
10742}
10743
10744@extension("VK_KHR_get_physical_device_properties2") // 60
10745cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10746 VkPhysicalDevice physicalDevice,
10747 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
10748 u32* pPropertyCount,
10749 VkSparseImageFormatProperties2KHR* pProperties) {
10750}
10751
Daniel Koch09f7bf92017-10-05 00:26:58 -040010752@extension("VK_KHR_device_group") // 61
10753cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010754 VkDevice device,
10755 u32 heapIndex,
10756 u32 localDeviceIndex,
10757 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010758 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -080010759}
10760
Daniel Koch09f7bf92017-10-05 00:26:58 -040010761@extension("VK_KHR_device_group") // 61
10762cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010763 VkCommandBuffer commandBuffer,
10764 u32 deviceMask) {
10765}
10766
Jesse Hallad250842017-03-10 18:35:38 -080010767
Daniel Koch09f7bf92017-10-05 00:26:58 -040010768@extension("VK_KHR_device_group") // 61
10769cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010770 VkCommandBuffer commandBuffer,
10771 u32 baseGroupX,
10772 u32 baseGroupY,
10773 u32 baseGroupZ,
10774 u32 groupCountX,
10775 u32 groupCountY,
10776 u32 groupCountZ) {
10777}
10778
Jesse Hallad250842017-03-10 18:35:38 -080010779@extension("VK_NN_vi_surface") // 63
10780cmd VkResult vkCreateViSurfaceNN(
10781 VkInstance instance,
10782 const VkViSurfaceCreateInfoNN* pCreateInfo,
10783 const VkAllocationCallbacks* pAllocator,
10784 VkSurfaceKHR* pSurface) {
10785 return ?
10786}
10787
10788@extension("VK_KHR_maintenance1") // 70
10789cmd void vkTrimCommandPoolKHR(
10790 VkDevice device,
10791 VkCommandPool commandPool,
10792 VkCommandPoolTrimFlagsKHR flags) {
10793}
10794
Daniel Koch09f7bf92017-10-05 00:26:58 -040010795@extension("VK_KHR_device_group_creation") // 71
10796@threadSafety("system")
10797cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010798 VkInstance instance,
10799 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010800 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
10801 instanceObject := GetInstance(instance)
10802
10803 physicalDeviceGroupCount := as!u32(?)
10804 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
10805 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
10806
10807 for i in (0 .. physicalDeviceGroupCount) {
10808 physicalDevice := ?
10809 physicalDevices[i] = physicalDevice
10810 if !(physicalDevice in State.PhysicalDevices) {
10811 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
10812 }
10813 }
10814
Jesse Hallad250842017-03-10 18:35:38 -080010815 return ?
10816}
10817
Jesse Hall9492f992017-08-28 12:10:06 -070010818@extension("VK_KHR_external_memory_capabilities") // 72
10819cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010820 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010821 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
10822 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010823}
10824
Jesse Hall9492f992017-08-28 12:10:06 -070010825@extension("VK_KHR_external_memory_win32") // 74
10826cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010827 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010828 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010829 platform.HANDLE* pHandle) {
10830 return ?
10831}
10832
Jesse Hall9492f992017-08-28 12:10:06 -070010833@extension("VK_KHR_external_memory_win32") // 74
10834cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010835 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010836 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010837 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -070010838 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010839 return ?
10840}
10841
Jesse Hall9492f992017-08-28 12:10:06 -070010842@extension("VK_KHR_external_memory_fd") // 75
10843cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010844 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010845 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010846 s32* pFd) {
10847 return ?
10848}
10849
Jesse Hall9492f992017-08-28 12:10:06 -070010850@extension("VK_KHR_external_memory_fd") // 75
10851cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010852 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010853 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010854 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -070010855 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010856 return ?
10857}
10858
Jesse Hall9492f992017-08-28 12:10:06 -070010859@extension("VK_KHR_external_semaphore_capabilities") // 77
10860cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010861 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010862 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
10863 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010864}
10865
Jesse Hall9492f992017-08-28 12:10:06 -070010866@extension("VK_KHR_external_semaphore_win32") // 79
10867cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010868 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010869 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010870 return ?
10871}
10872
Jesse Hall9492f992017-08-28 12:10:06 -070010873@extension("VK_KHR_external_semaphore_win32") // 79
10874cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010875 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010876 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010877 platform.HANDLE* pHandle) {
10878 return ?
10879}
10880
Jesse Hall9492f992017-08-28 12:10:06 -070010881@extension("VK_KHR_external_semaphore_fd") // 80
10882cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010883 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010884 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010885 return ?
10886}
10887
Jesse Hall9492f992017-08-28 12:10:06 -070010888@extension("VK_KHR_external_semaphore_fd") // 80
10889cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010890 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010891 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010892 s32* pFd) {
10893 return ?
10894}
10895
10896@extension("VK_KHR_push_descriptor") // 81
10897cmd void vkCmdPushDescriptorSetKHR(
10898 VkCommandBuffer commandBuffer,
10899 VkPipelineBindPoint pipelineBindPoint,
10900 VkPipelineLayout layout,
10901 u32 set,
10902 u32 descriptorWriteCount,
10903 const VkWriteDescriptorSet* pDescriptorWrites) {
10904}
10905
Jesse Halla13a3cf2018-07-09 15:51:52 -070010906@extension("VK_EXT_conditional_rendering") // 82
10907cmd void vkCmdBeginConditionalRenderingEXT(
10908 VkCommandBuffer commandBuffer,
10909 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
10910}
10911
10912@extension("VK_EXT_conditional_rendering") // 82
10913cmd void vkCmdEndConditionalRenderingEXT(
10914 VkCommandBuffer commandBuffer) {
10915}
10916
Jesse Hallad250842017-03-10 18:35:38 -080010917@extension("VK_KHR_descriptor_update_template") // 86
10918cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
10919 VkDevice device,
10920 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
10921 const VkAllocationCallbacks* pAllocator,
10922 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
10923 return ?
10924}
10925
10926@extension("VK_KHR_descriptor_update_template") // 86
10927cmd void vkDestroyDescriptorUpdateTemplateKHR(
10928 VkDevice device,
10929 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10930 const VkAllocationCallbacks* pAllocator) {
10931}
10932
10933@extension("VK_KHR_descriptor_update_template") // 86
10934cmd void vkUpdateDescriptorSetWithTemplateKHR(
10935 VkDevice device,
10936 VkDescriptorSet descriptorSet,
10937 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10938 const void* pData) {
10939}
10940
10941@extension("VK_KHR_descriptor_update_template") // 86
10942cmd void vkCmdPushDescriptorSetWithTemplateKHR(
10943 VkCommandBuffer commandBuffer,
10944 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10945 VkPipelineLayout layout,
10946 u32 set,
10947 const void* pData) {
10948}
10949
10950@extension("VK_NVX_device_generated_commands") // 87
10951cmd void vkCmdProcessCommandsNVX(
10952 VkCommandBuffer commandBuffer,
10953 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
10954}
10955
10956@extension("VK_NVX_device_generated_commands") // 87
10957cmd void vkCmdReserveSpaceForCommandsNVX(
10958 VkCommandBuffer commandBuffer,
10959 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
10960}
10961
10962@extension("VK_NVX_device_generated_commands") // 87
10963cmd VkResult vkCreateIndirectCommandsLayoutNVX(
10964 VkDevice device,
10965 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
10966 const VkAllocationCallbacks* pAllocator,
10967 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
10968 return ?
10969}
10970
10971@extension("VK_NVX_device_generated_commands") // 87
10972cmd void vkDestroyIndirectCommandsLayoutNVX(
10973 VkDevice device,
10974 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
10975 const VkAllocationCallbacks* pAllocator) {
10976}
10977
10978@extension("VK_NVX_device_generated_commands") // 87
10979cmd VkResult vkCreateObjectTableNVX(
10980 VkDevice device,
10981 const VkObjectTableCreateInfoNVX* pCreateInfo,
10982 const VkAllocationCallbacks* pAllocator,
10983 VkObjectTableNVX* pObjectTable) {
10984 return ?
10985}
10986
10987@extension("VK_NVX_device_generated_commands") // 87
10988cmd void vkDestroyObjectTableNVX(
10989 VkDevice device,
10990 VkObjectTableNVX objectTable,
10991 const VkAllocationCallbacks* pAllocator) {
10992}
10993
10994@extension("VK_NVX_device_generated_commands") // 87
10995cmd VkResult vkRegisterObjectsNVX(
10996 VkDevice device,
10997 VkObjectTableNVX objectTable,
10998 u32 objectCount,
10999 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
11000 const u32* pObjectIndices) {
11001 return ?
11002}
11003
11004@extension("VK_NVX_device_generated_commands") // 87
11005cmd VkResult vkUnregisterObjectsNVX(
11006 VkDevice device,
11007 VkObjectTableNVX objectTable,
11008 u32 objectCount,
11009 const VkObjectEntryTypeNVX* pObjectEntryTypes,
11010 const u32* pObjectIndices) {
11011 return ?
11012}
11013
11014@extension("VK_NVX_device_generated_commands") // 87
11015cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
11016 VkPhysicalDevice physicalDevice,
11017 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
11018 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
11019}
11020
11021@extension("VK_NV_clip_space_w_scaling") // 88
11022cmd void vkCmdSetViewportWScalingNV(
11023 VkCommandBuffer commandBuffer,
11024 u32 firstViewport,
11025 u32 viewportCount,
11026 const VkViewportWScalingNV* pViewportWScalings) {
11027}
11028
11029@extension("VK_EXT_direct_mode_display") // 89
11030cmd VkResult vkReleaseDisplayEXT(
11031 VkPhysicalDevice physicalDevice,
11032 VkDisplayKHR display) {
11033 return ?
11034}
11035
11036@extension("VK_EXT_acquire_xlib_display") // 90
11037cmd VkResult vkAcquireXlibDisplayEXT(
11038 VkPhysicalDevice physicalDevice,
11039 platform.Display* dpy,
11040 VkDisplayKHR display) {
11041 return ?
11042}
11043
11044@extension("VK_EXT_acquire_xlib_display") // 90
11045cmd VkResult vkGetRandROutputDisplayEXT(
11046 VkPhysicalDevice physicalDevice,
11047 platform.Display* dpy,
11048 platform.RROutput rrOutput,
11049 VkDisplayKHR* pDisplay) {
11050 return ?
11051}
11052
11053@extension("VK_EXT_display_surface_counter") // 91
11054cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
11055 VkPhysicalDevice physicalDevice,
11056 VkSurfaceKHR surface,
11057 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
11058 return ?
11059}
11060
11061@extension("VK_EXT_display_control") // 92
11062cmd VkResult vkDisplayPowerControlEXT(
11063 VkDevice device,
11064 VkDisplayKHR display,
11065 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
11066 return ?
11067}
11068
11069@extension("VK_EXT_display_control") // 92
11070cmd VkResult vkRegisterDeviceEventEXT(
11071 VkDevice device,
11072 const VkDeviceEventInfoEXT* pDeviceEventInfo,
11073 const VkAllocationCallbacks* pAllocator,
11074 VkFence* pFence) {
11075 return ?
11076}
11077
11078@extension("VK_EXT_display_control") // 92
11079cmd VkResult vkRegisterDisplayEventEXT(
11080 VkDevice device,
11081 VkDisplayKHR display,
11082 const VkDisplayEventInfoEXT* pDisplayEventInfo,
11083 const VkAllocationCallbacks* pAllocator,
11084 VkFence* pFence) {
11085 return ?
11086}
11087
11088@extension("VK_EXT_display_control") // 92
11089cmd VkResult vkGetSwapchainCounterEXT(
11090 VkDevice device,
11091 VkSwapchainKHR swapchain,
11092 VkSurfaceCounterFlagBitsEXT counter,
11093 u64* pCounterValue) {
11094 return ?
11095}
11096
11097@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011098cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011099 VkDevice device,
11100 VkSwapchainKHR swapchain,
11101 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011102 deviceObject := GetDevice(device)
11103 swapchainObject := GetSwapchain(swapchain)
11104
11105 displayTimingProperties := ?
11106 pDisplayTimingProperties[0] = displayTimingProperties
11107
11108 return ?
11109}
11110
Jesse Hallad250842017-03-10 18:35:38 -080011111@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011112cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011113 VkDevice device,
11114 VkSwapchainKHR swapchain,
11115 u32* pPresentationTimingCount,
11116 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011117 return ?
11118}
11119
Jesse Hallad250842017-03-10 18:35:38 -080011120@extension("VK_EXT_discard_rectangles") // 100
11121cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070011122 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080011123 u32 firstDiscardRectangle,
11124 u32 discardRectangleCount,
11125 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070011126}
11127
Jesse Hallad250842017-03-10 18:35:38 -080011128@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080011129cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011130 VkDevice device,
11131 u32 swapchainCount,
11132 const VkSwapchainKHR* pSwapchains,
11133 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080011134}
11135
Jesse Halla13a3cf2018-07-09 15:51:52 -070011136@extension("VK_KHR_create_renderpass2") // 110
11137cmd VkResult vkCreateRenderPass2KHR(
11138 VkDevice device,
11139 const VkRenderPassCreateInfo2KHR* pCreateInfo,
11140 const VkAllocationCallbacks* pAllocator,
11141 VkRenderPass* pRenderPass) {
11142 return ?
11143}
11144
11145@extension("VK_KHR_create_renderpass2") // 110
11146cmd void vkCmdBeginRenderPass2KHR(
11147 VkCommandBuffer commandBuffer,
11148 const VkRenderPassBeginInfo* pRenderPassBegin,
11149 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
11150}
11151
11152@extension("VK_KHR_create_renderpass2") // 110
11153cmd void vkCmdNextSubpass2KHR(
11154 VkCommandBuffer commandBuffer,
11155 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
11156 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11157}
11158
11159@extension("VK_KHR_create_renderpass2") // 110
11160cmd void vkCmdEndRenderPass2KHR(
11161 VkCommandBuffer commandBuffer,
11162 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11163}
11164
Jesse Hallad250842017-03-10 18:35:38 -080011165@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130011166cmd VkResult vkGetSwapchainStatusKHR(
11167 VkDevice device,
11168 VkSwapchainKHR swapchain) {
11169 return ?
11170}
11171
Jesse Hall9492f992017-08-28 12:10:06 -070011172@extension("VK_KHR_external_fence_capabilities") // 113
11173cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
11174 VkPhysicalDevice physicalDevice,
11175 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
11176 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
11177}
11178
11179@extension("VK_KHR_external_fence_win32") // 115
11180cmd VkResult vkImportFenceWin32HandleKHR(
11181 VkDevice device,
11182 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
11183 return ?
11184}
11185
11186@extension("VK_KHR_external_fence_win32") // 115
11187cmd VkResult vkGetFenceWin32HandleKHR(
11188 VkDevice device,
11189 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
11190 platform.HANDLE* pHandle) {
11191 return ?
11192}
11193
11194@extension("VK_KHR_external_fence_fd") // 116
11195cmd VkResult vkImportFenceFdKHR(
11196 VkDevice device,
11197 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
11198 return ?
11199}
11200
11201@extension("VK_KHR_external_fence_fd") // 116
11202cmd VkResult vkGetFenceFdKHR(
11203 VkDevice device,
11204 const VkFenceGetFdInfoKHR* pGetFdInfo,
11205 int* pFd) {
11206 return ?
11207}
11208
Jesse Hall05556b12017-05-18 17:40:25 -070011209@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011210cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
11211 VkPhysicalDevice physicalDevice,
11212 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11213 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
11214 return ?
11215}
11216
Jesse Hall05556b12017-05-18 17:40:25 -070011217@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011218cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
11219 VkPhysicalDevice physicalDevice,
11220 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11221 u32* pSurfaceFormatCount,
11222 VkSurfaceFormat2KHR* pSurfaceFormats) {
11223 return ?
11224}
11225
Jesse Hall54f8d132018-04-18 08:16:59 -070011226@extension("VK_KHR_display_properties2") // 122
11227cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
11228 VkPhysicalDevice physicalDevice,
11229 u32* pPropertyCount,
11230 VkDisplayProperties2KHR* pProperties) {
11231 return ?
11232}
11233
11234@extension("VK_KHR_display_properties2") // 122
11235cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
11236 VkPhysicalDevice physicalDevice,
11237 u32* pPropertyCount,
11238 VkDisplayPlaneProperties2KHR* pProperties) {
11239 return ?
11240}
11241
11242@extension("VK_KHR_display_properties2") // 122
11243cmd VkResult vkGetDisplayModeProperties2KHR(
11244 VkPhysicalDevice physicalDevice,
11245 VkDisplayKHR display,
11246 u32* pPropertyCount,
11247 VkDisplayModeProperties2KHR* pProperties) {
11248 return ?
11249}
11250
11251@extension("VK_KHR_display_properties2") // 122
11252cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
11253 VkPhysicalDevice physicalDevice,
11254 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
11255 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
11256 return ?
11257}
11258
Jesse Hallad250842017-03-10 18:35:38 -080011259@extension("VK_MVK_ios_surface") // 123
11260cmd VkResult vkCreateIOSSurfaceMVK(
11261 VkInstance instance,
11262 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
11263 const VkAllocationCallbacks* pAllocator,
11264 VkSurfaceKHR* pSurface) {
11265 return ?
11266}
11267
11268@extension("VK_MVK_macos_surface") // 124
11269cmd VkResult vkCreateMacOSSurfaceMVK(
11270 VkInstance instance,
11271 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
11272 const VkAllocationCallbacks* pAllocator,
11273 VkSurfaceKHR* pSurface) {
11274 return ?
11275}
11276
Jesse Hall8c954d32018-01-17 22:06:20 -080011277@extension("VK_EXT_debug_utils") // 129
11278@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
11279@extension("VK_EXT_debug_utils") // 129
11280@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
11281 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11282 VkDebugUtilsMessageTypeFlagsEXT messageType,
11283 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
11284 void* pUserData) {
11285 return ?
11286}
11287
11288@extension("VK_EXT_debug_utils") // 129
11289cmd VkResult vkSetDebugUtilsObjectNameEXT(
11290 VkDevice device,
11291 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
11292 return ?
11293}
Jesse Hall72e6a132018-04-06 13:00:44 -070011294
Jesse Hall8c954d32018-01-17 22:06:20 -080011295@extension("VK_EXT_debug_utils") // 129
11296cmd VkResult vkSetDebugUtilsObjectTagEXT(
11297 VkDevice device,
11298 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
11299 return ?
11300}
Jesse Hall72e6a132018-04-06 13:00:44 -070011301
Jesse Hall8c954d32018-01-17 22:06:20 -080011302@extension("VK_EXT_debug_utils") // 129
11303cmd void vkQueueBeginDebugUtilsLabelEXT(
11304 VkQueue queue,
11305 const VkDebugUtilsLabelEXT* pLabelInfo) {
11306}
Jesse Hall72e6a132018-04-06 13:00:44 -070011307
Jesse Hall8c954d32018-01-17 22:06:20 -080011308@extension("VK_EXT_debug_utils") // 129
11309cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
11310}
Jesse Hall72e6a132018-04-06 13:00:44 -070011311
Jesse Hall8c954d32018-01-17 22:06:20 -080011312@extension("VK_EXT_debug_utils") // 129
11313cmd void vkQueueInsertDebugUtilsLabelEXT(
11314 VkQueue queue,
11315 const VkDebugUtilsLabelEXT* pLabelInfo) {
11316}
Jesse Hall72e6a132018-04-06 13:00:44 -070011317
Jesse Hall8c954d32018-01-17 22:06:20 -080011318@extension("VK_EXT_debug_utils") // 129
11319cmd void vkCmdBeginDebugUtilsLabelEXT(
11320 VkCommandBuffer commandBuffer,
11321 const VkDebugUtilsLabelEXT* pLabelInfo) {
11322}
Jesse Hall72e6a132018-04-06 13:00:44 -070011323
Jesse Hall8c954d32018-01-17 22:06:20 -080011324@extension("VK_EXT_debug_utils") // 129
11325cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
11326}
11327
11328@extension("VK_EXT_debug_utils") // 129
11329cmd void vkCmdInsertDebugUtilsLabelEXT(
11330 VkCommandBuffer commandBuffer,
11331 const VkDebugUtilsLabelEXT* pLabelInfo) {
11332}
11333
11334@extension("VK_EXT_debug_utils") // 129
11335cmd VkResult vkCreateDebugUtilsMessengerEXT(
11336 VkInstance instance,
11337 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
11338 const VkAllocationCallbacks* pAllocator,
11339 VkDebugUtilsMessengerEXT* pMessenger) {
11340 return ?
11341}
11342
11343@extension("VK_EXT_debug_utils") // 129
11344cmd void vkDestroyDebugUtilsMessengerEXT(
11345 VkInstance instance,
11346 VkDebugUtilsMessengerEXT messenger,
11347 const VkAllocationCallbacks* pAllocator) {
11348}
11349
11350@extension("VK_EXT_debug_utils") // 129
11351cmd void vkSubmitDebugUtilsMessageEXT(
11352 VkInstance instance,
11353 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11354 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
11355 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
11356}
11357
Jesse Hall36215a92018-01-18 15:04:37 -080011358@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11359@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11360cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
11361 VkDevice device,
11362 const platform.AHardwareBuffer* buffer,
11363 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
11364 return ?
11365}
11366
11367@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11368@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11369cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
11370 VkDevice device,
11371 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
11372 platform.AHardwareBuffer** pBuffer) {
11373 return ?
11374}
11375
Jesse Hall77726222017-09-19 14:49:27 -050011376@extension("VK_EXT_sample_locations") // 144
11377cmd void vkCmdSetSampleLocationsEXT(
11378 VkCommandBuffer commandBuffer,
11379 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
11380}
11381
11382@extension("VK_EXT_sample_locations") // 144
11383cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
11384 VkPhysicalDevice physicalDevice,
11385 VkSampleCountFlagBits samples,
11386 VkMultisamplePropertiesEXT* pMultisampleProperties) {
11387}
11388
Jesse Hall9492f992017-08-28 12:10:06 -070011389@extension("VK_KHR_get_memory_requirements2") // 147
11390cmd void vkGetImageMemoryRequirements2KHR(
11391 VkDevice device,
11392 const VkImageMemoryRequirementsInfo2KHR* pInfo,
11393 VkMemoryRequirements2KHR* pMemoryRequirements) {
11394}
11395
11396@extension("VK_KHR_get_memory_requirements2") // 147
11397cmd void vkGetBufferMemoryRequirements2KHR(
11398 VkDevice device,
11399 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
11400 VkMemoryRequirements2KHR* pMemoryRequirements) {
11401}
11402
11403@extension("VK_KHR_get_memory_requirements2") // 147
11404cmd void vkGetImageSparseMemoryRequirements2KHR(
11405 VkDevice device,
11406 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
11407 u32* pSparseMemoryRequirementCount,
11408 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
11409}
11410
Jesse Hall076f95d2017-09-20 11:34:47 -070011411@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11412cmd VkResult vkCreateSamplerYcbcrConversionKHR(
11413 VkDevice device,
11414 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
11415 const VkAllocationCallbacks* pAllocator,
11416 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
11417 return ?
11418}
11419
11420@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11421cmd void vkDestroySamplerYcbcrConversionKHR(
11422 VkDevice device,
11423 VkSamplerYcbcrConversionKHR ycbcrConversion,
11424 const VkAllocationCallbacks* pAllocator) {
11425}
11426
11427@extension("VK_KHR_bind_memory2") // 158
11428cmd VkResult vkBindBufferMemory2KHR(
11429 VkDevice device,
11430 u32 bindInfoCount,
11431 const VkBindBufferMemoryInfoKHR* pBindInfos) {
11432 return ?
11433}
11434
11435@extension("VK_KHR_bind_memory2") // 158
11436cmd VkResult vkBindImageMemory2KHR(
11437 VkDevice device,
11438 u32 bindInfoCount,
11439 const VkBindImageMemoryInfoKHR* pBindInfos) {
11440 return ?
11441}
11442
Jesse Hallf47e8f82018-10-27 23:41:45 -070011443@extension("VK_EXT_image_drm_format_modifier") // 159
11444cmd VkResult vkGetImageDrmFormatModifierPropertiesEXT(
11445 VkDevice device,
11446 VkImage image,
11447 VkImageDrmFormatModifierPropertiesEXT* pProperties) {
11448 return ?
11449}
11450
Jesse Hall77726222017-09-19 14:49:27 -050011451@extension("VK_EXT_validation_cache") // 161
11452cmd VkResult vkCreateValidationCacheEXT(
11453 VkDevice device,
11454 const VkValidationCacheCreateInfoEXT* pCreateInfo,
11455 const VkAllocationCallbacks* pAllocator,
11456 VkValidationCacheEXT* pValidationCache) {
11457 return ?
11458}
11459
11460@extension("VK_EXT_validation_cache") // 161
11461cmd void vkDestroyValidationCacheEXT(
11462 VkDevice device,
11463 VkValidationCacheEXT validationCache,
11464 const VkAllocationCallbacks* pAllocator) {
11465}
11466
11467@extension("VK_EXT_validation_cache") // 161
11468cmd VkResult vkMergeValidationCachesEXT(
11469 VkDevice device,
11470 VkValidationCacheEXT dstCache,
11471 u32 srcCacheCount,
11472 const VkValidationCacheEXT* pSrcCaches) {
11473 return ?
11474}
11475
11476@extension("VK_EXT_validation_cache") // 161
11477cmd VkResult vkGetValidationCacheDataEXT(
11478 VkDevice device,
11479 VkValidationCacheEXT validationCache,
11480 platform.size_t* pDataSize,
11481 void* pData) {
11482 return ?
11483}
11484
Jesse Hallb5297192018-09-22 20:52:13 +020011485@extension("VK_NV_shading_rate_image") // 165
11486cmd void vkCmdBindShadingRateImageNV(
11487 VkCommandBuffer commandBuffer,
11488 VkImageView imageView,
11489 VkImageLayout imageLayout) {
11490}
11491
11492@extension("VK_NV_shading_rate_image") // 165
11493cmd void vkCmdSetViewportShadingRatePaletteNV(
11494 VkCommandBuffer commandBuffer,
11495 u32 firstViewport,
11496 u32 viewportCount,
11497 const VkShadingRatePaletteNV* pShadingRatePalettes) {
11498}
11499
11500@extension("VK_NV_shading_rate_image") // 165
11501cmd void vkCmdSetCoarseSampleOrderNV(
11502 VkCommandBuffer commandBuffer,
11503 VkCoarseSampleOrderTypeNV sampleOrderType,
11504 u32 customSampleOrderCount,
11505 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
11506}
11507
Jesse Hallbeea46d2018-12-04 14:38:07 -080011508@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011509cmd VkResult vkCreateAccelerationStructureNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011510 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011511 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
Jesse Hallb5297192018-09-22 20:52:13 +020011512 const VkAllocationCallbacks* pAllocator,
Jesse Halla363a8e2018-11-05 21:18:00 -070011513 VkAccelerationStructureNV* pAccelerationStructure) {
Jesse Hallb5297192018-09-22 20:52:13 +020011514 return ?
11515}
11516
Jesse Hallbeea46d2018-12-04 14:38:07 -080011517@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011518cmd void vkDestroyAccelerationStructureNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011519 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011520 VkAccelerationStructureNV accelerationStructure,
Jesse Hallb5297192018-09-22 20:52:13 +020011521 const VkAllocationCallbacks* pAllocator) {
11522}
11523
Jesse Hallbeea46d2018-12-04 14:38:07 -080011524@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011525cmd void vkGetAccelerationStructureMemoryRequirementsNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011526 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011527 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
Jesse Hallb5297192018-09-22 20:52:13 +020011528 VkMemoryRequirements2KHR* pMemoryRequirements) {
11529}
11530
Jesse Hallbeea46d2018-12-04 14:38:07 -080011531@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011532cmd VkResult vkBindAccelerationStructureMemoryNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011533 VkDevice device,
11534 u32 bindInfoCount,
Jesse Halla363a8e2018-11-05 21:18:00 -070011535 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
Jesse Hallb5297192018-09-22 20:52:13 +020011536 return ?
11537}
11538
Jesse Hallbeea46d2018-12-04 14:38:07 -080011539@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011540cmd void vkCmdBuildAccelerationStructureNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011541 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011542 const VkAccelerationStructureInfoNV* pInfo,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011543 VkBuffer instanceData,
11544 VkDeviceSize instanceOffset,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011545 VkBool32 update,
Jesse Halla363a8e2018-11-05 21:18:00 -070011546 VkAccelerationStructureNV dst,
11547 VkAccelerationStructureNV src,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011548 VkBuffer scratch,
11549 VkDeviceSize scratchOffset) {
Jesse Hallb5297192018-09-22 20:52:13 +020011550}
11551
Jesse Hallbeea46d2018-12-04 14:38:07 -080011552@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011553cmd void vkCmdCopyAccelerationStructureNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011554 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011555 VkAccelerationStructureNV dst,
11556 VkAccelerationStructureNV src,
11557 VkCopyAccelerationStructureModeNV mode) {
Jesse Hallb5297192018-09-22 20:52:13 +020011558}
11559
Jesse Hallbeea46d2018-12-04 14:38:07 -080011560@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011561cmd void vkCmdTraceRaysNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011562 VkCommandBuffer commandBuffer,
11563 VkBuffer raygenShaderBindingTableBuffer,
11564 VkDeviceSize raygenShaderBindingOffset,
11565 VkBuffer missShaderBindingTableBuffer,
11566 VkDeviceSize missShaderBindingOffset,
11567 VkDeviceSize missShaderBindingStride,
11568 VkBuffer hitShaderBindingTableBuffer,
11569 VkDeviceSize hitShaderBindingOffset,
11570 VkDeviceSize hitShaderBindingStride,
Jesse Halla363a8e2018-11-05 21:18:00 -070011571 VkBuffer callableShaderBindingTableBuffer,
11572 VkDeviceSize callableShaderBindingOffset,
11573 VkDeviceSize callableShaderBindingStride,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011574 u32 width,
Jesse Halla363a8e2018-11-05 21:18:00 -070011575 u32 height,
11576 u32 depth) {
Jesse Hallb5297192018-09-22 20:52:13 +020011577}
11578
Jesse Hallbeea46d2018-12-04 14:38:07 -080011579@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011580cmd VkResult vkCreateRaytracingPipelinesNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011581 VkDevice device,
11582 VkPipelineCache pipelineCache,
11583 u32 createInfoCount,
Jesse Halla363a8e2018-11-05 21:18:00 -070011584 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
Jesse Hallb5297192018-09-22 20:52:13 +020011585 const VkAllocationCallbacks* pAllocator,
11586 VkPipeline* pPipelines) {
11587 return ?
11588}
11589
Jesse Hallbeea46d2018-12-04 14:38:07 -080011590@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011591cmd VkResult vkGetRaytracingShaderHandlesNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011592 VkDevice device,
11593 VkPipeline pipeline,
11594 u32 firstGroup,
11595 u32 groupCount,
11596 platform.size_t dataSize,
11597 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011598 return ?
11599}
11600
Jesse Hallbeea46d2018-12-04 14:38:07 -080011601@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011602cmd VkResult vkGetAccelerationStructureHandleNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011603 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011604 VkAccelerationStructureNV accelerationStructure,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011605 platform.size_t dataSize,
11606 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011607 return ?
11608}
11609
Jesse Hallbeea46d2018-12-04 14:38:07 -080011610@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011611cmd void vkCmdWriteAccelerationStructurePropertiesNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011612 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011613 u32 accelerationStructureCount,
11614 const VkAccelerationStructureNV* pAccelerationStructures,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011615 VkQueryType queryType,
11616 VkQueryPool queryPool,
Jesse Halla363a8e2018-11-05 21:18:00 -070011617 u32 firstQuery) {
Jesse Hallb5297192018-09-22 20:52:13 +020011618}
11619
Jesse Hallbeea46d2018-12-04 14:38:07 -080011620@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011621cmd VkResult vkCompileDeferredNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011622 VkDevice device,
11623 VkPipeline pipeline,
11624 u32 shader) {
Jesse Hallb5297192018-09-22 20:52:13 +020011625 return ?
11626}
11627
Daniel Koch09f7bf92017-10-05 00:26:58 -040011628@extension("VK_KHR_maintenance3") // 169
11629cmd void vkGetDescriptorSetLayoutSupportKHR(
11630 VkDevice device,
11631 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11632 VkDescriptorSetLayoutSupportKHR* pSupport) {
11633}
11634
Jesse Hall54f8d132018-04-18 08:16:59 -070011635@extension("VK_KHR_draw_indirect_count") // 170
11636cmd void vkCmdDrawIndirectCountKHR(
11637 VkCommandBuffer commandBuffer,
11638 VkBuffer buffer,
11639 VkDeviceSize offset,
11640 VkBuffer countBuffer,
11641 VkDeviceSize countBufferOffset,
11642 u32 maxDrawCount,
11643 u32 stride) {
11644}
11645
11646@extension("VK_KHR_draw_indirect_count") // 170
11647cmd void vkCmdDrawIndexedIndirectCountKHR(
11648 VkCommandBuffer commandBuffer,
11649 VkBuffer buffer,
11650 VkDeviceSize offset,
11651 VkBuffer countBuffer,
11652 VkDeviceSize countBufferOffset,
11653 u32 maxDrawCount,
11654 u32 stride) {
11655}
11656
Jesse Hall8c954d32018-01-17 22:06:20 -080011657@extension("VK_EXT_external_memory_host") // 179
11658cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
11659 VkDevice device,
11660 VkExternalMemoryHandleTypeFlagBits handleType,
11661 const void* pHostPointer,
11662 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
11663 return ?
11664}
11665
Jesse Hall72e6a132018-04-06 13:00:44 -070011666@extension("VK_AMD_buffer_marker") // 180
11667cmd void vkCmdWriteBufferMarkerAMD(
11668 VkCommandBuffer commandBuffer,
11669 VkPipelineStageFlagBits pipelineStage,
11670 VkBuffer dstBuffer,
11671 VkDeviceSize dstOffset,
11672 u32 marker) {
11673}
11674
Jesse Hallf47e8f82018-10-27 23:41:45 -070011675@extension("VK_EXT_calibrated_timestamps") // 185
11676cmd VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
11677 VkPhysicalDevice physicalDevice,
11678 u32* pTimeDomainCount,
11679 VkTimeDomainEXT* pTimeDomains) {
11680 return ?
11681}
11682
11683@extension("VK_EXT_calibrated_timestamps") // 185
11684cmd VkResult vkGetCalibratedTimestampsEXT(
11685 VkDevice device,
11686 u32 timestampCount,
11687 const VkCalibratedTimestampInfoEXT* pTimestampInfos,
11688 u64* pTimestamps,
11689 u64* pMaxDeviation) {
11690 return ?
11691}
11692
Jesse Hallb5297192018-09-22 20:52:13 +020011693@extension("VK_NV_mesh_shader") // 203
11694cmd void vkCmdDrawMeshTasksNV(
11695 VkCommandBuffer commandBuffer,
11696 u32 taskCount,
11697 u32 firstTask) {
11698}
11699
11700@extension("VK_NV_mesh_shader") // 203
11701cmd void vkCmdDrawMeshTasksIndirectNV(
11702 VkCommandBuffer commandBuffer,
11703 VkBuffer buffer,
11704 VkDeviceSize offset,
11705 u32 drawCount,
11706 u32 stride) {
11707}
11708
11709@extension("VK_NV_mesh_shader") // 203
11710cmd void vkCmdDrawMeshTasksIndirectCountNV(
11711 VkCommandBuffer commandBuffer,
11712 VkBuffer buffer,
11713 VkDeviceSize offset,
11714 VkBuffer countBuffer,
11715 VkDeviceSize countBufferOffset,
11716 u32 maxDrawCount,
11717 u32 stride) {
11718}
11719
11720@extension("VK_NV_scissor_exclusive") // 206
11721cmd void vkCmdSetExclusiveScissorNV(
11722 VkCommandBuffer commandBuffer,
11723 u32 firstExclusiveScissor,
11724 u32 exclusiveScissorCount,
11725 const VkRect2D* pExclusiveScissors) {
11726}
11727
Jesse Hall115df0c2018-07-30 12:00:59 -070011728@extension("VK_NV_device_diagnostic_checkpoints") // 207
11729cmd void vkCmdSetCheckpointNV(
11730 VkCommandBuffer commandBuffer,
11731 const void* pCheckpointMarker) {
11732}
11733
11734@extension("VK_NV_device_diagnostic_checkpoints") // 207
11735cmd void vkGetQueueCheckpointDataNV(
11736 VkQueue queue,
11737 u32* pCheckpointDataCount,
11738 VkCheckpointDataNV* pCheckpointData) {
11739}
11740
Jesse Hall497c46f2018-10-08 12:52:48 -070011741@extension("VK_FUCHSIA_imagepipe_surface") // 215
11742cmd VkResult vkCreateImagePipeSurfaceFUCHSIA(
11743 VkInstance instance,
11744 const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
11745 const VkAllocationCallbacks* pAllocator,
11746 VkSurfaceKHR* pSurface) {
11747 return ?
11748}
11749
Jesse Hall115df0c2018-07-30 12:00:59 -070011750
Jesse Halld27f6aa2015-08-15 17:58:48 -070011751////////////////
11752// Validation //
11753////////////////
11754
11755extern void validate(string layerName, bool condition, string message)
11756
11757
11758/////////////////////////////
11759// Internal State Tracking //
11760/////////////////////////////
11761
11762StateObject State
11763
11764@internal class StateObject {
11765 // Dispatchable objects.
11766 map!(VkInstance, ref!InstanceObject) Instances
11767 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
11768 map!(VkDevice, ref!DeviceObject) Devices
11769 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080011770 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011771
11772 // Non-dispatchable objects.
11773 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
11774 map!(VkBuffer, ref!BufferObject) Buffers
11775 map!(VkBufferView, ref!BufferViewObject) BufferViews
11776 map!(VkImage, ref!ImageObject) Images
11777 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070011778 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070011779 map!(VkPipeline, ref!PipelineObject) Pipelines
11780 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
11781 map!(VkSampler, ref!SamplerObject) Samplers
11782 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
11783 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
11784 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070011785 map!(VkFence, ref!FenceObject) Fences
11786 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
11787 map!(VkEvent, ref!EventObject) Events
11788 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
11789 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
11790 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
11791 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080011792 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080011793 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080011794 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070011795}
11796
11797@internal class InstanceObject {
11798}
11799
11800@internal class PhysicalDeviceObject {
11801 VkInstance instance
11802}
11803
11804@internal class DeviceObject {
11805 VkPhysicalDevice physicalDevice
11806}
11807
11808@internal class QueueObject {
11809 VkDevice device
11810 VkQueueFlags flags
11811}
11812
Jesse Hall3fbc8562015-11-29 22:10:52 -080011813@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011814 VkDevice device
11815 map!(u64, VkDeviceMemory) boundObjects
11816 VkQueueFlags queueFlags
11817}
11818
11819@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080011820 VkDevice device
11821 VkDeviceSize allocationSize
11822 map!(u64, VkDeviceSize) boundObjects
11823 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011824}
11825
11826@internal class BufferObject {
11827 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011828 VkDeviceMemory memory
11829 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011830}
11831
11832@internal class BufferViewObject {
11833 VkDevice device
11834 VkBuffer buffer
11835}
11836
11837@internal class ImageObject {
11838 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011839 VkDeviceMemory memory
11840 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011841}
11842
11843@internal class ImageViewObject {
11844 VkDevice device
11845 VkImage image
11846}
11847
Jesse Halld27f6aa2015-08-15 17:58:48 -070011848@internal class ShaderObject {
11849 VkDevice device
11850}
11851
11852@internal class ShaderModuleObject {
11853 VkDevice device
11854}
11855
11856@internal class PipelineObject {
11857 VkDevice device
11858}
11859
11860@internal class PipelineLayoutObject {
11861 VkDevice device
11862}
11863
11864@internal class SamplerObject {
11865 VkDevice device
11866}
11867
11868@internal class DescriptorSetObject {
11869 VkDevice device
11870}
11871
11872@internal class DescriptorSetLayoutObject {
11873 VkDevice device
11874}
11875
11876@internal class DescriptorPoolObject {
11877 VkDevice device
11878}
11879
Jesse Halld27f6aa2015-08-15 17:58:48 -070011880@internal class FenceObject {
11881 VkDevice device
11882 bool signaled
11883}
11884
11885@internal class SemaphoreObject {
11886 VkDevice device
11887}
11888
11889@internal class EventObject {
11890 VkDevice device
11891}
11892
11893@internal class QueryPoolObject {
11894 VkDevice device
11895}
11896
11897@internal class FramebufferObject {
11898 VkDevice device
11899}
11900
11901@internal class RenderPassObject {
11902 VkDevice device
11903}
11904
11905@internal class PipelineCacheObject {
11906 VkDevice device
11907}
11908
Jesse Hall3fbc8562015-11-29 22:10:52 -080011909@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011910 VkDevice device
11911}
11912
Jesse Hall1356b0d2015-11-23 17:24:58 -080011913@internal class SurfaceObject {
11914 VkInstance instance
11915}
11916
Michael Lentine88594d72015-11-12 12:49:45 -080011917@internal class SwapchainObject {
11918 VkDevice device
11919}
11920
Jesse Halld27f6aa2015-08-15 17:58:48 -070011921macro ref!InstanceObject GetInstance(VkInstance instance) {
11922 assert(instance in State.Instances)
11923 return State.Instances[instance]
11924}
11925
11926macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
11927 assert(physicalDevice in State.PhysicalDevices)
11928 return State.PhysicalDevices[physicalDevice]
11929}
11930
11931macro ref!DeviceObject GetDevice(VkDevice device) {
11932 assert(device in State.Devices)
11933 return State.Devices[device]
11934}
11935
11936macro ref!QueueObject GetQueue(VkQueue queue) {
11937 assert(queue in State.Queues)
11938 return State.Queues[queue]
11939}
11940
Jesse Hall3fbc8562015-11-29 22:10:52 -080011941macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
11942 assert(commandBuffer in State.CommandBuffers)
11943 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011944}
11945
Jesse Hall3fbc8562015-11-29 22:10:52 -080011946macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
11947 assert(memory in State.DeviceMemories)
11948 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070011949}
11950
11951macro ref!BufferObject GetBuffer(VkBuffer buffer) {
11952 assert(buffer in State.Buffers)
11953 return State.Buffers[buffer]
11954}
11955
11956macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
11957 assert(bufferView in State.BufferViews)
11958 return State.BufferViews[bufferView]
11959}
11960
11961macro ref!ImageObject GetImage(VkImage image) {
11962 assert(image in State.Images)
11963 return State.Images[image]
11964}
11965
11966macro ref!ImageViewObject GetImageView(VkImageView imageView) {
11967 assert(imageView in State.ImageViews)
11968 return State.ImageViews[imageView]
11969}
11970
Jesse Halld27f6aa2015-08-15 17:58:48 -070011971macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
11972 assert(shaderModule in State.ShaderModules)
11973 return State.ShaderModules[shaderModule]
11974}
11975
11976macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
11977 assert(pipeline in State.Pipelines)
11978 return State.Pipelines[pipeline]
11979}
11980
11981macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
11982 assert(pipelineLayout in State.PipelineLayouts)
11983 return State.PipelineLayouts[pipelineLayout]
11984}
11985
11986macro ref!SamplerObject GetSampler(VkSampler sampler) {
11987 assert(sampler in State.Samplers)
11988 return State.Samplers[sampler]
11989}
11990
11991macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
11992 assert(descriptorSet in State.DescriptorSets)
11993 return State.DescriptorSets[descriptorSet]
11994}
11995
11996macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
11997 assert(descriptorSetLayout in State.DescriptorSetLayouts)
11998 return State.DescriptorSetLayouts[descriptorSetLayout]
11999}
12000
12001macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
12002 assert(descriptorPool in State.DescriptorPools)
12003 return State.DescriptorPools[descriptorPool]
12004}
12005
Jesse Halld27f6aa2015-08-15 17:58:48 -070012006macro ref!FenceObject GetFence(VkFence fence) {
12007 assert(fence in State.Fences)
12008 return State.Fences[fence]
12009}
12010
12011macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
12012 assert(semaphore in State.Semaphores)
12013 return State.Semaphores[semaphore]
12014}
12015
12016macro ref!EventObject GetEvent(VkEvent event) {
12017 assert(event in State.Events)
12018 return State.Events[event]
12019}
12020
12021macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
12022 assert(queryPool in State.QueryPools)
12023 return State.QueryPools[queryPool]
12024}
12025
12026macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
12027 assert(framebuffer in State.Framebuffers)
12028 return State.Framebuffers[framebuffer]
12029}
12030
12031macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
12032 assert(renderPass in State.RenderPasses)
12033 return State.RenderPasses[renderPass]
12034}
12035
12036macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
12037 assert(pipelineCache in State.PipelineCaches)
12038 return State.PipelineCaches[pipelineCache]
12039}
12040
Jesse Hall3fbc8562015-11-29 22:10:52 -080012041macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
12042 assert(commandPool in State.CommandPools)
12043 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070012044}
Michael Lentine88594d72015-11-12 12:49:45 -080012045
Jesse Hall1356b0d2015-11-23 17:24:58 -080012046macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
12047 assert(surface in State.Surfaces)
12048 return State.Surfaces[surface]
12049}
12050
Michael Lentine88594d72015-11-12 12:49:45 -080012051macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
12052 assert(swapchain in State.Swapchains)
12053 return State.Swapchains[swapchain]
12054}
Jesse Halld8bade02015-11-24 10:24:18 -080012055
12056macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
12057 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
12058}