blob: 6c971be3eb3d8509cf7af8f8f1947b575ddc1e11 [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 Hall48514722018-12-04 14:44:42 -080031define VERSION_PATCH 94
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 Hall48514722018-12-04 14:44:42 -0800582// 201
583@extension("VK_KHR_swapchain_mutable_format") define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
584@extension("VK_KHR_swapchain_mutable_format") define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
585
Jesse Hallb5297192018-09-22 20:52:13 +0200586// 202
587@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
588@extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
589
590// 203
591@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_SPEC_VERSION 1
592@extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
593
594// 204
595@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
596@extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
597
598// 205
599@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1
600@extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
601
602// 206
603@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
604@extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
605
Jesse Hall115df0c2018-07-30 12:00:59 -0700606// 207
607@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
608@extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
609
Jesse Hall4af6c462018-09-10 09:04:25 -0700610// 212
611@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2
612@extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
613
Jesse Hallf47e8f82018-10-27 23:41:45 -0700614// 213
615@extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 1
616@extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_EXENSION_NAME "VK_EXT_pci_bus_info"
617
Jesse Hall497c46f2018-10-08 12:52:48 -0700618// 215
619@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
620@extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
621
Jesse Hall48514722018-12-04 14:44:42 -0800622// 219
623@extension("VK_EXT_fragment_density_map") define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1
624@extension("VK_EXT_fragment_density_map") define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
625
Jesse Hall89bde782018-11-12 08:06:07 -0800626// 222
627@extension("VK_EXT_scalar_block_layout") define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
628@extension("VK_EXT_scalar_block_layout") define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
629
Jesse Hallf47e8f82018-10-27 23:41:45 -0700630// 224
631@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 0
632@extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
633
634// 225
635@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 0
636@extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
637
Jesse Hall89bde782018-11-12 08:06:07 -0800638// 247
639@extension("VK_EXT_separate_stencil_usage") define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
640@extension("VK_EXT_separate_stencil_usage") define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
641
Jesse Halld27f6aa2015-08-15 17:58:48 -0700642/////////////
643// Types //
644/////////////
645
Jesse Hall5ae3abb2015-10-08 14:00:22 -0700646type u32 VkBool32
647type u32 VkFlags
648type u64 VkDeviceSize
649type u32 VkSampleMask
650
Jesse Halld27f6aa2015-08-15 17:58:48 -0700651/// Dispatchable handle types.
652@dispatchHandle type u64 VkInstance
653@dispatchHandle type u64 VkPhysicalDevice
654@dispatchHandle type u64 VkDevice
655@dispatchHandle type u64 VkQueue
Jesse Hall3fbc8562015-11-29 22:10:52 -0800656@dispatchHandle type u64 VkCommandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -0700657
658/// Non dispatchable handle types.
659@nonDispatchHandle type u64 VkDeviceMemory
Jesse Hall3fbc8562015-11-29 22:10:52 -0800660@nonDispatchHandle type u64 VkCommandPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700661@nonDispatchHandle type u64 VkBuffer
662@nonDispatchHandle type u64 VkBufferView
663@nonDispatchHandle type u64 VkImage
664@nonDispatchHandle type u64 VkImageView
Jesse Halld27f6aa2015-08-15 17:58:48 -0700665@nonDispatchHandle type u64 VkShaderModule
Jesse Halld27f6aa2015-08-15 17:58:48 -0700666@nonDispatchHandle type u64 VkPipeline
667@nonDispatchHandle type u64 VkPipelineLayout
668@nonDispatchHandle type u64 VkSampler
669@nonDispatchHandle type u64 VkDescriptorSet
670@nonDispatchHandle type u64 VkDescriptorSetLayout
671@nonDispatchHandle type u64 VkDescriptorPool
Jesse Halld27f6aa2015-08-15 17:58:48 -0700672@nonDispatchHandle type u64 VkFence
673@nonDispatchHandle type u64 VkSemaphore
674@nonDispatchHandle type u64 VkEvent
675@nonDispatchHandle type u64 VkQueryPool
676@nonDispatchHandle type u64 VkFramebuffer
677@nonDispatchHandle type u64 VkRenderPass
678@nonDispatchHandle type u64 VkPipelineCache
Jesse Hall1356b0d2015-11-23 17:24:58 -0800679
Ian Elliott28bd2c32017-10-13 09:21:12 -0600680@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400681@nonDispatchHandle type u64 VkSamplerYcbcrConversion
682@nonDispatchHandle type u64 VkDescriptorUpdateTemplate
683
Jesse Hallad250842017-03-10 18:35:38 -0800684// 1
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800685@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800686
Jesse Hallad250842017-03-10 18:35:38 -0800687// 2
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800688@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR
Jesse Hall1356b0d2015-11-23 17:24:58 -0800689
Jesse Hallad250842017-03-10 18:35:38 -0800690// 3
Jesse Hall3e0dc8f2015-11-30 00:42:57 -0800691@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR
692@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR
Jesse Halld27f6aa2015-08-15 17:58:48 -0700693
Jesse Hallad250842017-03-10 18:35:38 -0800694// 12
Jesse Hall715b86a2016-01-16 16:34:29 -0800695@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT
696
Jesse Hallad250842017-03-10 18:35:38 -0800697// 86
698@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR
699
700// 87
Chris Forbes289cb792016-12-30 15:03:55 +1300701@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX
702@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX
703
Jesse Hall8c954d32018-01-17 22:06:20 -0800704// 129
705@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT
706
Jesse Hall076f95d2017-09-20 11:34:47 -0700707// 157
708@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR
709
Jesse Hall77726222017-09-19 14:49:27 -0500710// 161
711@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT
Jesse Halld27f6aa2015-08-15 17:58:48 -0700712
Jesse Hallb5297192018-09-22 20:52:13 +0200713// 166
Jesse Hallbeea46d2018-12-04 14:38:07 -0800714@extension("VK_NV_ray_tracing") @nonDispatchHandle type u64 VkAccelerationStructureNV
Jesse Hallb5297192018-09-22 20:52:13 +0200715
Jesse Halld27f6aa2015-08-15 17:58:48 -0700716/////////////
717// Enums //
718/////////////
719
720enum VkImageLayout {
721 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation)
722 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access
723 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write
724 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write
725 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access
726 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 -0800727 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations
728 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 -0700729 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU
Jesse Hall1356b0d2015-11-23 17:24:58 -0800730
Ian Elliott28bd2c32017-10-13 09:21:12 -0600731 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -0400732 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
733 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
734
Jesse Hallad250842017-03-10 18:35:38 -0800735 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -0800736 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
Chris Forbesaf3a1112017-01-31 15:37:03 +1300737
Jesse Hall05556b12017-05-18 17:40:25 -0700738 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbesaf3a1112017-01-31 15:37:03 +1300739 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
Jesse Hall076f95d2017-09-20 11:34:47 -0700740
741 //@extension("VK_KHR_maintenance2") // 118
742 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000,
743 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001,
Jesse Hallb5297192018-09-22 20:52:13 +0200744
745 //@extension("VK_NV_shading_rate_image") // 165
746 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
Jesse Hall48514722018-12-04 14:44:42 -0800747
748 //@extension("VK_EXT_fragment_density_map") // 219
749 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700750}
751
752enum VkAttachmentLoadOp {
753 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000,
754 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001,
755 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002,
756}
757
758enum VkAttachmentStoreOp {
759 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000,
760 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001,
761}
762
763enum VkImageType {
764 VK_IMAGE_TYPE_1D = 0x00000000,
765 VK_IMAGE_TYPE_2D = 0x00000001,
766 VK_IMAGE_TYPE_3D = 0x00000002,
767}
768
769enum VkImageTiling {
Jesse Hallc7467b72015-11-29 21:05:26 -0800770 VK_IMAGE_TILING_OPTIMAL = 0x00000000,
771 VK_IMAGE_TILING_LINEAR = 0x00000001,
Jesse Hallf47e8f82018-10-27 23:41:45 -0700772
773 //@extension("VK_EXT_image_drm_format_modifier") // 159
774 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700775}
776
777enum VkImageViewType {
778 VK_IMAGE_VIEW_TYPE_1D = 0x00000000,
779 VK_IMAGE_VIEW_TYPE_2D = 0x00000001,
780 VK_IMAGE_VIEW_TYPE_3D = 0x00000002,
781 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003,
782 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004,
783 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005,
784 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006,
785}
786
Jesse Hall3fbc8562015-11-29 22:10:52 -0800787enum VkCommandBufferLevel {
788 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000,
789 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700790}
791
Jesse Hall65ab5522015-11-30 00:07:16 -0800792enum VkComponentSwizzle {
793 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000,
794 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001,
795 VK_COMPONENT_SWIZZLE_ONE = 0x00000002,
796 VK_COMPONENT_SWIZZLE_R = 0x00000003,
797 VK_COMPONENT_SWIZZLE_G = 0x00000004,
798 VK_COMPONENT_SWIZZLE_B = 0x00000005,
799 VK_COMPONENT_SWIZZLE_A = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700800}
801
802enum VkDescriptorType {
803 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000,
804 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001,
805 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002,
806 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003,
807 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004,
808 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005,
809 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006,
810 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007,
811 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008,
812 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009,
813 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a,
Jesse Hall4af6c462018-09-10 09:04:25 -0700814
815 //@extension("VK_EXT_inline_uniform_block") // 139
816 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
Jesse Hallb5297192018-09-22 20:52:13 +0200817
Jesse Hallbeea46d2018-12-04 14:38:07 -0800818 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700819 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700820}
821
Jesse Halld27f6aa2015-08-15 17:58:48 -0700822enum VkQueryType {
823 VK_QUERY_TYPE_OCCLUSION = 0x00000000,
824 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional
Jesse Halla3a7a1d2015-11-24 11:37:23 -0800825 VK_QUERY_TYPE_TIMESTAMP = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +0200826
Jesse Hallf47e8f82018-10-27 23:41:45 -0700827 //@extension("VK_EXT_transform_feedback") // 29
828 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
829
Jesse Hallbeea46d2018-12-04 14:38:07 -0800830 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700831 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700832}
833
Jesse Halld27f6aa2015-08-15 17:58:48 -0700834enum VkBorderColor {
835 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000,
836 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001,
837 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002,
838 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003,
839 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004,
840 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005,
841}
842
843enum VkPipelineBindPoint {
Jesse Hallc7467b72015-11-29 21:05:26 -0800844 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000,
845 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001,
Jesse Hallb5297192018-09-22 20:52:13 +0200846
Jesse Hallbeea46d2018-12-04 14:38:07 -0800847 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700848 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700849}
850
851enum VkPrimitiveTopology {
852 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000,
853 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001,
854 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002,
855 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003,
856 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004,
857 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800858 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006,
859 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007,
860 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008,
861 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009,
Jesse Hall091ed9e2015-11-30 00:55:29 -0800862 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700863}
864
865enum VkSharingMode {
866 VK_SHARING_MODE_EXCLUSIVE = 0x00000000,
867 VK_SHARING_MODE_CONCURRENT = 0x00000001,
868}
869
870enum VkIndexType {
871 VK_INDEX_TYPE_UINT16 = 0x00000000,
872 VK_INDEX_TYPE_UINT32 = 0x00000001,
Jesse Halla363a8e2018-11-05 21:18:00 -0700873
Jesse Hallbeea46d2018-12-04 14:38:07 -0800874 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -0700875 VK_INDEX_TYPE_NONE_NV = 1000165000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700876}
877
Jesse Hall23ff73f2015-11-29 14:36:39 -0800878enum VkFilter {
879 VK_FILTER_NEAREST = 0x00000000,
880 VK_FILTER_LINEAR = 0x00000001,
Jesse Hall26763382016-05-20 07:13:52 -0700881
Jesse Hallad250842017-03-10 18:35:38 -0800882 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -0700883 VK_FILTER_CUBIC_IMG = 1000015000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700884}
885
Jesse Hall23ff73f2015-11-29 14:36:39 -0800886enum VkSamplerMipmapMode {
Jesse Hall23ff73f2015-11-29 14:36:39 -0800887 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level
888 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels
Jesse Halld27f6aa2015-08-15 17:58:48 -0700889}
890
Jesse Hall23ff73f2015-11-29 14:36:39 -0800891enum VkSamplerAddressMode {
Jesse Hallc7467b72015-11-29 21:05:26 -0800892 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000,
893 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001,
894 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002,
895 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003,
896 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700897}
898
899enum VkCompareOp {
900 VK_COMPARE_OP_NEVER = 0x00000000,
901 VK_COMPARE_OP_LESS = 0x00000001,
902 VK_COMPARE_OP_EQUAL = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800903 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700904 VK_COMPARE_OP_GREATER = 0x00000004,
905 VK_COMPARE_OP_NOT_EQUAL = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -0800906 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700907 VK_COMPARE_OP_ALWAYS = 0x00000007,
908}
909
Jesse Hall65ab5522015-11-30 00:07:16 -0800910enum VkPolygonMode {
911 VK_POLYGON_MODE_FILL = 0x00000000,
912 VK_POLYGON_MODE_LINE = 0x00000001,
913 VK_POLYGON_MODE_POINT = 0x00000002,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700914
915 //@extension("VK_NV_fill_rectangle") // 154
916 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700917}
918
919enum VkFrontFace {
Jesse Hall3fbc8562015-11-29 22:10:52 -0800920 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000,
921 VK_FRONT_FACE_CLOCKWISE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700922}
923
Jesse Hall65ab5522015-11-30 00:07:16 -0800924enum VkBlendFactor {
925 VK_BLEND_FACTOR_ZERO = 0x00000000,
926 VK_BLEND_FACTOR_ONE = 0x00000001,
927 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002,
928 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003,
929 VK_BLEND_FACTOR_DST_COLOR = 0x00000004,
930 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005,
931 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006,
932 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007,
933 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008,
934 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009,
935 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a,
936 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b,
937 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c,
938 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d,
939 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e,
940 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f,
941 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010,
942 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011,
943 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012,
Jesse Halld27f6aa2015-08-15 17:58:48 -0700944}
945
946enum VkBlendOp {
947 VK_BLEND_OP_ADD = 0x00000000,
948 VK_BLEND_OP_SUBTRACT = 0x00000001,
949 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002,
950 VK_BLEND_OP_MIN = 0x00000003,
951 VK_BLEND_OP_MAX = 0x00000004,
Jesse Hall7ba0ac72017-07-07 17:13:23 -0700952
953 //@extension("VK_EXT_blend_operation_advanced") // 149
954 VK_BLEND_OP_ZERO_EXT = 1000148000,
955 VK_BLEND_OP_SRC_EXT = 1000148001,
956 VK_BLEND_OP_DST_EXT = 1000148002,
957 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
958 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
959 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
960 VK_BLEND_OP_DST_IN_EXT = 1000148006,
961 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
962 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
963 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
964 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
965 VK_BLEND_OP_XOR_EXT = 1000148011,
966 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
967 VK_BLEND_OP_SCREEN_EXT = 1000148013,
968 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
969 VK_BLEND_OP_DARKEN_EXT = 1000148015,
970 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
971 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
972 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
973 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
974 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
975 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
976 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
977 VK_BLEND_OP_INVERT_EXT = 1000148023,
978 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
979 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
980 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
981 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
982 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
983 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
984 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
985 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
986 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
987 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
988 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
989 VK_BLEND_OP_PLUS_EXT = 1000148035,
990 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
991 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
992 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
993 VK_BLEND_OP_MINUS_EXT = 1000148039,
994 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
995 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
996 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
997 VK_BLEND_OP_RED_EXT = 1000148043,
998 VK_BLEND_OP_GREEN_EXT = 1000148044,
999 VK_BLEND_OP_BLUE_EXT = 1000148045,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001000}
1001
1002enum VkStencilOp {
1003 VK_STENCIL_OP_KEEP = 0x00000000,
1004 VK_STENCIL_OP_ZERO = 0x00000001,
1005 VK_STENCIL_OP_REPLACE = 0x00000002,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001006 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003,
1007 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001008 VK_STENCIL_OP_INVERT = 0x00000005,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001009 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006,
1010 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001011}
1012
1013enum VkLogicOp {
1014 VK_LOGIC_OP_CLEAR = 0x00000000,
1015 VK_LOGIC_OP_AND = 0x00000001,
1016 VK_LOGIC_OP_AND_REVERSE = 0x00000002,
1017 VK_LOGIC_OP_COPY = 0x00000003,
1018 VK_LOGIC_OP_AND_INVERTED = 0x00000004,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001019 VK_LOGIC_OP_NO_OP = 0x00000005,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001020 VK_LOGIC_OP_XOR = 0x00000006,
1021 VK_LOGIC_OP_OR = 0x00000007,
1022 VK_LOGIC_OP_NOR = 0x00000008,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001023 VK_LOGIC_OP_EQUIVALENT = 0x00000009,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001024 VK_LOGIC_OP_INVERT = 0x0000000a,
1025 VK_LOGIC_OP_OR_REVERSE = 0x0000000b,
1026 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c,
1027 VK_LOGIC_OP_OR_INVERTED = 0x0000000d,
1028 VK_LOGIC_OP_NAND = 0x0000000e,
1029 VK_LOGIC_OP_SET = 0x0000000f,
1030}
1031
Jesse Hall3fbc8562015-11-29 22:10:52 -08001032enum VkSystemAllocationScope {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001033 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000,
Jesse Hall3fbc8562015-11-29 22:10:52 -08001034 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001,
1035 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002,
1036 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003,
1037 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004,
Jesse Hall03b6fe12015-11-24 12:44:21 -08001038}
1039
Jesse Hall3fbc8562015-11-29 22:10:52 -08001040enum VkInternalAllocationType {
1041 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001042}
1043
1044enum VkPhysicalDeviceType {
1045 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000,
1046 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001,
1047 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002,
1048 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003,
1049 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004,
1050}
1051
Jesse Hall65ab5522015-11-30 00:07:16 -08001052enum VkVertexInputRate {
1053 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000,
1054 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001055}
1056
1057/// Vulkan format definitions
1058enum VkFormat {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001059 VK_FORMAT_UNDEFINED = 0,
1060 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1061 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1062 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1063 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1064 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1065 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1066 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1067 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1068 VK_FORMAT_R8_UNORM = 9,
1069 VK_FORMAT_R8_SNORM = 10,
1070 VK_FORMAT_R8_USCALED = 11,
1071 VK_FORMAT_R8_SSCALED = 12,
1072 VK_FORMAT_R8_UINT = 13,
1073 VK_FORMAT_R8_SINT = 14,
1074 VK_FORMAT_R8_SRGB = 15,
1075 VK_FORMAT_R8G8_UNORM = 16,
1076 VK_FORMAT_R8G8_SNORM = 17,
1077 VK_FORMAT_R8G8_USCALED = 18,
1078 VK_FORMAT_R8G8_SSCALED = 19,
1079 VK_FORMAT_R8G8_UINT = 20,
1080 VK_FORMAT_R8G8_SINT = 21,
1081 VK_FORMAT_R8G8_SRGB = 22,
1082 VK_FORMAT_R8G8B8_UNORM = 23,
1083 VK_FORMAT_R8G8B8_SNORM = 24,
1084 VK_FORMAT_R8G8B8_USCALED = 25,
1085 VK_FORMAT_R8G8B8_SSCALED = 26,
1086 VK_FORMAT_R8G8B8_UINT = 27,
1087 VK_FORMAT_R8G8B8_SINT = 28,
1088 VK_FORMAT_R8G8B8_SRGB = 29,
1089 VK_FORMAT_B8G8R8_UNORM = 30,
1090 VK_FORMAT_B8G8R8_SNORM = 31,
1091 VK_FORMAT_B8G8R8_USCALED = 32,
1092 VK_FORMAT_B8G8R8_SSCALED = 33,
1093 VK_FORMAT_B8G8R8_UINT = 34,
1094 VK_FORMAT_B8G8R8_SINT = 35,
1095 VK_FORMAT_B8G8R8_SRGB = 36,
1096 VK_FORMAT_R8G8B8A8_UNORM = 37,
1097 VK_FORMAT_R8G8B8A8_SNORM = 38,
1098 VK_FORMAT_R8G8B8A8_USCALED = 39,
1099 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1100 VK_FORMAT_R8G8B8A8_UINT = 41,
1101 VK_FORMAT_R8G8B8A8_SINT = 42,
1102 VK_FORMAT_R8G8B8A8_SRGB = 43,
1103 VK_FORMAT_B8G8R8A8_UNORM = 44,
1104 VK_FORMAT_B8G8R8A8_SNORM = 45,
1105 VK_FORMAT_B8G8R8A8_USCALED = 46,
1106 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1107 VK_FORMAT_B8G8R8A8_UINT = 48,
1108 VK_FORMAT_B8G8R8A8_SINT = 49,
1109 VK_FORMAT_B8G8R8A8_SRGB = 50,
1110 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1111 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1112 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1113 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1114 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1115 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1116 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1117 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1118 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1119 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1120 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1121 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1122 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1123 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1124 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1125 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1126 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1127 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1128 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1129 VK_FORMAT_R16_UNORM = 70,
1130 VK_FORMAT_R16_SNORM = 71,
1131 VK_FORMAT_R16_USCALED = 72,
1132 VK_FORMAT_R16_SSCALED = 73,
1133 VK_FORMAT_R16_UINT = 74,
1134 VK_FORMAT_R16_SINT = 75,
1135 VK_FORMAT_R16_SFLOAT = 76,
1136 VK_FORMAT_R16G16_UNORM = 77,
1137 VK_FORMAT_R16G16_SNORM = 78,
1138 VK_FORMAT_R16G16_USCALED = 79,
1139 VK_FORMAT_R16G16_SSCALED = 80,
1140 VK_FORMAT_R16G16_UINT = 81,
1141 VK_FORMAT_R16G16_SINT = 82,
1142 VK_FORMAT_R16G16_SFLOAT = 83,
1143 VK_FORMAT_R16G16B16_UNORM = 84,
1144 VK_FORMAT_R16G16B16_SNORM = 85,
1145 VK_FORMAT_R16G16B16_USCALED = 86,
1146 VK_FORMAT_R16G16B16_SSCALED = 87,
1147 VK_FORMAT_R16G16B16_UINT = 88,
1148 VK_FORMAT_R16G16B16_SINT = 89,
1149 VK_FORMAT_R16G16B16_SFLOAT = 90,
1150 VK_FORMAT_R16G16B16A16_UNORM = 91,
1151 VK_FORMAT_R16G16B16A16_SNORM = 92,
1152 VK_FORMAT_R16G16B16A16_USCALED = 93,
1153 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1154 VK_FORMAT_R16G16B16A16_UINT = 95,
1155 VK_FORMAT_R16G16B16A16_SINT = 96,
1156 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1157 VK_FORMAT_R32_UINT = 98,
1158 VK_FORMAT_R32_SINT = 99,
1159 VK_FORMAT_R32_SFLOAT = 100,
1160 VK_FORMAT_R32G32_UINT = 101,
1161 VK_FORMAT_R32G32_SINT = 102,
1162 VK_FORMAT_R32G32_SFLOAT = 103,
1163 VK_FORMAT_R32G32B32_UINT = 104,
1164 VK_FORMAT_R32G32B32_SINT = 105,
1165 VK_FORMAT_R32G32B32_SFLOAT = 106,
1166 VK_FORMAT_R32G32B32A32_UINT = 107,
1167 VK_FORMAT_R32G32B32A32_SINT = 108,
1168 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1169 VK_FORMAT_R64_UINT = 110,
1170 VK_FORMAT_R64_SINT = 111,
1171 VK_FORMAT_R64_SFLOAT = 112,
1172 VK_FORMAT_R64G64_UINT = 113,
1173 VK_FORMAT_R64G64_SINT = 114,
1174 VK_FORMAT_R64G64_SFLOAT = 115,
1175 VK_FORMAT_R64G64B64_UINT = 116,
1176 VK_FORMAT_R64G64B64_SINT = 117,
1177 VK_FORMAT_R64G64B64_SFLOAT = 118,
1178 VK_FORMAT_R64G64B64A64_UINT = 119,
1179 VK_FORMAT_R64G64B64A64_SINT = 120,
1180 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1181 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1182 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1183 VK_FORMAT_D16_UNORM = 124,
1184 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1185 VK_FORMAT_D32_SFLOAT = 126,
1186 VK_FORMAT_S8_UINT = 127,
1187 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1188 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1189 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1190 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1191 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1192 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1193 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1194 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1195 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1196 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1197 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1198 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1199 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1200 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1201 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1202 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1203 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1204 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1205 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1206 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1207 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1208 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1209 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1210 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1211 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1212 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1213 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1214 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1215 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1216 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1217 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1218 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1219 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1220 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1221 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1222 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1223 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1224 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1225 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1226 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1227 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1228 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1229 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1230 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1231 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1232 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1233 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1234 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1235 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1236 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1237 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1238 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1239 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1240 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1241 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1242 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1243 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
Chris Forbes289cb792016-12-30 15:03:55 +13001244
Ian Elliott28bd2c32017-10-13 09:21:12 -06001245 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001246 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1247 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1248 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1249 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1250 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1251 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1252 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1253 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1254 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1255 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1256 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1257 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1258 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1259 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1260 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1261 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1262 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1263 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1264 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1265 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1266 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1267 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1268 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1269 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1270 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1271 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1272 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1273 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1274 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1275 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1276 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1277 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1278 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1279 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1280
Jesse Hallad250842017-03-10 18:35:38 -08001281 //@extension("VK_IMG_format_pvrtc") // 28
Jesse Halleb02c472017-02-24 15:13:45 -08001282 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1283 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1284 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1285 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1286 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1287 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1288 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1289 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
Jesse Hall076f95d2017-09-20 11:34:47 -07001290
1291 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1292 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000,
1293 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001,
1294 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002,
1295 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003,
1296 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004,
1297 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005,
1298 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006,
1299 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007,
1300 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008,
1301 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009,
1302 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010,
1303 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011,
1304 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012,
1305 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013,
1306 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014,
1307 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015,
1308 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016,
1309 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017,
1310 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018,
1311 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019,
1312 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020,
1313 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021,
1314 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022,
1315 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023,
1316 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024,
1317 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025,
1318 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026,
1319 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027,
1320 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028,
1321 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029,
1322 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030,
1323 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031,
1324 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032,
1325 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001326}
1327
Jesse Halld27f6aa2015-08-15 17:58:48 -07001328/// Structure type enumerant
1329enum VkStructureType {
1330 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
Jesse Hallc7467b72015-11-29 21:05:26 -08001331 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
1332 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
1333 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
1334 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001335 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
Jesse Hallc7467b72015-11-29 21:05:26 -08001336 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
1337 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
1338 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
1339 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001340 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
Jesse Hallc7467b72015-11-29 21:05:26 -08001341 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
1342 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
1343 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
1344 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
1345 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
1346 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001347 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
1348 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
1349 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
1350 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
1351 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
1352 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
1353 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
1354 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
1355 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
1356 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
1357 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
1358 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
1359 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
1360 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
1361 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
1362 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
1363 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001364 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08001365 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
1366 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
1367 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
1368 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
1369 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08001370 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
Jesse Hall3dd678a2016-01-08 21:52:01 -08001371 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
1372 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
1373 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
1374 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
1375 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
1376 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
1377 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
1378 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001379
Ian Elliott28bd2c32017-10-13 09:21:12 -06001380 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001381 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
1382 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
1383 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
1384 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
1385 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
1386 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
1387 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
1388 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
1389 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
1390 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
1391 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
1392 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
1393 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
1394 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
1395 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
1396 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
1397 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
1398 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
1399 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
1400 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
1401 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
1402 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
1403 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
1404 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
1405 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
1406 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
1407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
1408 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
1409 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
1410 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
1411 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
1412 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
1413 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
1414 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
1415 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
1416 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
1417 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000,
1418 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
1419 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
1420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
1421 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
1422 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
1423 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
1424 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
1425 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
1426 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
1427 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
1428 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
1429 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
1430 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
1431 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
1432 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
1433 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
1434 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
1435 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
1436 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
1437 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
1438 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
1439 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
1440 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
1441 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
1442 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
1443 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
1444 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
1445 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000,
1446 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1447
Jesse Hallad250842017-03-10 18:35:38 -08001448 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001449 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
1450 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001451 // added as interaction from VK_KHR_device_group / VK 1.1
1452 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
1453 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
1454 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
1455 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
1456 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001457
Jesse Hallad250842017-03-10 18:35:38 -08001458 //@extension("VK_KHR_display") // 3
Jesse Hallbd888842015-11-30 21:44:14 -08001459 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
1460 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001461
Jesse Hallad250842017-03-10 18:35:38 -08001462 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001463 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001464
Jesse Hallad250842017-03-10 18:35:38 -08001465 //@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001466 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
1467
Jesse Hallad250842017-03-10 18:35:38 -08001468 //@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001469 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
1470
Jesse Hallad250842017-03-10 18:35:38 -08001471 //@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001472 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
1473
Jesse Hallad250842017-03-10 18:35:38 -08001474 //@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001475 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
1476
Jesse Hallad250842017-03-10 18:35:38 -08001477 //@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08001478 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
Jesse Hall543a7ff2016-01-08 16:38:30 -08001479
Jesse Hallad250842017-03-10 18:35:38 -08001480 //@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08001481 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000,
Chris Forbes8e4438b2016-12-07 16:26:49 +13001482 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001,
Chris Forbes1d4e5542017-02-15 19:38:50 +13001483 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002,
Chia-I Wub262ddc2016-03-22 07:38:20 +08001484
Jesse Hallad250842017-03-10 18:35:38 -08001485 //@extension("VK_EXT_debug_report") // 12
Jesse Hall26763382016-05-20 07:13:52 -07001486 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
1487
Jesse Hallad250842017-03-10 18:35:38 -08001488 //@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07001489 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
1490
Jesse Hallad250842017-03-10 18:35:38 -08001491 //@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07001492 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
Jesse Hall26763382016-05-20 07:13:52 -07001493 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
Jesse Hall26763382016-05-20 07:13:52 -07001494 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
Jesse Hall56d386a2016-07-26 15:20:40 -07001495
Jesse Hallad250842017-03-10 18:35:38 -08001496 //@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07001497 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
Jesse Hall56d386a2016-07-26 15:20:40 -07001498 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
Jesse Hall56d386a2016-07-26 15:20:40 -07001499 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
Chris Forbes289cb792016-12-30 15:03:55 +13001500
Jesse Hallf47e8f82018-10-27 23:41:45 -07001501 //@extension("VK_EXT_transform_feedback") // 29
1502 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
1503 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
1504 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
1505
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001506 //@extension("VK_AMD_texture_gather_bias_lod") // 42
1507 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
1508
Jesse Hallb5297192018-09-22 20:52:13 +02001509 //@extension("VK_NV_corner_sampled_image") // 51
1510 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
1511
Daniel Koch09f7bf92017-10-05 00:26:58 -04001512 //@extension("VK_KHR_multiview") // 54
1513 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000,
1514 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001,
1515 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002,
Jesse Hallad250842017-03-10 18:35:38 -08001516
1517 //@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08001518 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
1519 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
Chris Forbes289cb792016-12-30 15:03:55 +13001520
Jesse Hallad250842017-03-10 18:35:38 -08001521 //@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08001522 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
1523 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
Chris Forbes289cb792016-12-30 15:03:55 +13001524
Jesse Hallad250842017-03-10 18:35:38 -08001525 //@extension("VK_NV_win32_keyed_mutex") // 59
Chris Forbes289cb792016-12-30 15:03:55 +13001526 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
1527
Jesse Hallad250842017-03-10 18:35:38 -08001528 //@extension("VK_KHR_get_physical_device_properties2") // 60
Jesse Hall889cd9a2017-02-25 22:12:23 -08001529 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000,
1530 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001,
1531 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002,
1532 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003,
1533 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004,
1534 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005,
1535 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006,
1536 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007,
Chris Forbes1194ede2016-12-30 16:29:25 +13001537 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008,
1538
Daniel Koch09f7bf92017-10-05 00:26:58 -04001539 //@extension("VK_KHR_device_group") // 61
1540 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000,
1541 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003,
1542 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004,
1543 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005,
1544 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006,
1545 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
1546 // tokens 08-12 are listed with VK_KHR_swapchain
1547 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013,
1548 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014,
Jesse Hallad250842017-03-10 18:35:38 -08001549
1550 //@extension("VK_EXT_validation_flags") // 62
Jesse Halleb02c472017-02-24 15:13:45 -08001551 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
Chris Forbes289cb792016-12-30 15:03:55 +13001552
Jesse Hallad250842017-03-10 18:35:38 -08001553 //@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08001554 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
1555
Jesse Hall4af6c462018-09-10 09:04:25 -07001556 //@extension("VK_EXT_astc_decode_mode") // 68
1557 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
1558 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
1559
Daniel Koch09f7bf92017-10-05 00:26:58 -04001560 //@extension("VK_KHR_device_group_creation") // 71
1561 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000,
1562 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001,
Jesse Hallad250842017-03-10 18:35:38 -08001563
Jesse Hall9492f992017-08-28 12:10:06 -07001564 //@extension("VK_KHR_external_memory_capabilities") // 72
1565 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000,
1566 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001,
1567 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002,
1568 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003,
1569 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004,
Jesse Hallad250842017-03-10 18:35:38 -08001570
Jesse Hall9492f992017-08-28 12:10:06 -07001571 //@extension("VK_KHR_external_memory") // 73
1572 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000,
1573 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001,
1574 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002,
Jesse Hallad250842017-03-10 18:35:38 -08001575
Jesse Hall9492f992017-08-28 12:10:06 -07001576 //@extension("VK_KHR_external_memory_win32") // 74
1577 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
1578 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
1579 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
Jesse Hallad250842017-03-10 18:35:38 -08001580
Jesse Hall9492f992017-08-28 12:10:06 -07001581 //@extension("VK_KHR_external_memory_fd") // 75
1582 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
1583 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
Jesse Hallad250842017-03-10 18:35:38 -08001584
Jesse Hall9492f992017-08-28 12:10:06 -07001585 //@extension("VK_KHR_win32_keyed_mutex") // 76
1586 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
Jesse Hallad250842017-03-10 18:35:38 -08001587
Jesse Hall9492f992017-08-28 12:10:06 -07001588 //@extension("VK_KHR_external_semaphore_capabilities") // 77
1589 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000,
1590 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001,
Jesse Hallad250842017-03-10 18:35:38 -08001591
Jesse Hall9492f992017-08-28 12:10:06 -07001592 //@extension("VK_KHR_external_semaphore") // 78
1593 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000,
Jesse Hallad250842017-03-10 18:35:38 -08001594
Jesse Hall9492f992017-08-28 12:10:06 -07001595 //@extension("VK_KHR_external_semaphore_win32") // 79
1596 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
1597 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
1598 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
Jesse Hallad250842017-03-10 18:35:38 -08001599
Jesse Hall9492f992017-08-28 12:10:06 -07001600 //@extension("VK_KHR_external_semaphore_fd") // 80
1601 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
1602 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
Jesse Hallad250842017-03-10 18:35:38 -08001603
1604 //@extension("VK_KHR_push_descriptor") // 81
1605 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
1606
Jesse Hall9492f992017-08-28 12:10:06 -07001607 //@extension("VK_KHR_16bit_storage") // 84
1608 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000,
1609
Jesse Hallad250842017-03-10 18:35:38 -08001610 //@extension("VK_KHR_incremental_present") // 85
Jesse Hall889cd9a2017-02-25 22:12:23 -08001611 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
Chris Forbes289cb792016-12-30 15:03:55 +13001612
Jesse Halla13a3cf2018-07-09 15:51:52 -07001613 //@extension("VK_EXT_conditional_rendering") // 82
1614 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
1615 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
1616 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
1617
Jesse Hallad250842017-03-10 18:35:38 -08001618 //@extension("VK_KHR_descriptor_update_template") // 86
1619 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000,
1620
1621 //@extension("VK_NVX_device_generated_commands") // 87
Jesse Halleb02c472017-02-24 15:13:45 -08001622 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000,
1623 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001,
1624 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002,
1625 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003,
1626 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004,
1627 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001628
Jesse Hallad250842017-03-10 18:35:38 -08001629 //@extension("VK_NV_clip_space_w_scaling") // 88
1630 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
1631
1632 //@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77726222017-09-19 14:49:27 -05001633 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08001634
Jesse Hallad250842017-03-10 18:35:38 -08001635 //@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08001636 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
1637 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
1638 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
1639 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
Jesse Hallad250842017-03-10 18:35:38 -08001640
1641 //@extension("VK_GOOGLE_display_timing") // 93
1642 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
1643
1644 //@extension("VK_NVX_multiview_per_view_attributes") // 98
1645 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
1646
1647 //@extension("VK_NV_viewport_swizzle") // 99
1648 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
1649
1650 //@extension("VK_EXT_discard_rectangles") // 100
1651 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
1652 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
1653
Jesse Hall8c954d32018-01-17 22:06:20 -08001654 //@extension("VK_EXT_conservative_rasterization") // 102
1655 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
1656 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
1657
Jesse Halla13a3cf2018-07-09 15:51:52 -07001658 //@extension("VK_KHR_create_renderpass2") // 110
1659 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000,
1660 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001,
1661 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002,
1662 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003,
1663 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004,
1664 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005,
1665 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006,
1666
Jesse Hallfdc8ab32017-03-10 21:01:57 -08001667 //@extension("VK_EXT_hdr_metadata") // 106
1668 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
1669
Jesse Hall05556b12017-05-18 17:40:25 -07001670 //@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13001671 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
1672
Jesse Hall9492f992017-08-28 12:10:06 -07001673 //@extension("VK_KHR_external_fence_capabilities") // 113
1674 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000,
1675 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001,
1676
1677 //@extension("VK_KHR_external_fence") // 114
1678 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000,
1679
1680 //@extension("VK_KHR_external_fence_win32") // 115
1681 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
1682 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
1683 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
1684
1685 //@extension("VK_KHR_external_fence_fd") // 117
1686 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
1687 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
1688
Jesse Hall076f95d2017-09-20 11:34:47 -07001689 //@extension("VK_KHR_maintenance2") // 118
1690 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000,
1691 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001,
1692 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002,
1693 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003,
1694
Jesse Hall05556b12017-05-18 17:40:25 -07001695 //@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13001696 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
1697 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
1698 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
1699
Jesse Hall9492f992017-08-28 12:10:06 -07001700 //@extension("VK_KHR_variable_pointers") // 121
1701 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000,
1702
Jesse Hall54f8d132018-04-18 08:16:59 -07001703 //@extension("VK_KHR_display_properties2") // 122
1704 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
1705 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
1706 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
1707 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
1708 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
1709
Jesse Hallad250842017-03-10 18:35:38 -08001710 //@extension("VK_MVK_ios_surface") // 123
1711 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
1712
1713 //@extension("VK_MVK_macos_surface") // 124
1714 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001715
Jesse Hall9492f992017-08-28 12:10:06 -07001716 //@extension("VK_KHR_dedicated_allocation") // 128
1717 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000,
1718 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001,
1719
Jesse Hall8c954d32018-01-17 22:06:20 -08001720 //@extension("VK_EXT_debug_utils") // 129
1721 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
1722 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
1723 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
1724 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
1725 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
1726
Jesse Hall36215a92018-01-18 15:04:37 -08001727 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
1728 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
1729 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
1730 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
1731 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
1732 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
1733 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
1734
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001735 //@extension("VK_EXT_sampler_filter_minmax") // 131
1736 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000,
1737 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001,
1738
Jesse Hall4af6c462018-09-10 09:04:25 -07001739 //@extension("VK_EXT_inline_uniform_block") // 139
1740 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
1741 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
1742 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
1743 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
1744
Jesse Hall77726222017-09-19 14:49:27 -05001745 //@extension("VK_EXT_sample_locations") // 144
1746 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
1747 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
1748 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
1749 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
1750 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
1751
Jesse Hall9492f992017-08-28 12:10:06 -07001752 //@extension("VK_KHR_get_memory_requirements2") // 147
1753 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000,
1754 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001,
1755 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002,
1756 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003,
1757 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004,
1758
Jesse Hall076f95d2017-09-20 11:34:47 -07001759 //@extension("VK_KHR_image_format_list") // 148
1760 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000,
1761
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001762 //@extension("VK_EXT_blend_operation_advanced") // 149
1763 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
1764 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
1765 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
1766
1767 //@extension("VK_NV_fragment_coverage_to_color") // 150
1768 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
1769
Jesse Hall77726222017-09-19 14:49:27 -05001770 //@extension("VK_NV_framebuffer_mixed_samples") // 153
Jesse Hall7ba0ac72017-07-07 17:13:23 -07001771 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
Jesse Hall77726222017-09-19 14:49:27 -05001772
Jesse Hall076f95d2017-09-20 11:34:47 -07001773 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
1774 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000,
1775 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001,
1776 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002,
1777 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003,
1778 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004,
1779 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005,
1780
Jesse Hallf47e8f82018-10-27 23:41:45 -07001781 //@extension("VK_EXT_image_drm_format_modifier") // 159
1782 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
1783 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,
1784 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
1785 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
1786 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
1787 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
1788
Jesse Hall076f95d2017-09-20 11:34:47 -07001789 //@extension("VK_KHR_bind_memory2") // 158
1790 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000,
1791 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001,
1792
Jesse Hall77726222017-09-19 14:49:27 -05001793 //@extension("VK_EXT_validation_cache") // 161
1794 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
1795 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04001796
Jesse Hall72e6a132018-04-06 13:00:44 -07001797 //@extension("VK_EXT_descriptor_indexing") // 162
1798 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000,
1799 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001,
1800 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002,
1801 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003,
1802 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004,
1803
Jesse Hallb5297192018-09-22 20:52:13 +02001804 //@extension("VK_NV_shading_rate_image") // 165
1805 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
1806 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
1807 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
1808 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
1809
Jesse Hallbeea46d2018-12-04 14:38:07 -08001810 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07001811 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
1812 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
1813 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
1814 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
1815 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
1816 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
1817 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
1818 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
1819 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
1820 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
1821 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
Jesse Hallb5297192018-09-22 20:52:13 +02001822
1823 //@extension("VK_NV_representative_fragment_test") // 167
1824 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
1825 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
1826
Daniel Koch09f7bf92017-10-05 00:26:58 -04001827 //@extension("VK_KHR_maintenance3") // 169
1828 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000,
1829 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001,
Jesse Hall8c954d32018-01-17 22:06:20 -08001830
1831 //@extension("VK_EXT_global_priority") // 175
1832 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
1833
Jesse Halla13a3cf2018-07-09 15:51:52 -07001834 //@extension("VK_KHR_8bit_storage") // 178
1835 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000,
1836
Jesse Hall8c954d32018-01-17 22:06:20 -08001837 //@extension("VK_EXT_external_memory_host") // 179
1838 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
1839 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
1840 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
Jesse Hall72e6a132018-04-06 13:00:44 -07001841
Jesse Hall2e6853c2018-10-02 14:05:37 -07001842 //@extension("VK_KHR_shader_atomic_int64") // 181
1843 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000,
1844
Jesse Hallf47e8f82018-10-27 23:41:45 -07001845 //@extension("VK_EXT_calibrated_timestamps") // 185
1846 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
1847
Jesse Hall2e6853c2018-10-02 14:05:37 -07001848 //@extension("VK_KHR_driver_properties") // 197
1849 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000,
1850
Jesse Hall72e6a132018-04-06 13:00:44 -07001851 //@extension("VK_AMD_shader_core_properties") // 186
1852 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
1853
Jesse Halla363a8e2018-11-05 21:18:00 -07001854 //@extension("VK_AMD_memory_overallocation_behavior") // 190
1855 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
1856
Jesse Hall72e6a132018-04-06 13:00:44 -07001857 //@extension("VK_EXT_vertex_attribute_divisor") // 191
1858 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
1859 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001860 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
Jesse Hall115df0c2018-07-30 12:00:59 -07001861
1862 //@extension("VK_NV_device_diagnostic_checkpoints") // 207
1863 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
1864 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
Jesse Hall4af6c462018-09-10 09:04:25 -07001865
1866 //@extension("VK_KHR_vulkan_memory_model") // 212
1867 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000,
Jesse Hall497c46f2018-10-08 12:52:48 -07001868
Jesse Hallf47e8f82018-10-27 23:41:45 -07001869 //@extension("VK_EXT_pci_bus_info") // 213
Jesse Hall89bde782018-11-12 08:06:07 -08001870 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07001871
Jesse Hall497c46f2018-10-08 12:52:48 -07001872 //@extension("VK_FUCHSIA_imagepipe_surface") // 215
1873 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
Jesse Hall89bde782018-11-12 08:06:07 -08001874
Jesse Hall48514722018-12-04 14:44:42 -08001875 //@extension("VK_EXT_fragment_density_map") // 219
1876 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
1877 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
1878 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
1879
Jesse Hall89bde782018-11-12 08:06:07 -08001880 //@extension("VK_EXT_scalar_block_layout")
1881 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000,
1882
1883 //@extension("VK_EXT_separate_stencil_usage") // 247
1884 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001885}
1886
Jesse Hall65ab5522015-11-30 00:07:16 -08001887enum VkSubpassContents {
1888 VK_SUBPASS_CONTENTS_INLINE = 0x00000000,
1889 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001890}
1891
Jesse Hall543a7ff2016-01-08 16:38:30 -08001892enum VkPipelineCacheHeaderVersion {
1893 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1894}
1895
Jesse Hallbd888842015-11-30 21:44:14 -08001896@lastUnused(-11)
Jesse Halld27f6aa2015-08-15 17:58:48 -07001897/// Error and return codes
1898enum VkResult {
1899 // Return codes for successful operation execution (positive values)
Jesse Hallbd888842015-11-30 21:44:14 -08001900 VK_SUCCESS = 0,
1901 VK_NOT_READY = 1,
1902 VK_TIMEOUT = 2,
1903 VK_EVENT_SET = 3,
1904 VK_EVENT_RESET = 4,
1905 VK_INCOMPLETE = 5,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001906
Jesse Hallad250842017-03-10 18:35:38 -08001907 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001908 VK_SUBOPTIMAL_KHR = 1000001003,
Jesse Hall1356b0d2015-11-23 17:24:58 -08001909
Jesse Halld27f6aa2015-08-15 17:58:48 -07001910 // Error codes (negative values)
Jesse Hallbd888842015-11-30 21:44:14 -08001911 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1
1912 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2
1913 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3
1914 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4
1915 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5
1916 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6
1917 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7
1918 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8
1919 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9
1920 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10
1921 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11
Jesse Hall56d386a2016-07-26 15:20:40 -07001922 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12
Jesse Hall1356b0d2015-11-23 17:24:58 -08001923
Ian Elliott28bd2c32017-10-13 09:21:12 -06001924 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04001925 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000
1926 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003
1927
Jesse Hallad250842017-03-10 18:35:38 -08001928 //@extension("VK_KHR_surface") // 1
Jesse Hallbd888842015-11-30 21:44:14 -08001929 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000
Jesse Hallad250842017-03-10 18:35:38 -08001930 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001
Jesse Halla6429252015-11-29 18:59:42 -08001931
Jesse Hallad250842017-03-10 18:35:38 -08001932 //@extension("VK_KHR_swapchain") // 2
Jesse Hallbd888842015-11-30 21:44:14 -08001933 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004
Jesse Hall1356b0d2015-11-23 17:24:58 -08001934
Jesse Hallad250842017-03-10 18:35:38 -08001935 //@extension("VK_KHR_display_swapchain") // 4
Jesse Hallbd888842015-11-30 21:44:14 -08001936 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001
Jesse Hall1356b0d2015-11-23 17:24:58 -08001937
Jesse Hallad250842017-03-10 18:35:38 -08001938 //@extension("VK_EXT_debug_report") // 12
Jesse Hall543a7ff2016-01-08 16:38:30 -08001939 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001
Jesse Hall26763382016-05-20 07:13:52 -07001940
Jesse Hallad250842017-03-10 18:35:38 -08001941 //@extension("VK_NV_glsl_shader") // 13
Jesse Hall26763382016-05-20 07:13:52 -07001942 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000
Jesse Hall77ad05b2017-03-10 22:02:20 -08001943
Jesse Hallad250842017-03-10 18:35:38 -08001944 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08001945 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000
Jesse Hallad250842017-03-10 18:35:38 -08001946
Jesse Hall9492f992017-08-28 12:10:06 -07001947 //@extension("VK_KHR_external_memory") // 73
1948 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003
Jesse Hall72e6a132018-04-06 13:00:44 -07001949
Jesse Hallf47e8f82018-10-27 23:41:45 -07001950 //@extension("VK_EXT_image_drm_format_modifier") // 159
1951 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = 0xC462CCD0, // -1000158000
1952
Jesse Hall72e6a132018-04-06 13:00:44 -07001953 //@extension("VK_EXT_descriptor_indexing") // 162
1954 VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000
Jesse Hallf47e8f82018-10-27 23:41:45 -07001955
1956 //@extension("VK_EXT_global_priority") // 175
1957 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001
Jesse Hall5ae3abb2015-10-08 14:00:22 -07001958}
1959
1960enum VkDynamicState {
1961 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000,
1962 VK_DYNAMIC_STATE_SCISSOR = 0x00000001,
1963 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002,
1964 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003,
1965 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004,
1966 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005,
1967 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006,
1968 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007,
1969 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08001970
1971 //@extension("VK_NV_clip_space_w_scaling") // 88
1972 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
1973
1974 //@extension("VK_EXT_discard_rectangles") // 100
1975 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
Jesse Hall77726222017-09-19 14:49:27 -05001976
1977 //@extension("VK_EXT_sample_locations") // 144
1978 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
Jesse Hallb5297192018-09-22 20:52:13 +02001979
1980 //@extension("VK_NV_shading_rate_image") // 165
1981 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
1982 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
1983
1984 //@extension("VK_NV_scissor_exclusive") // 206
1985 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07001986}
1987
Jesse Hall05556b12017-05-18 17:40:25 -07001988enum VkObjectType {
1989 VK_OBJECT_TYPE_UNKNOWN = 0,
1990 VK_OBJECT_TYPE_INSTANCE = 1,
1991 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1992 VK_OBJECT_TYPE_DEVICE = 3,
1993 VK_OBJECT_TYPE_QUEUE = 4,
1994 VK_OBJECT_TYPE_SEMAPHORE = 5,
1995 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1996 VK_OBJECT_TYPE_FENCE = 7,
1997 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1998 VK_OBJECT_TYPE_BUFFER = 9,
1999 VK_OBJECT_TYPE_IMAGE = 10,
2000 VK_OBJECT_TYPE_EVENT = 11,
2001 VK_OBJECT_TYPE_QUERY_POOL = 12,
2002 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
2003 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
2004 VK_OBJECT_TYPE_SHADER_MODULE = 15,
2005 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
2006 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
2007 VK_OBJECT_TYPE_RENDER_PASS = 18,
2008 VK_OBJECT_TYPE_PIPELINE = 19,
2009 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
2010 VK_OBJECT_TYPE_SAMPLER = 21,
2011 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
2012 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
2013 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
2014 VK_OBJECT_TYPE_COMMAND_POOL = 25,
2015
Ian Elliott28bd2c32017-10-13 09:21:12 -06002016 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002017 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
2018 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
2019
Jesse Hall05556b12017-05-18 17:40:25 -07002020 //@extension("VK_KHR_surface") // 1
2021 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
2022
2023 //@extension("VK_KHR_swapchain") // 2
2024 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
2025
2026 //@extension("VK_KHR_display") // 3
2027 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
2028 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
2029
2030 //@extension("VK_KHR_debug_report") // 12
2031 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
2032
2033 //@extension("VK_KHR_descriptor_update_template") // 86
2034 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000,
2035
2036 //@extension("VK_NVX_device_generated_commands") // 87
2037 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000,
2038 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001,
Jesse Hall77726222017-09-19 14:49:27 -05002039
Jesse Hall8c954d32018-01-17 22:06:20 -08002040 //@extension("VK_EXT_debug_utils") // 129
2041 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
2042
Jesse Hall076f95d2017-09-20 11:34:47 -07002043 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2044 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000,
2045
Jesse Hall77726222017-09-19 14:49:27 -05002046 //@extension("VK_EXT_validation_cache") // 161
2047 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
Jesse Hallb5297192018-09-22 20:52:13 +02002048
Jesse Hallbeea46d2018-12-04 14:38:07 -08002049 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002050 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
Jesse Hall05556b12017-05-18 17:40:25 -07002051}
2052
Daniel Koch09f7bf92017-10-05 00:26:58 -04002053
Ian Elliott28bd2c32017-10-13 09:21:12 -06002054//@vulkan1_1 enums
Daniel Koch09f7bf92017-10-05 00:26:58 -04002055
2056enum VkPointClippingBehavior {
2057 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
2058 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
2059}
2060
2061enum VkTessellationDomainOrigin {
2062 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
2063 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
2064}
2065
2066enum VkSamplerYcbcrModelConversion {
2067 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
2068 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
2069 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
2070 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
2071 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
2072}
2073
2074enum VkSamplerYcbcrRange {
2075 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
2076 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
2077}
2078
2079enum VkChromaLocation {
2080 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
2081 VK_CHROMA_LOCATION_MIDPOINT = 1,
2082}
2083
2084enum VkDescriptorUpdateTemplateType {
2085 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
2086 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2087}
2088
Jesse Halla13a3cf2018-07-09 15:51:52 -07002089enum VkVendorId {
2090 VK_VENDOR_ID_VIV = 0x10001,
2091 VK_VENDOR_ID_VSI = 0x10002,
2092 VK_VENDOR_ID_KAZAN = 0x10003,
2093}
2094
Jesse Hallad250842017-03-10 18:35:38 -08002095@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002096enum VkPresentModeKHR {
2097 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000,
2098 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001,
2099 VK_PRESENT_MODE_FIFO_KHR = 0x00000002,
Jesse Hall03b6fe12015-11-24 12:44:21 -08002100 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002101
Jesse Hall05556b12017-05-18 17:40:25 -07002102 //@extension("VK_KHR_shared_presentable_image") // 112
Jesse Hall77ad05b2017-03-10 22:02:20 -08002103 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
2104 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
Michael Lentine88594d72015-11-12 12:49:45 -08002105}
2106
Jesse Hallad250842017-03-10 18:35:38 -08002107@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08002108enum VkColorSpaceKHR {
Daniel Koch09f7bf92017-10-05 00:26:58 -04002109 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002110
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002111 //@extension("VK_EXT_swapchain_colorspace") // 105
2112 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
2113 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
2114 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003,
2115 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
2116 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
2117 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
2118 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
2119 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
2120 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
2121 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
Courtney Goeltzenleuchter7f558ed2017-01-23 17:15:24 -07002122 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
2123 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002124 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
Jesse Hall77726222017-09-19 14:49:27 -05002125 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
Michael Lentine88594d72015-11-12 12:49:45 -08002126}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002127
Jesse Hallad250842017-03-10 18:35:38 -08002128@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08002129enum VkDebugReportObjectTypeEXT {
2130 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
2131 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
2132 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
2133 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
2134 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
2135 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
2136 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
2137 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
2138 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
2139 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
2140 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
2141 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
2142 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
2143 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
2144 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
2145 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
2146 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
2147 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
2148 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
2149 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
2150 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
2151 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
2152 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
2153 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
2154 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
2155 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
2156 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
2157 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002158 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
Chris Forbes289cb792016-12-30 15:03:55 +13002159 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
2160 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
2161 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31,
2162 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32,
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002163
Jesse Hall77726222017-09-19 14:49:27 -05002164 //extension("VK_EXT_validation_cache") // 161
Jesse Hall8c954d32018-01-17 22:06:20 -08002165 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
Jesse Hall77726222017-09-19 14:49:27 -05002166
Jesse Hallf5ad48b2017-03-20 13:09:19 -07002167 //extension("VK_KHR_descriptor_update_template") // 86
2168 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000,
Jesse Hall77726222017-09-19 14:49:27 -05002169
Jesse Hall076f95d2017-09-20 11:34:47 -07002170 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2171 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000,
Jesse Hallb5297192018-09-22 20:52:13 +02002172
Jesse Hallbeea46d2018-12-04 14:38:07 -08002173 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002174 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
Jesse Hall715b86a2016-01-16 16:34:29 -08002175}
2176
Jesse Hallad250842017-03-10 18:35:38 -08002177@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07002178enum VkRasterizationOrderAMD {
2179 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
2180 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
2181}
2182
Jesse Hall8c954d32018-01-17 22:06:20 -08002183@extension("VK_AMD_shader_info") // 43
2184enum VkShaderInfoTypeAMD {
2185 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
2186 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
2187 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
2188}
2189
Jesse Hallad250842017-03-10 18:35:38 -08002190@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13002191enum VkValidationCheckEXT {
2192 VK_VALIDATION_CHECK_ALL_EXT = 0,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002193 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
Chris Forbes289cb792016-12-30 15:03:55 +13002194}
2195
Jesse Hallad250842017-03-10 18:35:38 -08002196@extension("VK_KHR_descriptor_update_template") // 86
2197enum VkDescriptorUpdateTemplateTypeKHR {
2198 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0,
2199 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
2200}
2201
2202@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002203enum VkIndirectCommandsTokenTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002204 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0,
2205 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1,
2206 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2,
2207 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3,
2208 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4,
2209 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5,
2210 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6,
2211 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7,
Chris Forbes289cb792016-12-30 15:03:55 +13002212}
2213
Jesse Hallad250842017-03-10 18:35:38 -08002214@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002215enum VkObjectEntryTypeNVX {
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002216 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0,
2217 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1,
2218 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2,
2219 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3,
2220 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4,
Chris Forbes289cb792016-12-30 15:03:55 +13002221}
Jesse Hall715b86a2016-01-16 16:34:29 -08002222
Jesse Hallad250842017-03-10 18:35:38 -08002223@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002224enum VkDisplayPowerStateEXT {
2225 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
2226 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
2227 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
2228}
2229
Jesse Hallad250842017-03-10 18:35:38 -08002230@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002231enum VkDeviceEventTypeEXT {
2232 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
2233}
2234
Jesse Hallad250842017-03-10 18:35:38 -08002235@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08002236enum VkDisplayEventTypeEXT {
2237 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
2238}
2239
Jesse Hallad250842017-03-10 18:35:38 -08002240@extension("VK_NV_viewport_swizzle") // 99
2241enum VkViewportCoordinateSwizzleNV {
2242 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
2243 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
2244 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
2245 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
2246 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
2247 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
2248 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
2249 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
2250}
2251
2252@extension("VK_EXT_discard_rectangles") // 100
2253enum VkDiscardRectangleModeEXT {
2254 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
2255 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
2256}
2257
Jesse Hall8c954d32018-01-17 22:06:20 -08002258@extension("VK_EXT_conservative_rasterization") // 102
2259enum VkConservativeRasterizationModeEXT {
2260 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
2261 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
2262 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
2263}
2264
Jesse Hall076f95d2017-09-20 11:34:47 -07002265@extension("VK_KHR_maintenance2") // 118
2266enum VkPointClippingBehaviorKHR {
2267 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0,
2268 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1,
2269}
2270
2271@extension("VK_KHR_maintenance2") // 118
2272enum VkTessellationDomainOriginKHR {
2273 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0,
2274 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1,
2275}
2276
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002277@extension("VK_EXT_sampler_filter_minmax") // 131
2278enum VkSamplerReductionModeEXT {
2279 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0,
2280 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1,
2281 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2,
2282}
2283
2284@extension("VK_EXT_blend_operation_advanced") // 149
2285enum VkBlendOverlapEXT {
2286 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
2287 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
2288 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
2289}
2290
2291@extension("VK_NV_framebuffer_mixed_samples") // 153
2292enum VkCoverageModulationModeNV {
2293 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
2294 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
2295 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
2296 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
2297}
2298
Jesse Hall076f95d2017-09-20 11:34:47 -07002299@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2300enum VkSamplerYcbcrModelConversionKHR {
2301 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0,
2302 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1,
2303 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2,
2304 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3,
2305 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4,
2306}
2307
2308@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2309enum VkSamplerYcbcrRangeKHR {
2310 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0,
2311 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1,
2312}
2313
2314@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2315enum VkChromaLocationKHR {
2316 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0,
2317 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1,
2318}
2319
Jesse Hall77726222017-09-19 14:49:27 -05002320@extension("VK_EXT_validation_cache") // 161
2321enum VkValidationCacheHeaderVersionEXT {
2322 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
2323}
2324
Jesse Hallb5297192018-09-22 20:52:13 +02002325@extension("VK_NV_shading_rate_image") // 165
2326enum VkShadingRatePaletteEntryNV {
2327 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
2328 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
2329 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
2330 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
2331 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
2332 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
2333 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
2334 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
2335 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
2336 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
2337 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
2338 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
2339}
2340
2341@extension("VK_NV_shading_rate_image") // 165
2342enum VkCoarseSampleOrderTypeNV {
2343 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
2344 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
2345 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
2346 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
2347}
2348
Jesse Hallbeea46d2018-12-04 14:38:07 -08002349@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002350enum VkRayTracingShaderGroupTypeNV {
2351 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0,
2352 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1,
2353 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2,
Jesse Hallb5297192018-09-22 20:52:13 +02002354}
2355
Jesse Hallbeea46d2018-12-04 14:38:07 -08002356@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002357enum VkGeometryTypeNV {
2358 VK_GEOMETRY_TYPE_TRIANGLES_NV = 0,
2359 VK_GEOMETRY_TYPE_AABBS_NV = 1,
Jesse Hallb5297192018-09-22 20:52:13 +02002360}
2361
Jesse Hallbeea46d2018-12-04 14:38:07 -08002362@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002363enum VkAccelerationStructureTypeNV {
2364 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0,
2365 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1,
2366}
2367
Jesse Hallbeea46d2018-12-04 14:38:07 -08002368@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002369enum VkCopyAccelerationStructureModeNV {
2370 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0,
2371 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1,
2372}
2373
Jesse Hallbeea46d2018-12-04 14:38:07 -08002374@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002375enum VkAccelerationStructureMemoryRequirementsTypeNV {
2376 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
2377 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
2378 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
Jesse Hallb5297192018-09-22 20:52:13 +02002379}
2380
Jesse Hall8c954d32018-01-17 22:06:20 -08002381@extension("VK_EXT_global_priority") // 175
2382enum VkQueueGlobalPriorityEXT {
2383 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
2384 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
2385 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
2386 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024,
2387}
2388
Jesse Hallf47e8f82018-10-27 23:41:45 -07002389@extension("VK_EXT_calibrated_timestamps") // 185
2390enum VkTimeDomainEXT {
2391 VK_TIME_DOMAIN_DEVICE_EXT = 0,
2392 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
2393 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
2394 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3,
2395}
2396
Jesse Halla363a8e2018-11-05 21:18:00 -07002397@extension("VK_AMD_memory_overallocation_behavior") // 190
2398enum VkMemoryOverallocationBehaviorAMD {
2399 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
2400 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
2401 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
2402}
2403
Jesse Hall2e6853c2018-10-02 14:05:37 -07002404@extension("VK_KHR_driver_properties") // 197
2405enum VkDriverIdKHR {
2406 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1,
2407 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2,
2408 VK_DRIVER_ID_MESA_RADV_KHR = 3,
2409 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4,
2410 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5,
2411 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6,
2412 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7,
2413 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8,
2414 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9,
Jesse Hall89bde782018-11-12 08:06:07 -08002415 VK_DRIVER_ID_GOOGLE_PASTEL_KHR = 10,
Jesse Hall2e6853c2018-10-02 14:05:37 -07002416}
2417
Jesse Halld27f6aa2015-08-15 17:58:48 -07002418/////////////////
2419// Bitfields //
2420/////////////////
2421
Jesse Halld27f6aa2015-08-15 17:58:48 -07002422/// Queue capabilities
Jesse Halld8bade02015-11-24 10:24:18 -08002423type VkFlags VkQueueFlags
2424bitfield VkQueueFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002425 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations
2426 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations
Jesse Hall65ab5522015-11-30 00:07:16 -08002427 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations
Jesse Hallb00daad2015-11-29 19:46:20 -08002428 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations
Daniel Koch09f7bf92017-10-05 00:26:58 -04002429
Ian Elliott28bd2c32017-10-13 09:21:12 -06002430 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002431 VK_QUEUE_PROTECTED_BIT = 0x00000010,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002432}
2433
2434/// Memory properties passed into vkAllocMemory().
Jesse Halld8bade02015-11-24 10:24:18 -08002435type VkFlags VkMemoryPropertyFlags
2436bitfield VkMemoryPropertyFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002437 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2438 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2439 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2440 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2441 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002442
Ian Elliott28bd2c32017-10-13 09:21:12 -06002443 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002444 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002445}
2446
2447/// Memory heap flags
Jesse Halld8bade02015-11-24 10:24:18 -08002448type VkFlags VkMemoryHeapFlags
2449bitfield VkMemoryHeapFlagBits {
Jesse Halld1af8122015-11-29 23:50:38 -08002450 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08002451
Ian Elliott28bd2c32017-10-13 09:21:12 -06002452 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002453 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2454
2455 //@extension("VK_KHR_device_group_creation") // 71
2456 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002457}
2458
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08002459/// Access flags
2460type VkFlags VkAccessFlags
2461bitfield VkAccessFlagBits {
2462 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2463 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2464 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2465 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2466 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2467 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2468 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2469 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2470 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2471 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2472 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2473 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2474 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2475 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2476 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2477 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2478 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
Chris Forbes289cb792016-12-30 15:03:55 +13002479
Jesse Hallad250842017-03-10 18:35:38 -08002480 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002481 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000,
Chris Forbes289cb792016-12-30 15:03:55 +13002482 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002483
2484 //@extension("VK_EXT_blend_operation_advanced") // 149
2485 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002486
2487 //@extension("VK_EXT_conditional_rendering") // 82
2488 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
Jesse Hallb5297192018-09-22 20:52:13 +02002489
2490 //@extension("VK_NV_shading_rate_image") // 165
2491 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000,
2492
Jesse Hallbeea46d2018-12-04 14:38:07 -08002493 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002494 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000,
2495 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002496
Jesse Hall48514722018-12-04 14:44:42 -08002497 //@extension("VK_EXT_fragment_density_map") // 219
2498 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2499
Jesse Hallf47e8f82018-10-27 23:41:45 -07002500 //@extension("VK_EXT_transform_feedback") // 29
2501 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2502 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2503 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002504}
2505
2506/// Buffer usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002507type VkFlags VkBufferUsageFlags
2508bitfield VkBufferUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002509 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2510 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002511 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO
2512 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO
2513 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO
2514 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO
2515 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer)
2516 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO)
2517 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 -07002518
2519 //@extension("VK_EXT_conditional_rendering") // 82
2520 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
Jesse Hallb5297192018-09-22 20:52:13 +02002521
Jesse Hallbeea46d2018-12-04 14:38:07 -08002522 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002523 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002524
2525 //@extension("VK_EXT_transform_feedback") // 29
2526 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2527 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002528}
2529
2530/// Buffer creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002531type VkFlags VkBufferCreateFlags
2532bitfield VkBufferCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002533 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002534 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency
2535 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 -04002536
Ian Elliott28bd2c32017-10-13 09:21:12 -06002537 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002538 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002539}
2540
2541/// Shader stage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002542type VkFlags VkShaderStageFlags
2543bitfield VkShaderStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002544 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
Jesse Hallae38f732015-11-19 21:32:50 -08002545 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2546 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002547 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2548 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2549 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
Jesse Hallc7467b72015-11-29 21:05:26 -08002550 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002551
2552 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
Jesse Hallb5297192018-09-22 20:52:13 +02002553
Jesse Hallbeea46d2018-12-04 14:38:07 -08002554 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002555 VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100,
2556 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200,
2557 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400,
2558 VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800,
2559 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000,
2560 VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000,
Jesse Hallb5297192018-09-22 20:52:13 +02002561
2562 //@extension("VK_NV_mesh_shader") // 203
2563 VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040,
2564 VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002565}
2566
Jesse Hallfbf97b02015-11-20 14:17:03 -08002567/// Descriptor pool create flags
Jesse Halld8bade02015-11-24 10:24:18 -08002568type VkFlags VkDescriptorPoolCreateFlags
2569bitfield VkDescriptorPoolCreateFlagBits {
Jesse Hallfbf97b02015-11-20 14:17:03 -08002570 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002571
2572 //@extension("VK_EXT_descriptor_indexing") // 162
2573 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002,
Jesse Hallfbf97b02015-11-20 14:17:03 -08002574}
2575
2576/// Descriptor pool reset flags
Jesse Halld8bade02015-11-24 10:24:18 -08002577type VkFlags VkDescriptorPoolResetFlags
Jesse Halla6429252015-11-29 18:59:42 -08002578//bitfield VkDescriptorPoolResetFlagBits {
2579//}
Jesse Hallfbf97b02015-11-20 14:17:03 -08002580
Jesse Halld27f6aa2015-08-15 17:58:48 -07002581/// Image usage flags
Jesse Halld8bade02015-11-24 10:24:18 -08002582type VkFlags VkImageUsageFlags
2583bitfield VkImageUsageFlagBits {
Jesse Hall3fbc8562015-11-29 22:10:52 -08002584 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations
2585 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations
Jesse Halld27f6aa2015-08-15 17:58:48 -07002586 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2587 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type)
2588 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002589 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment
Jesse Halld27f6aa2015-08-15 17:58:48 -07002590 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering
2591 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment
Jesse Hallb5297192018-09-22 20:52:13 +02002592
2593 //@extension("VK_NV_shading_rate_image") // 165
2594 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100,
Jesse Hall48514722018-12-04 14:44:42 -08002595
2596 //@extension("VK_EXT_fragment_density_map") // 219
2597 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002598}
2599
2600/// Image creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002601type VkFlags VkImageCreateFlags
2602bitfield VkImageCreateFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002603 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing
Jesse Halld27f6aa2015-08-15 17:58:48 -07002604 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency
2605 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 -07002606 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image
2607 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 -08002608
Ian Elliott28bd2c32017-10-13 09:21:12 -06002609 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002610 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
Jesse Hall8c954d32018-01-17 22:06:20 -08002611 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002612 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2613 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002614 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002615 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2616 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
Daniel Koch09f7bf92017-10-05 00:26:58 -04002617
Jesse Hallad250842017-03-10 18:35:38 -08002618 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002619 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020,
Jesse Hallad250842017-03-10 18:35:38 -08002620
Daniel Koch09f7bf92017-10-05 00:26:58 -04002621 //@extension("VK_KHR_device_group") // 61
2622 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040,
Jesse Hall77726222017-09-19 14:49:27 -05002623
Jesse Hall076f95d2017-09-20 11:34:47 -07002624 //@extension("VK_KHR_maintenance2") // 118
2625 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080,
2626 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100,
2627
2628 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2629 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200,
2630
2631 //@extension("VK_KHR_bind_memory2") // 158
2632 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400,
Ian Elliott28bd2c32017-10-13 09:21:12 -06002633
2634 //@extension("VK_EXT_sample_locations") // 144
2635 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
Jesse Hallb5297192018-09-22 20:52:13 +02002636
2637 //@extension("VK_NV_corner_sampled_image") // 51
2638 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
Jesse Hall48514722018-12-04 14:44:42 -08002639
2640 //@extension("VK_EXT_fragment_density_map") // 219
2641 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002642}
2643
Jesse Hallb00daad2015-11-29 19:46:20 -08002644/// Image view creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002645type VkFlags VkImageViewCreateFlags
Jesse Hall48514722018-12-04 14:44:42 -08002646bitfield VkImageViewCreateFlagBits {
2647 //@extension("VK_EXT_fragment_density_map") // 219
2648 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
2649}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002650
2651/// Pipeline creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002652type VkFlags VkPipelineCreateFlags
2653bitfield VkPipelineCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002654 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2655 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2656 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08002657
Ian Elliott28bd2c32017-10-13 09:21:12 -06002658 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002659 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2660 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010,
2661
2662 //@extension("VK_KHR_device_group") // 61
2663 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008,
2664 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02002665
Jesse Hallbeea46d2018-12-04 14:38:07 -08002666 //@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07002667 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002668}
2669
Jesse Hall65ab5522015-11-30 00:07:16 -08002670/// Color component flags
2671type VkFlags VkColorComponentFlags
2672bitfield VkColorComponentFlagBits {
2673 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2674 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2675 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2676 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002677}
2678
2679/// Fence creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002680type VkFlags VkFenceCreateFlags
2681bitfield VkFenceCreateFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002682 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2683}
2684
2685/// Semaphore creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002686type VkFlags VkSemaphoreCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002687//bitfield VkSemaphoreCreateFlagBits {
2688//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002689
2690/// Format capability flags
Jesse Halld8bade02015-11-24 10:24:18 -08002691type VkFlags VkFormatFeatureFlags
2692bitfield VkFormatFeatureFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002693 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types)
2694 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type)
2695 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images
2696 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs)
2697 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs)
2698 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers
2699 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs)
2700 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images
2701 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images
2702 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images
Jesse Hall3fbc8562015-11-29 22:10:52 -08002703 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage
2704 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 -08002705 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
Jesse Hall26763382016-05-20 07:13:52 -07002706
Ian Elliott28bd2c32017-10-13 09:21:12 -06002707 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002708 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2709 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2710 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2711 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2712 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2713 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2714 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2715 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2716 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2717
Jesse Hallad250842017-03-10 18:35:38 -08002718 //@extension("VK_IMG_filter_cubic") // 16
Jesse Hall26763382016-05-20 07:13:52 -07002719 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000,
Jesse Hall77ad05b2017-03-10 22:02:20 -08002720
Jesse Hallad250842017-03-10 18:35:38 -08002721 //@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08002722 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000,
2723 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000,
Jesse Hall7ba0ac72017-07-07 17:13:23 -07002724
2725 //@extension("VK_EXT_sampler_filter_minmax") // 131
2726 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000,
Jesse Hall076f95d2017-09-20 11:34:47 -07002727
2728 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2729 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000,
2730 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000,
2731 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000,
2732 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000,
2733 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000,
2734 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000,
2735 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002736}
2737
2738/// Query control flags
Jesse Halld8bade02015-11-24 10:24:18 -08002739type VkFlags VkQueryControlFlags
2740bitfield VkQueryControlFlagBits {
Jesse Hall65ab5522015-11-30 00:07:16 -08002741 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002742}
2743
2744/// Query result flags
Jesse Halld8bade02015-11-24 10:24:18 -08002745type VkFlags VkQueryResultFlags
2746bitfield VkQueryResultFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002747 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values
2748 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy
2749 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written
2750 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available
2751}
2752
2753/// Shader module creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002754type VkFlags VkShaderModuleCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002755//bitfield VkShaderModuleCreateFlagBits {
2756//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002757
Jesse Halld27f6aa2015-08-15 17:58:48 -07002758/// Event creation flags
Jesse Halld8bade02015-11-24 10:24:18 -08002759type VkFlags VkEventCreateFlags
Jesse Halla6429252015-11-29 18:59:42 -08002760//bitfield VkEventCreateFlagBits {
2761//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002762
Jesse Halla15a4bf2015-11-19 22:48:02 -08002763/// Command buffer usage flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002764type VkFlags VkCommandBufferUsageFlags
2765bitfield VkCommandBufferUsageFlagBits {
2766 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2767 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2768 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002769}
2770
2771/// Pipeline statistics flags
Jesse Halld8bade02015-11-24 10:24:18 -08002772type VkFlags VkQueryPipelineStatisticFlags
2773bitfield VkQueryPipelineStatisticFlagBits {
Jesse Hallae38f732015-11-19 21:32:50 -08002774 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional
2775 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional
2776 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional
2777 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional
2778 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional
2779 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional
2780 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional
2781 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional
2782 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional
2783 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional
2784 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional
Jesse Halld27f6aa2015-08-15 17:58:48 -07002785}
2786
2787/// Memory mapping flags
Jesse Halld8bade02015-11-24 10:24:18 -08002788type VkFlags VkMemoryMapFlags
Jesse Halla6429252015-11-29 18:59:42 -08002789//bitfield VkMemoryMapFlagBits {
2790//}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002791
2792/// Bitfield of image aspects
Jesse Halld8bade02015-11-24 10:24:18 -08002793type VkFlags VkImageAspectFlags
2794bitfield VkImageAspectFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002795 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2796 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2797 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2798 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
Jesse Hall076f95d2017-09-20 11:34:47 -07002799
Ian Elliott28bd2c32017-10-13 09:21:12 -06002800 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002801 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2802 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2803 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2804
Jesse Hall076f95d2017-09-20 11:34:47 -07002805 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157
2806 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010,
2807 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020,
2808 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002809
2810 //@extension("VK_EXT_transform_feedback") // 29
2811 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2812 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2813 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2814 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002815}
2816
2817/// Sparse memory bind flags
Jesse Halld8bade02015-11-24 10:24:18 -08002818type VkFlags VkSparseMemoryBindFlags
Jesse Hall091ed9e2015-11-30 00:55:29 -08002819bitfield VkSparseMemoryBindFlagBits {
2820 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2821}
Jesse Halld27f6aa2015-08-15 17:58:48 -07002822
2823/// Sparse image memory requirements flags
Jesse Halld8bade02015-11-24 10:24:18 -08002824type VkFlags VkSparseImageFormatFlags
2825bitfield VkSparseImageFormatFlagBits {
Jesse Hallb00daad2015-11-29 19:46:20 -08002826 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices
2827 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.
2828 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size
Jesse Halld27f6aa2015-08-15 17:58:48 -07002829}
2830
2831/// Pipeline stages
Jesse Halld8bade02015-11-24 10:24:18 -08002832type VkFlags VkPipelineStageFlags
2833bitfield VkPipelineStageFlagBits {
Jesse Halld27f6aa2015-08-15 17:58:48 -07002834 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed
2835 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch
2836 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch
2837 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading
Jesse Hallae38f732015-11-19 21:32:50 -08002838 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading
2839 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading
Jesse Halld27f6aa2015-08-15 17:58:48 -07002840 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading
2841 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading
2842 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests
2843 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests
2844 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes
2845 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading
2846 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations
Jesse Hall543a7ff2016-01-08 16:38:30 -08002847 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2848 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency
Jesse Halld27f6aa2015-08-15 17:58:48 -07002849
Jesse Hall543a7ff2016-01-08 16:38:30 -08002850 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline
2851 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands
Chris Forbes289cb792016-12-30 15:03:55 +13002852
Jesse Hallad250842017-03-10 18:35:38 -08002853 //@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13002854 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000,
Jesse Halla13a3cf2018-07-09 15:51:52 -07002855
2856 //@extension("VK_EXT_conditional_rendering") // 82
2857 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
Jesse Hallb5297192018-09-22 20:52:13 +02002858
Jesse Hallb5297192018-09-22 20:52:13 +02002859 //@extension("VK_NV_mesh_shader") // 203
2860 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000,
2861 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000,
Jesse Hallf47e8f82018-10-27 23:41:45 -07002862
Jesse Hall48514722018-12-04 14:44:42 -08002863 //@extension("VK_NV_ray_tracing") // 166
2864 VK_PIPELINE_STAGE_RAY_TRACING_BIT_NV = 0x00200000,
2865
2866 //@extension("VK_NV_shading_rate_image") // 165
2867 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000,
2868
2869 //@extension("VK_EXT_fragment_density_map") // 219
2870 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2871
Jesse Hallf47e8f82018-10-27 23:41:45 -07002872 //@extension("VK_EXT_transform_feedback") // 29
2873 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
Jesse Hallbeea46d2018-12-04 14:38:07 -08002874
2875 //@extension("VK_NV_ray_tracing") // 166
2876 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002877}
2878
2879/// Render pass attachment description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002880type VkFlags VkAttachmentDescriptionFlags
2881bitfield VkAttachmentDescriptionFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002882 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 -07002883}
2884
2885/// Subpass description flags
Jesse Halld8bade02015-11-24 10:24:18 -08002886type VkFlags VkSubpassDescriptionFlags
2887bitfield VkSubpassDescriptionFlagBits {
Jesse Hallad250842017-03-10 18:35:38 -08002888 //@extension("VK_NVX_multiview_per_view_attributes") // 98
2889 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
2890 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002891}
2892
2893/// Command pool creation flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002894type VkFlags VkCommandPoolCreateFlags
2895bitfield VkCommandPoolCreateFlagBits {
2896 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime
2897 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually
Daniel Koch09f7bf92017-10-05 00:26:58 -04002898
Ian Elliott28bd2c32017-10-13 09:21:12 -06002899 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002900 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002901}
2902
2903/// Command pool reset flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08002904type VkFlags VkCommandPoolResetFlags
2905bitfield VkCommandPoolResetFlagBits {
2906 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool
Jesse Halld27f6aa2015-08-15 17:58:48 -07002907}
2908
Jesse Hall3fbc8562015-11-29 22:10:52 -08002909type VkFlags VkCommandBufferResetFlags
2910bitfield VkCommandBufferResetFlagBits {
2911 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002912}
2913
Jesse Halld8bade02015-11-24 10:24:18 -08002914type VkFlags VkSampleCountFlags
2915bitfield VkSampleCountFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002916 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2917 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2918 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2919 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2920 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2921 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2922 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2923}
2924
Jesse Halld8bade02015-11-24 10:24:18 -08002925type VkFlags VkStencilFaceFlags
2926bitfield VkStencilFaceFlagBits {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07002927 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face
2928 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face
Jesse Hallc7467b72015-11-29 21:05:26 -08002929 VK_STENCIL_FRONT_AND_BACK = 0x00000003,
Jesse Halld27f6aa2015-08-15 17:58:48 -07002930}
2931
Jesse Halla6429252015-11-29 18:59:42 -08002932/// Instance creation flags
2933type VkFlags VkInstanceCreateFlags
2934//bitfield VkInstanceCreateFlagBits {
2935//}
2936
2937/// Device creation flags
2938type VkFlags VkDeviceCreateFlags
2939//bitfield VkDeviceCreateFlagBits {
2940//}
2941
2942/// Device queue creation flags
2943type VkFlags VkDeviceQueueCreateFlags
Ian Elliott28bd2c32017-10-13 09:21:12 -06002944@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04002945bitfield VkDeviceQueueCreateFlagBits {
2946 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2947}
Jesse Halla6429252015-11-29 18:59:42 -08002948
2949/// Query pool creation flags
2950type VkFlags VkQueryPoolCreateFlags
2951//bitfield VkQueryPoolCreateFlagBits {
2952//}
2953
2954/// Buffer view creation flags
2955type VkFlags VkBufferViewCreateFlags
2956//bitfield VkBufferViewCreateFlagBits {
2957//}
2958
2959/// Pipeline cache creation flags
2960type VkFlags VkPipelineCacheCreateFlags
2961//bitfield VkPipelineCacheCreateFlagBits {
2962//}
2963
2964/// Pipeline shader stage creation flags
2965type VkFlags VkPipelineShaderStageCreateFlags
2966//bitfield VkPipelineShaderStageCreateFlagBits {
2967//}
2968
2969/// Descriptor set layout creation flags
2970type VkFlags VkDescriptorSetLayoutCreateFlags
Jesse Hallad250842017-03-10 18:35:38 -08002971bitfield VkDescriptorSetLayoutCreateFlagBits {
2972 //@extension("VK_KHR_push_descriptor") // 81
2973 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001,
Jesse Hall72e6a132018-04-06 13:00:44 -07002974
2975 //@extension("VK_EXT_descriptor_indexing") // 162
2976 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08002977}
Jesse Halla6429252015-11-29 18:59:42 -08002978
2979/// Pipeline vertex input state creation flags
2980type VkFlags VkPipelineVertexInputStateCreateFlags
2981//bitfield VkPipelineVertexInputStateCreateFlagBits {
2982//}
2983
2984/// Pipeline input assembly state creation flags
2985type VkFlags VkPipelineInputAssemblyStateCreateFlags
2986//bitfield VkPipelineInputAssemblyStateCreateFlagBits {
2987//}
2988
2989/// Tessellation state creation flags
2990type VkFlags VkPipelineTessellationStateCreateFlags
2991//bitfield VkPipelineTessellationStateCreateFlagBits {
2992//}
2993
2994/// Viewport state creation flags
2995type VkFlags VkPipelineViewportStateCreateFlags
2996//bitfield VkPipelineViewportStateCreateFlagBits {
2997//}
2998
Jesse Hall3fbc8562015-11-29 22:10:52 -08002999/// Rasterization state creation flags
3000type VkFlags VkPipelineRasterizationStateCreateFlags
3001//bitfield VkPipelineRasterizationStateCreateFlagBits {
Jesse Halla6429252015-11-29 18:59:42 -08003002//}
3003
3004/// Multisample state creation flags
3005type VkFlags VkPipelineMultisampleStateCreateFlags
3006//bitfield VkPipelineMultisampleStateCreateFlagBits {
3007//}
3008
3009/// Color blend state creation flags
3010type VkFlags VkPipelineColorBlendStateCreateFlags
3011//bitfield VkPipelineColorBlendStateCreateFlagBits {
3012//}
3013
3014/// Depth/stencil state creation flags
3015type VkFlags VkPipelineDepthStencilStateCreateFlags
3016//bitfield VkPipelineDepthStencilStateCreateFlagBits {
3017//}
3018
3019/// Dynamic state creation flags
3020type VkFlags VkPipelineDynamicStateCreateFlags
3021//bitfield VkPipelineDynamicStateCreateFlagBits {
3022//}
3023
3024/// Pipeline layout creation flags
3025type VkFlags VkPipelineLayoutCreateFlags
3026//bitfield VkPipelineLayoutCreateFlagBits {
3027//}
3028
3029/// Sampler creation flags
3030type VkFlags VkSamplerCreateFlags
Jesse Hall48514722018-12-04 14:44:42 -08003031bitfield VkSamplerCreateFlagBits {
3032 //@extension("VK_EXT_fragment_density_map") // 219
3033 VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
3034 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
3035}
Jesse Halla6429252015-11-29 18:59:42 -08003036
3037/// Render pass creation flags
3038type VkFlags VkRenderPassCreateFlags
3039//bitfield VkRenderPassCreateFlagBits {
3040//}
3041
3042/// Framebuffer creation flags
3043type VkFlags VkFramebufferCreateFlags
3044//bitfield VkFramebufferCreateFlagBits {
3045//}
3046
Jesse Halldc6d36c2015-11-29 19:12:15 -08003047/// Dependency flags
3048type VkFlags VkDependencyFlags
3049bitfield VkDependencyFlagBits {
3050 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003051
Ian Elliott28bd2c32017-10-13 09:21:12 -06003052 //@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003053 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
3054 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
Jesse Hallad250842017-03-10 18:35:38 -08003055
Daniel Koch09f7bf92017-10-05 00:26:58 -04003056 //@extension("VK_KHR_multiview") // 54
3057 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002,
3058
3059 //@extension("VK_KHR_device_group") // 61
3060 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004,
Jesse Halldc6d36c2015-11-29 19:12:15 -08003061}
3062
Jesse Hallc7467b72015-11-29 21:05:26 -08003063/// Cull mode flags
3064type VkFlags VkCullModeFlags
3065bitfield VkCullModeFlagBits {
3066 VK_CULL_MODE_NONE = 0x00000000,
3067 VK_CULL_MODE_FRONT_BIT = 0x00000001,
3068 VK_CULL_MODE_BACK_BIT = 0x00000002,
3069 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
3070}
3071
Ian Elliott28bd2c32017-10-13 09:21:12 -06003072//@vulkan1_1 flags
Daniel Koch09f7bf92017-10-05 00:26:58 -04003073
3074/// Subgroup feature flags
3075type VkFlags VkSubgroupFeatureFlags
3076bitfield VkSubgroupFeatureFlagBits {
3077 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
3078 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
3079 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
3080 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
3081 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
3082 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
3083 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
3084 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
Jesse Hall72e6a132018-04-06 13:00:44 -07003085
3086 //@extension("VK_NV_shader_subgroup_partitioned") // 199
3087 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003088}
3089
3090/// Peer memory feature flags
3091type VkFlags VkPeerMemoryFeatureFlags
3092bitfield VkPeerMemoryFeatureFlagBits {
3093 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
3094 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
3095 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
3096 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
3097}
3098
3099/// Memory allocation flags
3100type VkFlags VkMemoryAllocateFlags
3101bitfield VkMemoryAllocateFlagBits {
3102 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
3103}
3104
3105type VkFlags VkCommandPoolTrimFlags
3106//bitfield VkCommandPoolTrimFlagBits {
3107//}
3108
3109type VkFlags VkDescriptorUpdateTemplateCreateFlags
3110//bitfield VkDescriptorUpdateTemplateCreateFlagBits {
3111//}
3112
3113/// External memory handle type flags
3114type VkFlags VkExternalMemoryHandleTypeFlags
3115bitfield VkExternalMemoryHandleTypeFlagBits {
3116 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3117 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3118 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3119 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
3120 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
3121 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
3122 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
Jesse Hall8c954d32018-01-17 22:06:20 -08003123
Jesse Hall8c954d32018-01-17 22:06:20 -08003124 //@extension("VK_EXT_external_memory_host") // 179
Jesse Hall36215a92018-01-18 15:04:37 -08003125 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
3126 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
3127
3128 //@extension("VK_EXT_external_memory_dma_buf") // 126
3129 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
3130
3131 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
3132 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003133}
3134
3135/// External memory feature flags
3136type VkFlags VkExternalMemoryFeatureFlags
3137bitfield VkExternalMemoryFeatureFlagBits {
3138 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
3139 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
3140 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
3141}
3142
3143/// External fence handle type flags
3144type VkFlags VkExternalFenceHandleTypeFlags
3145bitfield VkExternalFenceHandleTypeFlagBits {
3146 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3147 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3148 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3149 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
3150}
3151
3152/// External fence feature flags
3153type VkFlags VkExternalFenceFeatureFlags
3154bitfield VkExternalFenceFeatureFlagBits {
3155 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3156 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3157}
3158
3159/// Fence import flags
3160type VkFlags VkFenceImportFlags
3161bitfield VkFenceImportFlagBits {
3162 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
3163}
3164
3165/// Semaphore import flags
3166type VkFlags VkSemaphoreImportFlags
3167bitfield VkSemaphoreImportFlagBits {
3168 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
3169}
3170
3171/// External semaphore handle type flags
3172type VkFlags VkExternalSemaphoreHandleTypeFlags
3173bitfield VkExternalSemaphoreHandleTypeFlagBits {
3174 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
3175 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
3176 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
3177 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
3178 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
3179}
3180
3181/// External semaphore feature flags
3182type VkFlags VkExternalSemaphoreFeatureFlags
3183bitfield VkExternalSemaphoreFeatureFlagBits {
3184 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
3185 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
3186}
3187
Jesse Hallad250842017-03-10 18:35:38 -08003188@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003189type VkFlags VkSurfaceTransformFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003190@extension("VK_KHR_surface") // 1
Jesse Halld8bade02015-11-24 10:24:18 -08003191bitfield VkSurfaceTransformFlagBitsKHR {
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003192 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003193 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
3194 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
3195 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
3196 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
3197 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
3198 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
3199 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
3200 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
Michael Lentine88594d72015-11-12 12:49:45 -08003201}
Jesse Halld27f6aa2015-08-15 17:58:48 -07003202
Jesse Hallad250842017-03-10 18:35:38 -08003203@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003204type VkFlags VkCompositeAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003205@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -08003206bitfield VkCompositeAlphaFlagBitsKHR {
3207 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3208 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
3209 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
3210 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
3211}
3212
Jesse Hallad250842017-03-10 18:35:38 -08003213@extension("VK_KHR_swapchain") // 2
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003214type VkFlags VkSwapchainCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003215@extension("VK_KHR_swapchain") // 2
3216bitfield VkSwapchainCreateFlagBitsKHR {
Ian Elliott28bd2c32017-10-13 09:21:12 -06003217 //@vulkan1_1
Jesse Hall8c954d32018-01-17 22:06:20 -08003218 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003219 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
Jesse Hall48514722018-12-04 14:44:42 -08003220
3221 //@extension("VK_KHR_swapchain_mutable_format") // 201
3222 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
Daniel Koch09f7bf92017-10-05 00:26:58 -04003223}
3224
Ian Elliott28bd2c32017-10-13 09:21:12 -06003225@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003226@extension("VK_KHR_swapchain") // 2
3227type VkFlags VkDeviceGroupPresentModeFlagsKHR
Ian Elliott28bd2c32017-10-13 09:21:12 -06003228@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04003229@extension("VK_KHR_swapchain") // 2
3230bitfield VkDeviceGroupPresentModeFlagBitsKHR {
3231 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
3232 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
3233 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
3234 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003235}
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003236
Jesse Hallad250842017-03-10 18:35:38 -08003237@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003238type VkFlags VkDisplayPlaneAlphaFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003239@extension("VK_KHR_display") // 3
Jesse Halld8bade02015-11-24 10:24:18 -08003240bitfield VkDisplayPlaneAlphaFlagBitsKHR {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003241 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
3242 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
3243 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
3244 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
Jesse Hall1356b0d2015-11-23 17:24:58 -08003245}
3246
Jesse Hallad250842017-03-10 18:35:38 -08003247@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003248type VkFlags VkDisplaySurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003249//@extension("VK_KHR_display") // 3
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003250//bitfield VkDisplaySurfaceCreateFlagBitsKHR {
3251//}
3252
Jesse Hallad250842017-03-10 18:35:38 -08003253@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003254type VkFlags VkDisplayModeCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003255//@extension("VK_KHR_display") // 3
Jesse Hall9ba8bc82015-11-30 16:22:16 -08003256//bitfield VkDisplayModeCreateFlagBitsKHR {
3257//}
3258
Jesse Hallad250842017-03-10 18:35:38 -08003259@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003260type VkFlags VkXlibSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003261//@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003262//bitfield VkXlibSurfaceCreateFlagBitsKHR {
3263//}
3264
Jesse Hallad250842017-03-10 18:35:38 -08003265@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003266type VkFlags VkXcbSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003267//@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003268//bitfield VkXcbSurfaceCreateFlagBitsKHR {
3269//}
3270
Jesse Hallad250842017-03-10 18:35:38 -08003271@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003272type VkFlags VkWaylandSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003273//@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003274//bitfield VkWaylandSurfaceCreateFlagBitsKHR {
3275//}
3276
Jesse Hallad250842017-03-10 18:35:38 -08003277@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003278type VkFlags VkAndroidSurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003279//@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003280//bitfield VkAndroidSurfaceCreateFlagBitsKHR {
3281//}
3282
Jesse Hallad250842017-03-10 18:35:38 -08003283@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003284type VkFlags VkWin32SurfaceCreateFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003285//@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003286//bitfield VkWin32SurfaceCreateFlagBitsKHR {
3287//}
3288
Jesse Hallad250842017-03-10 18:35:38 -08003289@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003290type VkFlags VkSwapchainImageUsageFlagsANDROID
Jesse Hallad250842017-03-10 18:35:38 -08003291@extension("VK_ANDROID_native_buffer") // 11
Jesse Hall889cd9a2017-02-25 22:12:23 -08003292bitfield VkSwapchainImageUsageFlagBitsANDROID {
3293 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001,
3294}
3295
Jesse Hallad250842017-03-10 18:35:38 -08003296@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003297type VkFlags VkDebugReportFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003298@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08003299bitfield VkDebugReportFlagBitsEXT {
Jesse Halle2948d82016-02-25 04:19:32 -08003300 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
3301 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
3302 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
Jesse Hall715b86a2016-01-16 16:34:29 -08003303 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
3304 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
3305}
3306
Jesse Hallf47e8f82018-10-27 23:41:45 -07003307@extension("VK_EXT_transform_feedback") // 29
3308type VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT
3309//@extension("VK_EXT_transform_feedback") // 29
3310//bitfield VkPipelineRasterizationStateStreamCreateFlagBitsEXT {
3311//}
3312
Jesse Hallad250842017-03-10 18:35:38 -08003313@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003314type VkFlags VkExternalMemoryHandleTypeFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003315@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003316bitfield VkExternalMemoryHandleTypeFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003317 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
3318 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
3319 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
3320 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003321}
3322
Jesse Hallad250842017-03-10 18:35:38 -08003323@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003324type VkFlags VkExternalMemoryFeatureFlagsNV
Jesse Hallad250842017-03-10 18:35:38 -08003325@extension("VK_NV_external_memory_capabilities") // 56
Chris Forbes289cb792016-12-30 15:03:55 +13003326bitfield VkExternalMemoryFeatureFlagBitsNV {
Jesse Halleb02c472017-02-24 15:13:45 -08003327 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
3328 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
3329 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
Chris Forbes289cb792016-12-30 15:03:55 +13003330}
3331
Daniel Koch09f7bf92017-10-05 00:26:58 -04003332@extension("VK_KHR_device_group") // 61
3333type VkFlags VkPeerMemoryFeatureFlagsKHR
3334@extension("VK_KHR_device_group") // 61
3335bitfield VkPeerMemoryFeatureFlagBitsKHR {
3336 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001,
3337 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002,
3338 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004,
3339 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008,
Jesse Hallad250842017-03-10 18:35:38 -08003340}
3341
Daniel Koch09f7bf92017-10-05 00:26:58 -04003342@extension("VK_KHR_device_group") // 61
3343type VkFlags VkMemoryAllocateFlagsKHR
3344@extension("VK_KHR_device_group") // 61
3345bitfield VkMemoryAllocateFlagBitsKHR {
3346 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003347}
3348
3349@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003350type VkFlags VkViSurfaceCreateFlagsNN
Jesse Hallad250842017-03-10 18:35:38 -08003351//@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08003352//bitfield VkViSurfaceCreateFlagBitsNN {
3353//}
3354
Jesse Hallad250842017-03-10 18:35:38 -08003355@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003356type VkFlags VkCommandPoolTrimFlagsKHR
Jesse Hallad250842017-03-10 18:35:38 -08003357//@extension("VK_KHR_maintenance1") // 70
Jesse Hall77ad05b2017-03-10 22:02:20 -08003358//bitfield VkCommandPoolTrimFlagBitsKHR {
3359//}
3360
Jesse Hall9492f992017-08-28 12:10:06 -07003361@extension("VK_KHR_external_memory_capabilities") // 72
3362type VkFlags VkExternalMemoryHandleTypeFlagsKHR
3363@extension("VK_KHR_external_memory_capabilities") // 72
3364bitfield VkExternalMemoryHandleTypeFlagBitsKHR {
3365 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3366 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3367 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3368 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008,
3369 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010,
3370 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020,
3371 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040,
Jesse Hallad250842017-03-10 18:35:38 -08003372}
3373
Jesse Hall9492f992017-08-28 12:10:06 -07003374@extension("VK_KHR_external_memory_capabilities") // 72
3375type VkFlags VkExternalMemoryFeatureFlagsKHR
3376@extension("VK_KHR_external_memory_capabilities") // 72
3377bitfield VkExternalMemoryFeatureFlagBitsKHR {
3378 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001,
3379 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002,
3380 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004,
Jesse Hallad250842017-03-10 18:35:38 -08003381}
3382
Jesse Hall9492f992017-08-28 12:10:06 -07003383@extension("VK_KHR_external_semaphore_capabilities") // 77
3384type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR
3385@extension("VK_KHR_external_semaphore_capabilities") // 77
3386bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR {
3387 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001
3388 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002
3389 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004
3390 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008
3391 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010
Jesse Hallad250842017-03-10 18:35:38 -08003392}
3393
Jesse Hall9492f992017-08-28 12:10:06 -07003394@extension("VK_KHR_external_semaphore_capabilities") // 77
3395type VkFlags VkExternalSemaphoreFeatureFlagsKHR
3396@extension("VK_KHR_external_semaphore_capabilities") // 77
3397bitfield VkExternalSemaphoreFeatureFlagBitsKHR {
3398 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3399 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3400}
3401
3402@extension("VK_KHR_external_semaphore") // 78
3403type VkFlags VkSemaphoreImportFlagsKHR
3404@extension("VK_KHR_external_semaphore") // 78
3405bitfield VkSemaphoreImportFlagBitsKHR {
3406 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
Jesse Hallad250842017-03-10 18:35:38 -08003407}
3408
Jesse Halla13a3cf2018-07-09 15:51:52 -07003409@extension("VK_EXT_conditional_rendering") // 82
3410type VkFlags VkConditionalRenderingFlagsEXT
3411@extension("VK_EXT_conditional_rendering") // 82
3412bitfield VkConditionalRenderingFlagBitsEXT {
3413 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
3414}
3415
Jesse Hallad250842017-03-10 18:35:38 -08003416@extension("VK_KHR_descriptor_update_template") // 86
3417type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR
3418//@extension("VK_KHR_descriptor_update_template") // 86
3419//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR {
3420//}
3421
3422@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003423type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003424@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003425bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003426 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001,
3427 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002,
3428 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004,
3429 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008,
Chris Forbes289cb792016-12-30 15:03:55 +13003430}
3431
Jesse Hallad250842017-03-10 18:35:38 -08003432@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003433type VkFlags VkObjectEntryUsageFlagsNVX
Jesse Hallad250842017-03-10 18:35:38 -08003434@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13003435bitfield VkObjectEntryUsageFlagBitsNVX {
Jesse Halleb02c472017-02-24 15:13:45 -08003436 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001,
3437 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002,
Chris Forbes289cb792016-12-30 15:03:55 +13003438}
3439
Jesse Hallad250842017-03-10 18:35:38 -08003440@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003441type VkFlags VkSurfaceCounterFlagsEXT
Jesse Hallad250842017-03-10 18:35:38 -08003442@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08003443bitfield VkSurfaceCounterFlagBitsEXT {
3444 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001,
3445}
3446
Jesse Hallad250842017-03-10 18:35:38 -08003447@extension("VK_NV_viewport_swizzle") // 99
3448type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV
3449//@extension("VK_NV_viewport_swizzle") // 99
3450//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV {
3451//}
3452
3453@extension("VK_EXT_discard_rectangles") // 100
3454type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT
3455//@extension("VK_EXT_discard_rectangles") // 100
3456//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT {
3457//}
3458
Jesse Hall8c954d32018-01-17 22:06:20 -08003459@extension("VK_EXT_conservative_rasterization") // 102
3460type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT
3461//@extension("VK_EXT_conservative_rasterization") // 102
3462//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT {
3463//}
3464
Jesse Hall9492f992017-08-28 12:10:06 -07003465@extension("VK_KHR_external_fence_capabilities") // 113
3466type VkFlags VkExternalFenceHandleTypeFlagsKHR
3467@extension("VK_KHR_external_fence_capabilities") // 113
3468bitfield VkExternalFenceHandleTypeFlagBitsKHR {
3469 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001,
3470 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002,
3471 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004,
3472 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008,
3473}
3474
3475@extension("VK_KHR_external_fence_capabilities") // 113
3476type VkFlags VkExternalFenceFeatureFlagsKHR
3477@extension("VK_KHR_external_fence_capabilities") // 113
3478bitfield VkExternalFenceFeatureFlagBitsKHR {
3479 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001,
3480 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002,
3481}
3482
3483@extension("VK_KHR_external_fence") // 114
3484type VkFlags VkFenceImportFlagsKHR
3485@extension("VK_KHR_external_fence") // 114
3486bitfield VkFenceImportFlagBitsKHR {
3487 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001,
3488}
3489
Jesse Hallad250842017-03-10 18:35:38 -08003490@extension("VK_MVK_ios_surface") // 123
3491type VkFlags VkIOSSurfaceCreateFlagsMVK
3492//@extension("VK_MVK_ios_surface") // 123
3493//bitfield VkIOSSurfaceCreateFlagBitsMVK {
3494//}
3495
3496@extension("VK_MVK_macos_surface") // 124
3497type VkFlags VkMacOSSurfaceCreateFlagsMVK
3498//@extension("VK_MVK_macos_surface") // 124
3499//bitfield VkMacOSSurfaceCreateFlagBitsMVK {
3500//}
3501
Jesse Hall8c954d32018-01-17 22:06:20 -08003502@extension("VK_EXT_debug_utils") // 129
3503type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT
3504//@extension("VK_EXT_debug_utils") // 129
3505//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT {
3506//}
3507
3508@extension("VK_EXT_debug_utils") // 129
3509type VkFlags VkDebugUtilsMessengerCreateFlagsEXT
3510//@extension("VK_EXT_debug_utils") // 129
3511//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT {
3512//}
3513
3514@extension("VK_EXT_debug_utils") // 129
3515type VkFlags VkDebugUtilsMessageSeverityFlagsEXT
3516@extension("VK_EXT_debug_utils") // 129
3517bitfield VkDebugUtilsMessageSeverityFlagBitsEXT {
3518 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
3519 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
3520 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
3521 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
3522}
3523
3524@extension("VK_EXT_debug_utils") // 129
3525type VkFlags VkDebugUtilsMessageTypeFlagsEXT
3526@extension("VK_EXT_debug_utils") // 129
3527bitfield VkDebugUtilsMessageTypeFlagBitsEXT {
3528 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
3529 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
3530 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
3531}
3532
Jesse Hall7ba0ac72017-07-07 17:13:23 -07003533@extension("VK_NV_fragment_coverage_to_color") // 150
3534type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV
3535@extension("VK_NV_fragment_coverage_to_color") // 150
3536//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV {
3537//}
3538
3539@extension("VK_NV_framebuffer_mixed_samples") // 153
3540type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV
3541@extension("VK_NV_framebuffer_mixed_samples") // 153
3542//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV {
3543//}
3544
Jesse Hall77726222017-09-19 14:49:27 -05003545@extension("VK_EXT_validation_cache") // 161
3546type VkFlags VkValidationCacheCreateFlagsEXT
3547@extension("VK_EXT_validation_cache") // 161
3548//bitfield VkValidationCacheCreateFlagBitsEXT {
3549//}
3550
Jesse Hall72e6a132018-04-06 13:00:44 -07003551@extension("VK_EXT_descriptor_indexing") // 162
3552type VkFlags VkDescriptorBindingFlagsEXT
3553@extension("VK_EXT_descriptor_indexing") // 162
3554bitfield VkDescriptorBindingFlagBitsEXT {
3555 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001,
3556 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002,
3557 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004,
3558 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008,
3559}
3560
Jesse Hallbeea46d2018-12-04 14:38:07 -08003561@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003562type VkFlags VkGeometryFlagsNV
Jesse Hallbeea46d2018-12-04 14:38:07 -08003563@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003564bitfield VkGeometryFlagBitsNV {
3565 VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001,
3566 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002,
Jesse Hallb5297192018-09-22 20:52:13 +02003567}
3568
Jesse Hallbeea46d2018-12-04 14:38:07 -08003569@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003570type VkFlags VkGeometryInstanceFlagsNV
Jesse Hallbeea46d2018-12-04 14:38:07 -08003571@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003572bitfield VkGeometryInstanceFlagBitsNV {
3573 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001,
3574 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002,
3575 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004,
3576 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
Jesse Hallb5297192018-09-22 20:52:13 +02003577}
3578
Jesse Hallbeea46d2018-12-04 14:38:07 -08003579@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003580type VkFlags VkBuildAccelerationStructureFlagsNV
Jesse Hallbeea46d2018-12-04 14:38:07 -08003581@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07003582bitfield VkBuildAccelerationStructureFlagBitsNV {
3583 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001,
3584 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002,
3585 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004,
3586 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008,
3587 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010,
Jesse Hallb5297192018-09-22 20:52:13 +02003588}
3589
Jesse Hall497c46f2018-10-08 12:52:48 -07003590@extension("VK_FUCHSIA_imagepipe_surface") // 215
3591type VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA
3592//@extension("VK_FUCHSIA_imagepipe_surface") // 215
3593//bitfield VkImagePipeSurfaceCreateFlagBitsFUCHSIA {
3594//}
3595
Jesse Halld27f6aa2015-08-15 17:58:48 -07003596//////////////////
3597// Structures //
3598//////////////////
3599
3600class VkOffset2D {
3601 s32 x
3602 s32 y
3603}
3604
3605class VkOffset3D {
3606 s32 x
3607 s32 y
3608 s32 z
3609}
3610
3611class VkExtent2D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003612 u32 width
3613 u32 height
Jesse Halld27f6aa2015-08-15 17:58:48 -07003614}
3615
3616class VkExtent3D {
Jesse Hall3dd678a2016-01-08 21:52:01 -08003617 u32 width
3618 u32 height
3619 u32 depth
Jesse Halld27f6aa2015-08-15 17:58:48 -07003620}
3621
3622class VkViewport {
Jesse Hall65ab5522015-11-30 00:07:16 -08003623 f32 x
3624 f32 y
Jesse Halld27f6aa2015-08-15 17:58:48 -07003625 f32 width
3626 f32 height
3627 f32 minDepth
3628 f32 maxDepth
3629}
3630
3631class VkRect2D {
3632 VkOffset2D offset
3633 VkExtent2D extent
3634}
3635
Jesse Halla15a4bf2015-11-19 22:48:02 -08003636class VkClearRect {
3637 VkRect2D rect
3638 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003639 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003640}
3641
Jesse Hall65ab5522015-11-30 00:07:16 -08003642class VkComponentMapping {
3643 VkComponentSwizzle r
3644 VkComponentSwizzle g
3645 VkComponentSwizzle b
3646 VkComponentSwizzle a
Jesse Halld27f6aa2015-08-15 17:58:48 -07003647}
3648
3649class VkPhysicalDeviceProperties {
3650 u32 apiVersion
3651 u32 driverVersion
Jesse Hall65ab5522015-11-30 00:07:16 -08003652 u32 vendorID
3653 u32 deviceID
Jesse Halld27f6aa2015-08-15 17:58:48 -07003654 VkPhysicalDeviceType deviceType
Jesse Hall65ab5522015-11-30 00:07:16 -08003655 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName
3656 u8[VK_UUID_SIZE] pipelineCacheUUID
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003657 VkPhysicalDeviceLimits limits
3658 VkPhysicalDeviceSparseProperties sparseProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07003659}
3660
3661class VkExtensionProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003662 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name
Jesse Halld27f6aa2015-08-15 17:58:48 -07003663 u32 specVersion /// version of the extension specification implemented
3664}
3665
3666class VkLayerProperties {
Jesse Hall65ab5522015-11-30 00:07:16 -08003667 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name
Jesse Hall3fbc8562015-11-29 22:10:52 -08003668 u32 specVersion /// version of the layer specification implemented
3669 u32 implementationVersion /// build or release version of the layer's library
Jesse Hall65ab5522015-11-30 00:07:16 -08003670 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003671}
3672
Jesse Halla366a512015-11-19 22:30:07 -08003673class VkSubmitInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08003674 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO
3675 const void* pNext /// Next structure in chain
3676 u32 waitSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003677 const VkSemaphore* pWaitSemaphores
Jesse Hall543a7ff2016-01-08 16:38:30 -08003678 const VkPipelineStageFlags* pWaitDstStageMask
Jesse Hall03b6fe12015-11-24 12:44:21 -08003679 u32 commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08003680 const VkCommandBuffer* pCommandBuffers
Jesse Hall03b6fe12015-11-24 12:44:21 -08003681 u32 signalSemaphoreCount
Jesse Halla366a512015-11-19 22:30:07 -08003682 const VkSemaphore* pSignalSemaphores
3683}
3684
Jesse Halld27f6aa2015-08-15 17:58:48 -07003685class VkApplicationInfo {
3686 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO
3687 const void* pNext /// Next structure in chain
Jesse Hall3fbc8562015-11-29 22:10:52 -08003688 const char* pApplicationName
3689 u32 applicationVersion
Jesse Halld27f6aa2015-08-15 17:58:48 -07003690 const char* pEngineName
3691 u32 engineVersion
3692 u32 apiVersion
3693}
3694
Jesse Hall3fbc8562015-11-29 22:10:52 -08003695class VkAllocationCallbacks {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003696 void* pUserData
Jesse Hall3fbc8562015-11-29 22:10:52 -08003697 PFN_vkAllocationFunction pfnAllocation
3698 PFN_vkReallocationFunction pfnReallocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003699 PFN_vkFreeFunction pfnFree
Jesse Hall3fbc8562015-11-29 22:10:52 -08003700 PFN_vkInternalAllocationNotification pfnInternalAllocation
Jesse Hall03b6fe12015-11-24 12:44:21 -08003701 PFN_vkInternalFreeNotification pfnInternalFree
Jesse Halld27f6aa2015-08-15 17:58:48 -07003702}
3703
3704class VkDeviceQueueCreateInfo {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003705 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO
3706 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003707 VkDeviceQueueCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003708 u32 queueFamilyIndex
Jesse Halldba27f72015-11-30 14:25:46 -08003709 u32 queueCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08003710 const f32* pQueuePriorities
Jesse Halld27f6aa2015-08-15 17:58:48 -07003711}
3712
3713class VkDeviceCreateInfo {
3714 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO
3715 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003716 VkDeviceCreateFlags flags
Jesse Halldba27f72015-11-30 14:25:46 -08003717 u32 queueCreateInfoCount
3718 const VkDeviceQueueCreateInfo* pQueueCreateInfos
Jesse Hall3dd678a2016-01-08 21:52:01 -08003719 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003720 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003721 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003722 const char* const* ppEnabledExtensionNames
3723 const VkPhysicalDeviceFeatures* pEnabledFeatures
Jesse Halld27f6aa2015-08-15 17:58:48 -07003724}
3725
3726class VkInstanceCreateInfo {
3727 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO
3728 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003729 VkInstanceCreateFlags flags
Jesse Hall3fbc8562015-11-29 22:10:52 -08003730 const VkApplicationInfo* pApplicationInfo
Jesse Hall3dd678a2016-01-08 21:52:01 -08003731 u32 enabledLayerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003732 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled
Jesse Hall3dd678a2016-01-08 21:52:01 -08003733 u32 enabledExtensionCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003734 const char* const* ppEnabledExtensionNames /// Extension names to be enabled
3735}
3736
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003737class VkQueueFamilyProperties {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003738 VkQueueFlags queueFlags /// Queue flags
3739 u32 queueCount
Jesse Hallacfa5342015-11-19 21:51:33 -08003740 u32 timestampValidBits
Jesse Hall65ab5522015-11-30 00:07:16 -08003741 VkExtent3D minImageTransferGranularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07003742}
3743
3744class VkPhysicalDeviceMemoryProperties {
3745 u32 memoryTypeCount
3746 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes
3747 u32 memoryHeapCount
3748 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps
3749}
3750
Jesse Hall3fbc8562015-11-29 22:10:52 -08003751class VkMemoryAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08003752 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07003753 const void* pNext /// Pointer to next structure
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003754 VkDeviceSize allocationSize /// Size of memory allocation
Jesse Halld27f6aa2015-08-15 17:58:48 -07003755 u32 memoryTypeIndex /// Index of the of the memory type to allocate from
3756}
3757
3758class VkMemoryRequirements {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003759 VkDeviceSize size /// Specified in bytes
3760 VkDeviceSize alignment /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003761 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object
3762}
3763
3764class VkSparseImageFormatProperties {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003765 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003766 VkExtent3D imageGranularity
3767 VkSparseImageFormatFlags flags
3768}
3769
3770class VkSparseImageMemoryRequirements {
Jesse Hallb00daad2015-11-29 19:46:20 -08003771 VkSparseImageFormatProperties formatProperties
Jesse Hallf9fa9a52016-01-08 16:08:51 -08003772 u32 imageMipTailFirstLod
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003773 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment
3774 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment
3775 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment
Jesse Halld27f6aa2015-08-15 17:58:48 -07003776}
3777
3778class VkMemoryType {
3779 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type
3780 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from
3781}
3782
3783class VkMemoryHeap {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003784 VkDeviceSize size /// Available memory in the heap
Jesse Halld27f6aa2015-08-15 17:58:48 -07003785 VkMemoryHeapFlags flags /// Flags for the heap
3786}
3787
3788class VkMappedMemoryRange {
3789 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE
3790 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003791 VkDeviceMemory memory /// Mapped memory object
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003792 VkDeviceSize offset /// Offset within the mapped memory the range starts from
3793 VkDeviceSize size /// Size of the range within the mapped memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07003794}
3795
3796class VkFormatProperties {
3797 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling
3798 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003799 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers
Jesse Halld27f6aa2015-08-15 17:58:48 -07003800}
3801
3802class VkImageFormatProperties {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003803 VkExtent3D maxExtent /// max image dimensions for this resource type
3804 u32 maxMipLevels /// max number of mipmap levels for this resource type
Jesse Halla15a4bf2015-11-19 22:48:02 -08003805 u32 maxArrayLayers /// max array layers for this resource type
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003806 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type
3807 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type
3808}
3809
Jesse Halla15a4bf2015-11-19 22:48:02 -08003810class VkDescriptorImageInfo {
3811 VkSampler sampler
3812 VkImageView imageView
3813 VkImageLayout imageLayout
3814}
3815
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003816class VkDescriptorBufferInfo {
3817 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC]
3818 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set.
3819 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update.
Jesse Halld27f6aa2015-08-15 17:58:48 -07003820}
3821
Jesse Halld27f6aa2015-08-15 17:58:48 -07003822class VkWriteDescriptorSet {
3823 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET
3824 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08003825 VkDescriptorSet dstSet /// Destination descriptor set
3826 u32 dstBinding /// Binding within the destination descriptor set to write
3827 u32 dstArrayElement /// Array element within the destination binding to write
Jesse Hall03b6fe12015-11-24 12:44:21 -08003828 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>)
Jesse Halld27f6aa2015-08-15 17:58:48 -07003829 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 -08003830 const VkDescriptorImageInfo* pImageInfo
3831 const VkDescriptorBufferInfo* pBufferInfo
3832 const VkBufferView* pTexelBufferView
Jesse Halld27f6aa2015-08-15 17:58:48 -07003833}
3834
3835class VkCopyDescriptorSet {
3836 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET
3837 const void* pNext /// Pointer to next structure
3838 VkDescriptorSet srcSet /// Source descriptor set
3839 u32 srcBinding /// Binding within the source descriptor set to copy from
3840 u32 srcArrayElement /// Array element within the source binding to copy from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003841 VkDescriptorSet dstSet /// Destination descriptor set
3842 u32 dstBinding /// Binding within the destination descriptor set to copy to
3843 u32 dstArrayElement /// Array element within the destination binding to copy to
Jesse Hall03b6fe12015-11-24 12:44:21 -08003844 u32 descriptorCount /// Number of descriptors to copy
Jesse Halld27f6aa2015-08-15 17:58:48 -07003845}
3846
3847class VkBufferCreateInfo {
3848 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO
3849 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003850 VkBufferCreateFlags flags /// Buffer creation flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003851 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003852 VkBufferUsageFlags usage /// Buffer usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003853 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003854 u32 queueFamilyIndexCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003855 const u32* pQueueFamilyIndices
3856}
3857
3858class VkBufferViewCreateInfo {
3859 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO
3860 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003861 VkBufferViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003862 VkBuffer buffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003863 VkFormat format /// Optionally specifies format of elements
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003864 VkDeviceSize offset /// Specified in bytes
3865 VkDeviceSize range /// View size specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003866}
3867
3868class VkImageSubresource {
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003869 VkImageAspectFlagBits aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003870 u32 mipLevel
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003871 u32 arrayLayer
Jesse Halld27f6aa2015-08-15 17:58:48 -07003872}
3873
3874class VkImageSubresourceRange {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003875 VkImageAspectFlags aspectMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003876 u32 baseMipLevel
Jesse Hall3fbc8562015-11-29 22:10:52 -08003877 u32 levelCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003878 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08003879 u32 layerCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07003880}
3881
3882class VkMemoryBarrier {
3883 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER
3884 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003885 VkAccessFlags srcAccessMask
3886 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003887}
3888
3889class VkBufferMemoryBarrier {
3890 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER
3891 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003892 VkAccessFlags srcAccessMask
3893 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003894 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003895 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003896 VkBuffer buffer /// Buffer to sync
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003897 VkDeviceSize offset /// Offset within the buffer to sync
3898 VkDeviceSize size /// Amount of bytes to sync
Jesse Halld27f6aa2015-08-15 17:58:48 -07003899}
3900
3901class VkImageMemoryBarrier {
3902 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER
3903 const void* pNext /// Pointer to next structure.
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08003904 VkAccessFlags srcAccessMask
3905 VkAccessFlags dstAccessMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07003906 VkImageLayout oldLayout /// Current layout of the image
3907 VkImageLayout newLayout /// New layout to transition the image to
3908 u32 srcQueueFamilyIndex /// Queue family to transition ownership from
Jesse Hall3fbc8562015-11-29 22:10:52 -08003909 u32 dstQueueFamilyIndex /// Queue family to transition ownership to
Jesse Halld27f6aa2015-08-15 17:58:48 -07003910 VkImage image /// Image to sync
3911 VkImageSubresourceRange subresourceRange /// Subresource range to sync
3912}
3913
3914class VkImageCreateInfo {
3915 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO
3916 const void* pNext /// Pointer to next structure.
Jesse Halla6429252015-11-29 18:59:42 -08003917 VkImageCreateFlags flags /// Image creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003918 VkImageType imageType
3919 VkFormat format
3920 VkExtent3D extent
3921 u32 mipLevels
Jesse Halla15a4bf2015-11-19 22:48:02 -08003922 u32 arrayLayers
Jesse Hall091ed9e2015-11-30 00:55:29 -08003923 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07003924 VkImageTiling tiling
3925 VkImageUsageFlags usage /// Image usage flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003926 VkSharingMode sharingMode /// Cross-queue-family sharing mode
Jesse Hall03b6fe12015-11-24 12:44:21 -08003927 u32 queueFamilyIndexCount /// Number of queue families to share across
Jesse Halld27f6aa2015-08-15 17:58:48 -07003928 const u32* pQueueFamilyIndices /// Array of queue family indices to share across
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003929 VkImageLayout initialLayout /// Initial image layout for all subresources
Jesse Halld27f6aa2015-08-15 17:58:48 -07003930}
3931
3932class VkSubresourceLayout {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003933 VkDeviceSize offset /// Specified in bytes
3934 VkDeviceSize size /// Specified in bytes
3935 VkDeviceSize rowPitch /// Specified in bytes
Jesse Hall543a7ff2016-01-08 16:38:30 -08003936 VkDeviceSize arrayPitch /// Specified in bytes
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003937 VkDeviceSize depthPitch /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003938}
3939
3940class VkImageViewCreateInfo {
3941 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO
3942 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08003943 VkImageViewCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07003944 VkImage image
3945 VkImageViewType viewType
3946 VkFormat format
Jesse Hall65ab5522015-11-30 00:07:16 -08003947 VkComponentMapping components
Jesse Halld27f6aa2015-08-15 17:58:48 -07003948 VkImageSubresourceRange subresourceRange
Jesse Halld27f6aa2015-08-15 17:58:48 -07003949}
3950
3951class VkBufferCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07003952 VkDeviceSize srcOffset /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003953 VkDeviceSize dstOffset /// Specified in bytes
Jesse Hallb00daad2015-11-29 19:46:20 -08003954 VkDeviceSize size /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003955}
3956
Jesse Halla6429252015-11-29 18:59:42 -08003957class VkSparseMemoryBind {
Jesse Hallb00daad2015-11-29 19:46:20 -08003958 VkDeviceSize resourceOffset /// Specified in bytes
3959 VkDeviceSize size /// Specified in bytes
Jesse Hall3fbc8562015-11-29 22:10:52 -08003960 VkDeviceMemory memory
3961 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003962 VkSparseMemoryBindFlags flags
3963}
3964
Jesse Halla6429252015-11-29 18:59:42 -08003965class VkSparseImageMemoryBind {
Jesse Halld27f6aa2015-08-15 17:58:48 -07003966 VkImageSubresource subresource
3967 VkOffset3D offset
3968 VkExtent3D extent
Jesse Hall3fbc8562015-11-29 22:10:52 -08003969 VkDeviceMemory memory
3970 VkDeviceSize memoryOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07003971 VkSparseMemoryBindFlags flags
3972}
3973
Jesse Halla6429252015-11-29 18:59:42 -08003974class VkSparseBufferMemoryBindInfo {
3975 VkBuffer buffer
3976 u32 bindCount
3977 const VkSparseMemoryBind* pBinds
3978}
3979
3980class VkSparseImageOpaqueMemoryBindInfo {
3981 VkImage image
3982 u32 bindCount
3983 const VkSparseMemoryBind* pBinds
3984}
3985
3986class VkSparseImageMemoryBindInfo {
3987 VkImage image
3988 u32 bindCount
3989 const VkSparseMemoryBind* pBinds
3990}
3991
3992class VkBindSparseInfo {
3993 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO
3994 const void* pNext
3995 u32 waitSemaphoreCount
3996 const VkSemaphore* pWaitSemaphores
3997 u32 numBufferBinds
3998 const VkSparseBufferMemoryBindInfo* pBufferBinds
3999 u32 numImageOpaqueBinds
4000 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds
4001 u32 numImageBinds
4002 const VkSparseImageMemoryBindInfo* pImageBinds
4003 u32 signalSemaphoreCount
4004 const VkSemaphore* pSignalSemaphores
4005}
4006
Jesse Hall65ab5522015-11-30 00:07:16 -08004007class VkImageSubresourceLayers {
4008 VkImageAspectFlags aspectMask
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004009 u32 mipLevel
Jesse Halla15a4bf2015-11-19 22:48:02 -08004010 u32 baseArrayLayer
Jesse Hall3fbc8562015-11-29 22:10:52 -08004011 u32 layerCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004012}
4013
Jesse Halld27f6aa2015-08-15 17:58:48 -07004014class VkImageCopy {
Jesse Hall65ab5522015-11-30 00:07:16 -08004015 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07004016 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Hall65ab5522015-11-30 00:07:16 -08004017 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08004018 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images
Jesse Halld27f6aa2015-08-15 17:58:48 -07004019 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images
4020}
4021
4022class VkImageBlit {
Jesse Hall65ab5522015-11-30 00:07:16 -08004023 VkImageSubresourceLayers srcSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08004024 VkOffset3D[2] srcOffsets
Jesse Hall65ab5522015-11-30 00:07:16 -08004025 VkImageSubresourceLayers dstSubresource
Jesse Hall3dd678a2016-01-08 21:52:01 -08004026 VkOffset3D[2] dstOffsets
Jesse Halld27f6aa2015-08-15 17:58:48 -07004027}
4028
4029class VkBufferImageCopy {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004030 VkDeviceSize bufferOffset /// Specified in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004031 u32 bufferRowLength /// Specified in texels
4032 u32 bufferImageHeight
Jesse Hall65ab5522015-11-30 00:07:16 -08004033 VkImageSubresourceLayers imageSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07004034 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images
4035 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images
4036}
4037
4038class VkImageResolve {
Jesse Hall65ab5522015-11-30 00:07:16 -08004039 VkImageSubresourceLayers srcSubresource
Jesse Halld27f6aa2015-08-15 17:58:48 -07004040 VkOffset3D srcOffset
Jesse Hall65ab5522015-11-30 00:07:16 -08004041 VkImageSubresourceLayers dstSubresource
Jesse Hall3fbc8562015-11-29 22:10:52 -08004042 VkOffset3D dstOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004043 VkExtent3D extent
4044}
4045
4046class VkShaderModuleCreateInfo {
4047 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO
4048 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004049 VkShaderModuleCreateFlags flags /// Reserved
Jesse Halld27f6aa2015-08-15 17:58:48 -07004050 platform.size_t codeSize /// Specified in bytes
Jesse Halla9bb62b2015-11-21 19:31:56 -08004051 const u32* pCode /// Binary code of size codeSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004052}
4053
Jesse Halld27f6aa2015-08-15 17:58:48 -07004054class VkDescriptorSetLayoutBinding {
Jesse Hall091ed9e2015-11-30 00:55:29 -08004055 u32 binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07004056 VkDescriptorType descriptorType /// Type of the descriptors in this binding
Jesse Halldba27f72015-11-30 14:25:46 -08004057 u32 descriptorCount /// Number of descriptors in this binding
Jesse Halld27f6aa2015-08-15 17:58:48 -07004058 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to
4059 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements)
4060}
4061
4062class VkDescriptorSetLayoutCreateInfo {
4063 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO
4064 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004065 VkDescriptorSetLayoutCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08004066 u32 bindingCount /// Number of bindings in the descriptor set layout
Jesse Hall543a7ff2016-01-08 16:38:30 -08004067 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07004068}
4069
Jesse Hall65ab5522015-11-30 00:07:16 -08004070class VkDescriptorPoolSize {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004071 VkDescriptorType type
Jesse Hall03b6fe12015-11-24 12:44:21 -08004072 u32 descriptorCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004073}
4074
4075class VkDescriptorPoolCreateInfo {
4076 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO
4077 const void* pNext /// Pointer to next structure
Jesse Hallfbf97b02015-11-20 14:17:03 -08004078 VkDescriptorPoolCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004079 u32 maxSets
Jesse Hall65ab5522015-11-30 00:07:16 -08004080 u32 poolSizeCount
4081 const VkDescriptorPoolSize* pPoolSizes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004082}
4083
Jesse Hall3fbc8562015-11-29 22:10:52 -08004084class VkDescriptorSetAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004085 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO
Jesse Hallfbf97b02015-11-20 14:17:03 -08004086 const void* pNext /// Pointer to next structure
4087 VkDescriptorPool descriptorPool
Jesse Hall03b6fe12015-11-24 12:44:21 -08004088 u32 setCount
Jesse Hallfbf97b02015-11-20 14:17:03 -08004089 const VkDescriptorSetLayout* pSetLayouts
4090}
4091
Jesse Halld27f6aa2015-08-15 17:58:48 -07004092class VkSpecializationMapEntry {
Jesse Hall65ab5522015-11-30 00:07:16 -08004093 u32 constantID /// The SpecConstant ID specified in the BIL
Jesse Halld27f6aa2015-08-15 17:58:48 -07004094 u32 offset /// Offset of the value in the data block
Jesse Hallb00daad2015-11-29 19:46:20 -08004095 platform.size_t size /// Size in bytes of the SpecConstant
Jesse Halld27f6aa2015-08-15 17:58:48 -07004096}
4097
4098class VkSpecializationInfo {
4099 u32 mapEntryCount /// Number of entries in the map
Jesse Hallb00daad2015-11-29 19:46:20 -08004100 const VkSpecializationMapEntry* pMapEntries /// Array of map entries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004101 platform.size_t dataSize /// Size in bytes of pData
4102 const void* pData /// Pointer to SpecConstant data
4103}
4104
4105class VkPipelineShaderStageCreateInfo {
4106 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO
4107 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004108 VkPipelineShaderStageCreateFlags flags
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004109 VkShaderStageFlagBits stage
4110 VkShaderModule module
4111 const char* pName
Jesse Halld27f6aa2015-08-15 17:58:48 -07004112 const VkSpecializationInfo* pSpecializationInfo
4113}
4114
4115class VkComputePipelineCreateInfo {
4116 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO
4117 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004118 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004119 VkPipelineShaderStageCreateInfo stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004120 VkPipelineLayout layout /// Interface layout of the pipeline
4121 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
4122 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
4123}
4124
4125class VkVertexInputBindingDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004126 u32 binding /// Vertex buffer binding id
4127 u32 stride /// Distance between vertices in bytes (0 = no advancement)
Jesse Hall65ab5522015-11-30 00:07:16 -08004128 VkVertexInputRate inputRate /// Rate at which binding is incremented
Jesse Halld27f6aa2015-08-15 17:58:48 -07004129}
4130
4131class VkVertexInputAttributeDescription {
Jesse Hallb00daad2015-11-29 19:46:20 -08004132 u32 location /// location of the shader vertex attrib
4133 u32 binding /// Vertex buffer binding id
4134 VkFormat format /// format of source data
4135 u32 offset /// Offset of first element in bytes from base of vertex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004136}
4137
4138class VkPipelineVertexInputStateCreateInfo {
Jesse Hall03b6fe12015-11-24 12:44:21 -08004139 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO
4140 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004141 VkPipelineVertexInputStateCreateFlags flags
Jesse Hall03b6fe12015-11-24 12:44:21 -08004142 u32 vertexBindingDescriptionCount /// number of bindings
Jesse Halld27f6aa2015-08-15 17:58:48 -07004143 const VkVertexInputBindingDescription* pVertexBindingDescriptions
Jesse Hall03b6fe12015-11-24 12:44:21 -08004144 u32 vertexAttributeDescriptionCount /// number of attributes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004145 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions
4146}
4147
4148class VkPipelineInputAssemblyStateCreateInfo {
4149 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO
4150 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004151 VkPipelineInputAssemblyStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004152 VkPrimitiveTopology topology
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004153 VkBool32 primitiveRestartEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004154}
4155
4156class VkPipelineTessellationStateCreateInfo {
4157 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO
4158 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004159 VkPipelineTessellationStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004160 u32 patchControlPoints
4161}
4162
4163class VkPipelineViewportStateCreateInfo {
4164 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO
4165 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004166 VkPipelineViewportStateCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004167 u32 viewportCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004168 const VkViewport* pViewports
4169 u32 scissorCount
4170 const VkRect2D* pScissors
Jesse Halld27f6aa2015-08-15 17:58:48 -07004171}
4172
Jesse Hall3fbc8562015-11-29 22:10:52 -08004173class VkPipelineRasterizationStateCreateInfo {
Jesse Hall65ab5522015-11-30 00:07:16 -08004174 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004175 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004176 VkPipelineRasterizationStateCreateFlags flags
Jesse Hallae38f732015-11-19 21:32:50 -08004177 VkBool32 depthClampEnable
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004178 VkBool32 rasterizerDiscardEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004179 VkPolygonMode polygonMode /// optional (GL45)
Jesse Hallc7467b72015-11-29 21:05:26 -08004180 VkCullModeFlags cullMode
Jesse Halld27f6aa2015-08-15 17:58:48 -07004181 VkFrontFace frontFace
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004182 VkBool32 depthBiasEnable
Jesse Halla9bb62b2015-11-21 19:31:56 -08004183 f32 depthBiasConstantFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004184 f32 depthBiasClamp
Jesse Halla9bb62b2015-11-21 19:31:56 -08004185 f32 depthBiasSlopeFactor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004186 f32 lineWidth
Jesse Halld27f6aa2015-08-15 17:58:48 -07004187}
4188
4189class VkPipelineMultisampleStateCreateInfo {
4190 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO
4191 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004192 VkPipelineMultisampleStateCreateFlags flags
Jesse Hall091ed9e2015-11-30 00:55:29 -08004193 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004194 VkBool32 sampleShadingEnable /// optional (GL45)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004195 f32 minSampleShading /// optional (GL45)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004196 const VkSampleMask* pSampleMask
Jesse Hallacfa5342015-11-19 21:51:33 -08004197 VkBool32 alphaToCoverageEnable
4198 VkBool32 alphaToOneEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004199}
4200
4201class VkPipelineColorBlendAttachmentState {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004202 VkBool32 blendEnable
Jesse Hall65ab5522015-11-30 00:07:16 -08004203 VkBlendFactor srcColorBlendFactor
4204 VkBlendFactor dstColorBlendFactor
4205 VkBlendOp colorBlendOp
4206 VkBlendFactor srcAlphaBlendFactor
4207 VkBlendFactor dstAlphaBlendFactor
4208 VkBlendOp alphaBlendOp
4209 VkColorComponentFlags colorWriteMask
Jesse Halld27f6aa2015-08-15 17:58:48 -07004210}
4211
4212class VkPipelineColorBlendStateCreateInfo {
4213 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
4214 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004215 VkPipelineColorBlendStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004216 VkBool32 logicOpEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004217 VkLogicOp logicOp
4218 u32 attachmentCount /// # of pAttachments
4219 const VkPipelineColorBlendAttachmentState* pAttachments
Jesse Hallb00daad2015-11-29 19:46:20 -08004220 f32[4] blendConstants
Jesse Halld27f6aa2015-08-15 17:58:48 -07004221}
4222
4223class VkStencilOpState {
Jesse Hall65ab5522015-11-30 00:07:16 -08004224 VkStencilOp failOp
4225 VkStencilOp passOp
4226 VkStencilOp depthFailOp
4227 VkCompareOp compareOp
4228 u32 compareMask
4229 u32 writeMask
4230 u32 reference
Jesse Halld27f6aa2015-08-15 17:58:48 -07004231}
4232
4233class VkPipelineDepthStencilStateCreateInfo {
4234 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO
4235 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004236 VkPipelineDepthStencilStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004237 VkBool32 depthTestEnable
4238 VkBool32 depthWriteEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004239 VkCompareOp depthCompareOp
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004240 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test)
4241 VkBool32 stencilTestEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004242 VkStencilOpState front
4243 VkStencilOpState back
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004244 f32 minDepthBounds
4245 f32 maxDepthBounds
4246}
4247
4248class VkPipelineDynamicStateCreateInfo {
4249 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
4250 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004251 VkPipelineDynamicStateCreateFlags flags
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004252 u32 dynamicStateCount
4253 const VkDynamicState* pDynamicStates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004254}
4255
4256class VkGraphicsPipelineCreateInfo {
Jesse Halla6429252015-11-29 18:59:42 -08004257 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
4258 const void* pNext /// Pointer to next structure
4259 VkPipelineCreateFlags flags /// Pipeline creation flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004260 u32 stageCount
Jesse Halla6429252015-11-29 18:59:42 -08004261 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage
Jesse Halld27f6aa2015-08-15 17:58:48 -07004262 const VkPipelineVertexInputStateCreateInfo* pVertexInputState
4263 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState
4264 const VkPipelineTessellationStateCreateInfo* pTessellationState
4265 const VkPipelineViewportStateCreateInfo* pViewportState
Jesse Hall3fbc8562015-11-29 22:10:52 -08004266 const VkPipelineRasterizationStateCreateInfo* pRasterizationState
Jesse Halld27f6aa2015-08-15 17:58:48 -07004267 const VkPipelineMultisampleStateCreateInfo* pMultisampleState
4268 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState
4269 const VkPipelineColorBlendStateCreateInfo* pColorBlendState
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004270 const VkPipelineDynamicStateCreateInfo* pDynamicState
Jesse Halla6429252015-11-29 18:59:42 -08004271 VkPipelineLayout layout /// Interface layout of the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004272 VkRenderPass renderPass
4273 u32 subpass
Jesse Halla6429252015-11-29 18:59:42 -08004274 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
4275 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 -07004276}
4277
4278class VkPipelineCacheCreateInfo {
Jesse Hallb00daad2015-11-29 19:46:20 -08004279 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO
4280 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004281 VkPipelineCacheCreateFlags flags
Jesse Hallb00daad2015-11-29 19:46:20 -08004282 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes
4283 const void* pInitialData /// Initial data to populate cache
Jesse Halld27f6aa2015-08-15 17:58:48 -07004284}
4285
4286class VkPushConstantRange {
4287 VkShaderStageFlags stageFlags /// Which stages use the range
Jesse Hall03b6fe12015-11-24 12:44:21 -08004288 u32 offset /// Start of the range, in bytes
4289 u32 size /// Length of the range, in bytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07004290}
4291
4292class VkPipelineLayoutCreateInfo {
4293 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO
4294 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004295 VkPipelineLayoutCreateFlags flags
Jesse Hall3dd678a2016-01-08 21:52:01 -08004296 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004297 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the
4298 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline
4299 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages
4300}
4301
4302class VkSamplerCreateInfo {
4303 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO
4304 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004305 VkSamplerCreateFlags flags
Jesse Hall23ff73f2015-11-29 14:36:39 -08004306 VkFilter magFilter /// Filter mode for magnification
4307 VkFilter minFilter /// Filter mode for minifiation
4308 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode
4309 VkSamplerAddressMode addressModeU
4310 VkSamplerAddressMode addressModeV
4311 VkSamplerAddressMode addressModeW
Jesse Halld27f6aa2015-08-15 17:58:48 -07004312 f32 mipLodBias
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004313 VkBool32 anisotropyEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004314 f32 maxAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004315 VkBool32 compareEnable
Jesse Halld27f6aa2015-08-15 17:58:48 -07004316 VkCompareOp compareOp
4317 f32 minLod
4318 f32 maxLod
4319 VkBorderColor borderColor
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004320 VkBool32 unnormalizedCoordinates
Jesse Halld27f6aa2015-08-15 17:58:48 -07004321}
4322
Jesse Hall3fbc8562015-11-29 22:10:52 -08004323class VkCommandPoolCreateInfo {
4324 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004325 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004326 VkCommandPoolCreateFlags flags /// Command pool creation flags
Jesse Halla6429252015-11-29 18:59:42 -08004327 u32 queueFamilyIndex
Jesse Halld27f6aa2015-08-15 17:58:48 -07004328}
4329
Jesse Hall3fbc8562015-11-29 22:10:52 -08004330class VkCommandBufferAllocateInfo {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004331 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004332 const void* pNext /// Pointer to next structure
Jesse Hall3fbc8562015-11-29 22:10:52 -08004333 VkCommandPool commandPool
4334 VkCommandBufferLevel level
Jesse Hall3dd678a2016-01-08 21:52:01 -08004335 u32 commandBufferCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004336}
4337
Jesse Hall3dd678a2016-01-08 21:52:01 -08004338class VkCommandBufferInheritanceInfo {
4339 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO
Jesse Halld27f6aa2015-08-15 17:58:48 -07004340 const void* pNext /// Pointer to next structure
Jesse Halld27f6aa2015-08-15 17:58:48 -07004341 VkRenderPass renderPass /// Render pass for secondary command buffers
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004342 u32 subpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004343 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers
Jesse Hallf4ab2b12015-11-30 16:04:55 -08004344 VkBool32 occlusionQueryEnable
4345 VkQueryControlFlags queryFlags
4346 VkQueryPipelineStatisticFlags pipelineStatistics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004347}
4348
Jesse Hall3dd678a2016-01-08 21:52:01 -08004349class VkCommandBufferBeginInfo {
4350 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO
4351 const void* pNext /// Pointer to next structure
4352 VkCommandBufferUsageFlags flags /// Command buffer usage flags
4353 const VkCommandBufferInheritanceInfo* pInheritanceInfo
4354}
4355
Jesse Halld27f6aa2015-08-15 17:58:48 -07004356class VkRenderPassBeginInfo {
4357 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO
4358 const void* pNext /// Pointer to next structure
4359 VkRenderPass renderPass
4360 VkFramebuffer framebuffer
4361 VkRect2D renderArea
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004362 u32 clearValueCount
4363 const VkClearValue* pClearValues
Jesse Halld27f6aa2015-08-15 17:58:48 -07004364}
4365
4366@union
4367/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared.
4368class VkClearColorValue {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004369 f32[4] float32
4370 s32[4] int32
4371 u32[4] uint32
Jesse Halld27f6aa2015-08-15 17:58:48 -07004372}
4373
4374class VkClearDepthStencilValue {
4375 f32 depth
4376 u32 stencil
4377}
4378
4379@union
4380/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared.
4381class VkClearValue {
4382 VkClearColorValue color
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004383 VkClearDepthStencilValue depthStencil
Jesse Halld27f6aa2015-08-15 17:58:48 -07004384}
4385
Jesse Hallae38f732015-11-19 21:32:50 -08004386class VkClearAttachment {
4387 VkImageAspectFlags aspectMask
4388 u32 colorAttachment
4389 VkClearValue clearValue
4390}
4391
Jesse Halld27f6aa2015-08-15 17:58:48 -07004392class VkAttachmentDescription {
Jesse Halla6429252015-11-29 18:59:42 -08004393 VkAttachmentDescriptionFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004394 VkFormat format
Jesse Hall091ed9e2015-11-30 00:55:29 -08004395 VkSampleCountFlagBits samples
Jesse Halld27f6aa2015-08-15 17:58:48 -07004396 VkAttachmentLoadOp loadOp /// Load op for color or depth data
4397 VkAttachmentStoreOp storeOp /// Store op for color or depth data
4398 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data
4399 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data
4400 VkImageLayout initialLayout
4401 VkImageLayout finalLayout
4402}
4403
4404class VkAttachmentReference {
4405 u32 attachment
4406 VkImageLayout layout
4407}
4408
4409class VkSubpassDescription {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004410 VkSubpassDescriptionFlags flags
Jesse Halla6429252015-11-29 18:59:42 -08004411 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now
Jesse Hall03b6fe12015-11-24 12:44:21 -08004412 u32 inputAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004413 const VkAttachmentReference* pInputAttachments
Jesse Hall03b6fe12015-11-24 12:44:21 -08004414 u32 colorAttachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004415 const VkAttachmentReference* pColorAttachments
4416 const VkAttachmentReference* pResolveAttachments
Jesse Hallc7467b72015-11-29 21:05:26 -08004417 const VkAttachmentReference* pDepthStencilAttachment
Jesse Hall03b6fe12015-11-24 12:44:21 -08004418 u32 preserveAttachmentCount
Jesse Hall3dd678a2016-01-08 21:52:01 -08004419 const u32* pPreserveAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004420}
4421
4422class VkSubpassDependency {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004423 u32 srcSubpass
Jesse Hall3fbc8562015-11-29 22:10:52 -08004424 u32 dstSubpass
Jesse Halld27f6aa2015-08-15 17:58:48 -07004425 VkPipelineStageFlags srcStageMask
Jesse Hall3fbc8562015-11-29 22:10:52 -08004426 VkPipelineStageFlags dstStageMask
Jesse Hall3e0dc8f2015-11-30 00:42:57 -08004427 VkAccessFlags srcAccessMask
4428 VkAccessFlags dstAccessMask
Jesse Halldc6d36c2015-11-29 19:12:15 -08004429 VkDependencyFlags dependencyFlags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004430}
4431
4432class VkRenderPassCreateInfo {
4433 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO
4434 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004435 VkRenderPassCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004436 u32 attachmentCount
4437 const VkAttachmentDescription* pAttachments
4438 u32 subpassCount
4439 const VkSubpassDescription* pSubpasses
4440 u32 dependencyCount
4441 const VkSubpassDependency* pDependencies
4442}
4443
4444class VkEventCreateInfo {
4445 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO
4446 const void* pNext /// Pointer to next structure
4447 VkEventCreateFlags flags /// Event creation flags
4448}
4449
4450class VkFenceCreateInfo {
4451 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO
4452 const void* pNext /// Pointer to next structure
4453 VkFenceCreateFlags flags /// Fence creation flags
4454}
4455
4456class VkPhysicalDeviceFeatures {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004457 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined
4458 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls
4459 VkBool32 imageCubeArray /// image views which are arrays of cube maps
4460 VkBool32 independentBlend /// blending operations are controlled per-attachment
4461 VkBool32 geometryShader /// geometry stage
4462 VkBool32 tessellationShader /// tessellation control and evaluation stage
4463 VkBool32 sampleRateShading /// per-sample shading and interpolation
Jesse Hall3fbc8562015-11-29 22:10:52 -08004464 VkBool32 dualSrcBlend /// blend operations which take two sources
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004465 VkBool32 logicOp /// logic operations
4466 VkBool32 multiDrawIndirect /// multi draw indirect
Jesse Hall543a7ff2016-01-08 16:38:30 -08004467 VkBool32 drawIndirectFirstInstance
Jesse Hallae38f732015-11-19 21:32:50 -08004468 VkBool32 depthClamp /// depth clamping
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004469 VkBool32 depthBiasClamp /// depth bias clamping
4470 VkBool32 fillModeNonSolid /// point and wireframe fill modes
4471 VkBool32 depthBounds /// depth bounds test
4472 VkBool32 wideLines /// lines with width greater than 1
4473 VkBool32 largePoints /// points with size greater than 1
Jesse Hallfbf97b02015-11-20 14:17:03 -08004474 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value
4475 VkBool32 multiViewport
4476 VkBool32 samplerAnisotropy
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004477 VkBool32 textureCompressionETC2 /// ETC texture compression formats
4478 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats
4479 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats
Jesse Hall65ab5522015-11-30 00:07:16 -08004480 VkBool32 occlusionQueryPrecise
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004481 VkBool32 pipelineStatisticsQuery /// pipeline statistics query
Jesse Halldc6d36c2015-11-29 19:12:15 -08004482 VkBool32 vertexPipelineStoresAndAtomics
4483 VkBool32 fragmentStoresAndAtomics
4484 VkBool32 shaderTessellationAndGeometryPointSize
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004485 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets
4486 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images
4487 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images
Jesse Halld1af8122015-11-29 23:50:38 -08004488 VkBool32 shaderStorageImageReadWithoutFormat
4489 VkBool32 shaderStorageImageWriteWithoutFormat
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004490 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices
4491 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices
4492 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices
4493 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices
4494 VkBool32 shaderClipDistance /// clip distance in shaders
4495 VkBool32 shaderCullDistance /// cull distance in shaders
4496 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders
4497 VkBool32 shaderInt64 /// 64-bit integers in shaders
4498 VkBool32 shaderInt16 /// 16-bit integers in shaders
4499 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support)
Jesse Hall65ab5522015-11-30 00:07:16 -08004500 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004501 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level
4502 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers
4503 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images
4504 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images
4505 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples
4506 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples
4507 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples
4508 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples
4509 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in)
Jesse Halld1af8122015-11-29 23:50:38 -08004510 VkBool32 variableMultisampleRate
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004511 VkBool32 inheritedQueries
Jesse Halld27f6aa2015-08-15 17:58:48 -07004512}
4513
4514class VkPhysicalDeviceLimits {
4515 /// resource maximum sizes
4516 u32 maxImageDimension1D /// max 1D image dimension
4517 u32 maxImageDimension2D /// max 2D image dimension
4518 u32 maxImageDimension3D /// max 3D image dimension
4519 u32 maxImageDimensionCube /// max cubemap image dimension
4520 u32 maxImageArrayLayers /// max layers for image arrays
Jesse Hallb00daad2015-11-29 19:46:20 -08004521 u32 maxTexelBufferElements
Jesse Hallfbf97b02015-11-20 14:17:03 -08004522 u32 maxUniformBufferRange /// max uniform buffer size (bytes)
4523 u32 maxStorageBufferRange /// max storage buffer size (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004524 u32 maxPushConstantsSize /// max size of the push constants pool (bytes)
4525 /// memory limits
4526 u32 maxMemoryAllocationCount /// max number of device memory allocations supported
Jesse Hall091ed9e2015-11-30 00:55:29 -08004527 u32 maxSamplerAllocationCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004528 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage
4529 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004530 /// descriptor set limits
4531 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline
Jesse Halld27f6aa2015-08-15 17:58:48 -07004532 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set
4533 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set
4534 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set
4535 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set
4536 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004537 u32 maxPerStageDescriptorInputAttachments
Jesse Halldba27f72015-11-30 14:25:46 -08004538 u32 maxPerStageResources
Jesse Halld27f6aa2015-08-15 17:58:48 -07004539 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set
4540 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004541 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004542 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004543 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set
Jesse Halld27f6aa2015-08-15 17:58:48 -07004544 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set
4545 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set
Jesse Halle1b12782015-11-30 11:27:32 -08004546 u32 maxDescriptorSetInputAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004547 /// vertex stage limits
4548 u32 maxVertexInputAttributes /// max num of vertex input attribute slots
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004549 u32 maxVertexInputBindings /// max num of vertex input binding slots
Jesse Halld27f6aa2015-08-15 17:58:48 -07004550 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset
4551 u32 maxVertexInputBindingStride /// max vertex input binding stride
4552 u32 maxVertexOutputComponents /// max num of output components written by vertex shader
4553 /// tessellation control stage limits
Jesse Hall3fbc8562015-11-29 22:10:52 -08004554 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator
Jesse Hallae38f732015-11-19 21:32:50 -08004555 u32 maxTessellationPatchSize /// max patch size (vertices)
4556 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS
4557 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS
4558 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS
4559 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS
4560 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES
4561 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES
Jesse Halld27f6aa2015-08-15 17:58:48 -07004562 /// geometry stage limits
4563 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader
4564 u32 maxGeometryInputComponents /// max num of input components read in geometry stage
4565 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage
4566 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage
4567 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage
4568 /// fragment stage limits
4569 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage
Jesse Hallfbf97b02015-11-20 14:17:03 -08004570 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage
Jesse Hall3fbc8562015-11-29 22:10:52 -08004571 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending
Jesse Halld27f6aa2015-08-15 17:58:48 -07004572 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers
4573 /// compute stage limits
4574 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes)
4575 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z)
4576 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group
4577 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z)
4578
4579 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y
4580 u32 subTexelPrecisionBits /// num bits of subtexel precision
4581 u32 mipmapPrecisionBits /// num bits of mipmap precision
4582
4583 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices)
Jesse Halldba27f72015-11-30 14:25:46 -08004584 u32 maxDrawIndirectCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004585
4586 f32 maxSamplerLodBias /// max absolute sampler level of detail bias
4587 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy
4588
4589 u32 maxViewports /// max number of active viewports
Jesse Halld27f6aa2015-08-15 17:58:48 -07004590 u32[2] maxViewportDimensions /// max viewport dimensions (x,y)
4591 f32[2] viewportBoundsRange /// viewport bounds range (min,max)
4592 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport
4593
Jesse Halldc6d36c2015-11-29 19:12:15 -08004594 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes)
4595 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes)
4596 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes)
4597 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes)
Jesse Halld27f6aa2015-08-15 17:58:48 -07004598
Jesse Hallfbf97b02015-11-20 14:17:03 -08004599 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004600 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset
Jesse Hallfbf97b02015-11-20 14:17:03 -08004601 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07004602 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset
4603 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset
4604 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset
4605 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset
4606
4607 u32 maxFramebufferWidth /// max width for a framebuffer
4608 u32 maxFramebufferHeight /// max height for a framebuffer
4609 u32 maxFramebufferLayers /// max layer count for a layered framebuffer
Jesse Hall091ed9e2015-11-30 00:55:29 -08004610 VkSampleCountFlags framebufferColorSampleCounts
4611 VkSampleCountFlags framebufferDepthSampleCounts
4612 VkSampleCountFlags framebufferStencilSampleCounts
4613 VkSampleCountFlags framebufferNoAttachmentSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004614 u32 maxColorAttachments /// max num of framebuffer color attachments
4615
Jesse Hall091ed9e2015-11-30 00:55:29 -08004616 VkSampleCountFlags sampledImageColorSampleCounts
4617 VkSampleCountFlags sampledImageIntegerSampleCounts
4618 VkSampleCountFlags sampledImageDepthSampleCounts
4619 VkSampleCountFlags sampledImageStencilSampleCounts
4620 VkSampleCountFlags storageImageSampleCounts
Jesse Halld27f6aa2015-08-15 17:58:48 -07004621 u32 maxSampleMaskWords /// max num of sample mask words
Jesse Hallf9fa9a52016-01-08 16:08:51 -08004622 VkBool32 timestampComputeAndGraphics
Jesse Halld27f6aa2015-08-15 17:58:48 -07004623
Jesse Halla9bb62b2015-11-21 19:31:56 -08004624 f32 timestampPeriod
Jesse Halld27f6aa2015-08-15 17:58:48 -07004625
4626 u32 maxClipDistances /// max number of clip distances
4627 u32 maxCullDistances /// max number of cull distances
4628 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping
4629
Jesse Hallfbf97b02015-11-20 14:17:03 -08004630 u32 discreteQueuePriorities
4631
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004632 f32[2] pointSizeRange /// range (min,max) of supported point sizes
4633 f32[2] lineWidthRange /// range (min,max) of supported line widths
Jesse Halld27f6aa2015-08-15 17:58:48 -07004634 f32 pointSizeGranularity /// granularity of supported point sizes
4635 f32 lineWidthGranularity /// granularity of supported line widths
Jesse Hall03b6fe12015-11-24 12:44:21 -08004636 VkBool32 strictLines
Jesse Hall091ed9e2015-11-30 00:55:29 -08004637 VkBool32 standardSampleLocations
Jesse Halla9bb62b2015-11-21 19:31:56 -08004638
Jesse Hall65ab5522015-11-30 00:07:16 -08004639 VkDeviceSize optimalBufferCopyOffsetAlignment
4640 VkDeviceSize optimalBufferCopyRowPitchAlignment
Jesse Halldba27f72015-11-30 14:25:46 -08004641 VkDeviceSize nonCoherentAtomSize
Jesse Halld27f6aa2015-08-15 17:58:48 -07004642}
4643
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004644class VkPhysicalDeviceSparseProperties {
4645 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 -08004646 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 -07004647 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format)
4648 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 -07004649 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
4650}
4651
Jesse Halld27f6aa2015-08-15 17:58:48 -07004652class VkSemaphoreCreateInfo {
4653 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO
4654 const void* pNext /// Pointer to next structure
4655 VkSemaphoreCreateFlags flags /// Semaphore creation flags
4656}
4657
4658class VkQueryPoolCreateInfo {
4659 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO
4660 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004661 VkQueryPoolCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004662 VkQueryType queryType
Jesse Hall3dd678a2016-01-08 21:52:01 -08004663 u32 queryCount
Jesse Halld27f6aa2015-08-15 17:58:48 -07004664 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional
4665}
4666
4667class VkFramebufferCreateInfo {
4668 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO
4669 const void* pNext /// Pointer to next structure
Jesse Halla6429252015-11-29 18:59:42 -08004670 VkFramebufferCreateFlags flags
Jesse Halld27f6aa2015-08-15 17:58:48 -07004671 VkRenderPass renderPass
4672 u32 attachmentCount
Jesse Hall5ae3abb2015-10-08 14:00:22 -07004673 const VkImageView* pAttachments
Jesse Halld27f6aa2015-08-15 17:58:48 -07004674 u32 width
4675 u32 height
4676 u32 layers
4677}
4678
Jesse Hall3fbc8562015-11-29 22:10:52 -08004679class VkDrawIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004680 u32 vertexCount
4681 u32 instanceCount
4682 u32 firstVertex
4683 u32 firstInstance
4684}
4685
Jesse Hall3fbc8562015-11-29 22:10:52 -08004686class VkDrawIndexedIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004687 u32 indexCount
4688 u32 instanceCount
4689 u32 firstIndex
4690 s32 vertexOffset
4691 u32 firstInstance
4692}
4693
Jesse Hall3fbc8562015-11-29 22:10:52 -08004694class VkDispatchIndirectCommand {
Jesse Halld27f6aa2015-08-15 17:58:48 -07004695 u32 x
4696 u32 y
4697 u32 z
4698}
4699
Jesse Hall54f8d132018-04-18 08:16:59 -07004700class VkBaseOutStructure {
4701 VkStructureType sType
4702 void* pNext
4703}
4704
4705class VkBaseInStructure {
4706 VkStructureType sType
4707 const void* pNext
4708}
4709
Ian Elliott28bd2c32017-10-13 09:21:12 -06004710//@vulkan1_1 structures
Daniel Koch09f7bf92017-10-05 00:26:58 -04004711
4712class VkPhysicalDeviceSubgroupProperties {
4713 VkStructureType sType
4714 void* pNext
4715 u32 subgroupSize
4716 VkShaderStageFlags supportedStages
4717 VkSubgroupFeatureFlags supportedOperations
4718 VkBool32 quadOperationsInAllStages
4719}
4720
4721class VkBindBufferMemoryInfo {
4722 VkStructureType sType
4723 const void* pNext
4724 VkBuffer buffer
4725 VkDeviceMemory memory
4726 VkDeviceSize memoryOffset
4727}
4728
4729class VkBindImageMemoryInfo {
4730 VkStructureType sType
4731 const void* pNext
4732 VkImage image
4733 VkDeviceMemory memory
4734 VkDeviceSize memoryOffset
4735}
4736
4737class VkPhysicalDevice16BitStorageFeatures {
4738 VkStructureType sType
4739 void* pNext
4740 VkBool32 storageBuffer16BitAccess
4741 VkBool32 uniformAndStorageBuffer16BitAccess
4742 VkBool32 storagePushConstant16
4743 VkBool32 storageInputOutput16
4744}
4745
4746class VkMemoryDedicatedRequirements {
4747 VkStructureType sType
4748 void* pNext
4749 VkBool32 prefersDedicatedAllocation
4750 VkBool32 requiresDedicatedAllocation
4751}
4752
4753class VkMemoryDedicatedAllocateInfo {
4754 VkStructureType sType
4755 const void* pNext
4756 VkImage image
4757 VkBuffer buffer
4758}
4759
4760class VkMemoryAllocateFlagsInfo {
4761 VkStructureType sType
4762 const void* pNext
4763 VkMemoryAllocateFlags flags
4764 u32 deviceMask
4765}
4766
4767class VkDeviceGroupRenderPassBeginInfo {
4768 VkStructureType sType
4769 const void* pNext
4770 u32 deviceMask
4771 u32 deviceRenderAreaCount
4772 const VkRect2D* pDeviceRenderAreas
4773}
4774
4775class VkDeviceGroupCommandBufferBeginInfo {
4776 VkStructureType sType
4777 const void* pNext
4778 u32 deviceMask
4779}
4780
4781class VkDeviceGroupSubmitInfo {
4782 VkStructureType sType
4783 const void* pNext
4784 u32 waitSemaphoreCount
4785 const u32* pWaitSemaphoreDeviceIndices
4786 u32 commandBufferCount
4787 const u32* pCommandBufferDeviceMasks
4788 u32 signalSemaphoreCount
4789 const u32* pSignalSemaphoreDeviceIndices
4790}
4791
4792class VkDeviceGroupBindSparseInfo {
4793 VkStructureType sType
4794 const void* pNext
4795 u32 resourceDeviceIndex
4796 u32 memoryDeviceIndex
4797}
4798
4799class VkBindBufferMemoryDeviceGroupInfo {
4800 VkStructureType sType
4801 const void* pNext
4802 u32 deviceIndexCount
4803 const u32* pDeviceIndices
4804}
4805
4806class VkBindImageMemoryDeviceGroupInfo {
4807 VkStructureType sType
4808 const void* pNext
4809 u32 deviceIndexCount
4810 const u32* pDeviceIndices
Jesse Hall8c954d32018-01-17 22:06:20 -08004811 u32 splitInstanceBindRegionCount
4812 const VkRect2D* pSplitInstanceBindRegions
Daniel Koch09f7bf92017-10-05 00:26:58 -04004813}
4814
4815class VkPhysicalDeviceGroupProperties {
4816 VkStructureType sType
4817 void* pNext
4818 u32 physicalDeviceCount
4819 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
4820 VkBool32 subsetAllocation
4821}
4822
4823class VkDeviceGroupDeviceCreateInfo {
4824 VkStructureType sType
4825 const void* pNext
4826 u32 physicalDeviceCount
4827 const VkPhysicalDevice* pPhysicalDevices
4828}
4829
4830class VkBufferMemoryRequirementsInfo2 {
4831 VkStructureType sType
4832 const void* pNext
4833 VkBuffer buffer
4834}
4835
4836class VkImageMemoryRequirementsInfo2 {
4837 VkStructureType sType
4838 const void* pNext
4839 VkImage image
4840}
4841
4842class VkImageSparseMemoryRequirementsInfo2 {
4843 VkStructureType sType
4844 const void* pNext
4845 VkImage image
4846}
4847
4848class VkMemoryRequirements2 {
4849 VkStructureType sType
4850 void* pNext
4851 VkMemoryRequirements memoryRequirements
4852}
4853
4854class VkSparseImageMemoryRequirements2 {
4855 VkStructureType sType
4856 void* pNext
4857 VkSparseImageMemoryRequirements memoryRequirements
4858}
4859
4860class VkPhysicalDeviceFeatures2 {
4861 VkStructureType sType
4862 void* pNext
4863 VkPhysicalDeviceFeatures features
4864}
4865
4866class VkPhysicalDeviceProperties2 {
4867 VkStructureType sType
4868 void* pNext
4869 VkPhysicalDeviceProperties properties
4870}
4871
4872class VkFormatProperties2 {
4873 VkStructureType sType
4874 void* pNext
4875 VkFormatProperties formatProperties
4876}
4877
4878class VkImageFormatProperties2 {
4879 VkStructureType sType
4880 void* pNext
4881 VkImageFormatProperties imageFormatProperties
4882}
4883
4884class VkPhysicalDeviceImageFormatInfo2 {
4885 VkStructureType sType
4886 const void* pNext
4887 VkFormat format
4888 VkImageType type
4889 VkImageTiling tiling
4890 VkImageUsageFlags usage
4891 VkImageCreateFlags flags
4892}
4893
4894class VkQueueFamilyProperties2 {
4895 VkStructureType sType
4896 void* pNext
4897 VkQueueFamilyProperties queueFamilyProperties
4898}
4899
4900class VkPhysicalDeviceMemoryProperties2 {
4901 VkStructureType sType
4902 void* pNext
4903 VkPhysicalDeviceMemoryProperties memoryProperties
4904}
4905
4906class VkSparseImageFormatProperties2 {
4907 VkStructureType sType
4908 void* pNext
4909 VkSparseImageFormatProperties properties
4910}
4911
4912class VkPhysicalDeviceSparseImageFormatInfo2 {
4913 VkStructureType sType
4914 const void* pNext
4915 VkFormat format
4916 VkImageType type
4917 VkSampleCountFlagBits samples
4918 VkImageUsageFlags usage
4919 VkImageTiling tiling
4920}
4921
4922class VkPhysicalDevicePointClippingProperties {
4923 VkStructureType sType
4924 void* pNext
4925 VkPointClippingBehavior pointClippingBehavior
4926}
4927
4928class VkInputAttachmentAspectReference {
4929 u32 subpass
4930 u32 inputAttachmentIndex
4931 VkImageAspectFlags aspectMask
4932}
4933
4934class VkRenderPassInputAttachmentAspectCreateInfo {
4935 VkStructureType sType
4936 const void* pNext
4937 u32 aspectReferenceCount
4938 const VkInputAttachmentAspectReference* pAspectReferences
4939}
4940
4941class VkImageViewUsageCreateInfo {
4942 VkStructureType sType
4943 const void* pNext
4944 VkImageUsageFlags usage
4945}
4946
4947class VkPipelineTessellationDomainOriginStateCreateInfo {
4948 VkStructureType sType
4949 const void* pNext
4950 VkTessellationDomainOrigin domainOrigin
4951}
4952
4953class VkRenderPassMultiviewCreateInfo {
4954 VkStructureType sType
4955 const void* pNext
4956 u32 subpassCount
4957 const u32* pViewMasks
4958 u32 dependencyCount
4959 const s32* pViewOffsets
4960 u32 correlationMaskCount
4961 const u32* pCorrelationMasks
4962}
4963
4964class VkPhysicalDeviceMultiviewFeatures {
4965 VkStructureType sType
4966 void* pNext
4967 VkBool32 multiview
4968 VkBool32 multiviewGeometryShader
4969 VkBool32 multiviewTessellationShader
4970}
4971
4972class VkPhysicalDeviceMultiviewProperties {
4973 VkStructureType sType
4974 void* pNext
4975 u32 maxMultiviewViewCount
4976 u32 maxMultiviewInstanceIndex
4977}
4978
4979class VkPhysicalDeviceVariablePointerFeatures {
4980 VkStructureType sType
4981 void* pNext
4982 VkBool32 variablePointersStorageBuffer
4983 VkBool32 variablePointers
4984}
4985
4986class VkPhysicalDeviceProtectedMemoryFeatures {
4987 VkStructureType sType
4988 void* pNext
4989 VkBool32 protectedMemory
4990}
4991
4992class VkPhysicalDeviceProtectedMemoryProperties {
4993 VkStructureType sType
4994 void* pNext
4995 VkBool32 protectedNoFault
4996}
4997
4998class VkDeviceQueueInfo2 {
4999 VkStructureType sType
5000 const void* pNext
5001 VkDeviceQueueCreateFlags flags
5002 u32 queueFamilyIndex
5003 u32 queueIndex
5004}
5005
5006class VkProtectedSubmitInfo {
5007 VkStructureType sType
5008 const void* pNext
5009 VkBool32 protectedSubmit
5010}
5011
5012class VkSamplerYcbcrConversionCreateInfo {
5013 VkStructureType sType
5014 const void* pNext
5015 VkFormat format
5016 VkSamplerYcbcrModelConversion ycbcrModel
5017 VkSamplerYcbcrRange ycbcrRange
5018 VkComponentMapping components
5019 VkChromaLocation xChromaOffset
5020 VkChromaLocation yChromaOffset
5021 VkFilter chromaFilter
5022 VkBool32 forceExplicitReconstruction
5023}
5024
5025class VkSamplerYcbcrConversionInfo {
5026 VkStructureType sType
5027 const void* pNext
5028 VkSamplerYcbcrConversion conversion
5029}
5030
5031class VkBindImagePlaneMemoryInfo {
5032 VkStructureType sType
5033 const void* pNext
5034 VkImageAspectFlagBits planeAspect
5035}
5036
5037class VkImagePlaneMemoryRequirementsInfo {
5038 VkStructureType sType
5039 const void* pNext
5040 VkImageAspectFlagBits planeAspect
5041}
5042
5043class VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5044 VkStructureType sType
5045 void* pNext
5046 VkBool32 samplerYcbcrConversion
5047}
5048
5049class VkSamplerYcbcrConversionImageFormatProperties {
5050 VkStructureType sType
5051 void* pNext
5052 u32 combinedImageSamplerDescriptorCount
5053}
5054
5055class VkDescriptorUpdateTemplateEntry {
5056 u32 dstBinding
5057 u32 dstArrayElement
5058 u32 descriptorCount
5059 VkDescriptorType descriptorType
5060 platform.size_t offset
5061 platform.size_t stride
5062}
5063
5064class VkDescriptorUpdateTemplateCreateInfo {
5065 VkStructureType sType
Jesse Hall48514722018-12-04 14:44:42 -08005066 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005067 VkDescriptorUpdateTemplateCreateFlags flags
5068 u32 descriptorUpdateEntryCount
5069 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries
5070 VkDescriptorUpdateTemplateType templateType
5071 VkDescriptorSetLayout descriptorSetLayout
5072 VkPipelineBindPoint pipelineBindPoint
5073 VkPipelineLayout pipelineLayout
5074 u32 set
5075}
5076
5077class VkExternalMemoryProperties {
5078 VkExternalMemoryFeatureFlags externalMemoryFeatures
5079 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes
5080 VkExternalMemoryHandleTypeFlags compatibleHandleTypes
5081}
5082
5083class VkPhysicalDeviceExternalImageFormatInfo {
5084 VkStructureType sType
5085 const void* pNext
5086 VkExternalMemoryHandleTypeFlagBits handleType
5087}
5088
5089class VkExternalImageFormatProperties {
5090 VkStructureType sType
5091 void* pNext
5092 VkExternalMemoryProperties externalMemoryProperties
5093}
5094
5095class VkPhysicalDeviceExternalBufferInfo {
5096 VkStructureType sType
5097 const void* pNext
5098 VkBufferCreateFlags flags
5099 VkBufferUsageFlags usage
5100 VkExternalMemoryHandleTypeFlagBits handleType
5101}
5102
5103class VkExternalBufferProperties {
5104 VkStructureType sType
5105 void* pNext
5106 VkExternalMemoryProperties externalMemoryProperties
5107}
5108
5109class VkPhysicalDeviceIDProperties {
5110 VkStructureType sType
5111 void* pNext
5112 u8[VK_UUID_SIZE] deviceUUID
5113 u8[VK_UUID_SIZE] driverUUID
5114 u8[VK_LUID_SIZE] deviceLUID
5115 u32 deviceNodeMask
5116 VkBool32 deviceLUIDValid
5117}
5118
5119class VkExternalMemoryImageCreateInfo {
5120 VkStructureType sType
5121 const void* pNext
5122 VkExternalMemoryHandleTypeFlags handleTypes
5123}
5124
5125class VkExternalMemoryBufferCreateInfo {
5126 VkStructureType sType
5127 const void* pNext
5128 VkExternalMemoryHandleTypeFlags handleTypes
5129}
5130
5131class VkExportMemoryAllocateInfo {
5132 VkStructureType sType
5133 const void* pNext
5134 VkExternalMemoryHandleTypeFlags handleTypes
5135}
5136
5137class VkPhysicalDeviceExternalFenceInfo {
5138 VkStructureType sType
5139 const void* pNext
5140 VkExternalFenceHandleTypeFlagBits handleType
5141}
5142
5143class VkExternalFenceProperties {
5144 VkStructureType sType
5145 void* pNext
5146 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes
5147 VkExternalFenceHandleTypeFlags compatibleHandleTypes
5148 VkExternalFenceFeatureFlags externalFenceFeatures
5149}
5150
5151class VkExportFenceCreateInfo {
5152 VkStructureType sType
5153 const void* pNext
5154 VkExternalFenceHandleTypeFlags handleTypes
5155}
5156
5157class VkExportSemaphoreCreateInfo {
5158 VkStructureType sType
5159 const void* pNext
5160 VkExternalSemaphoreHandleTypeFlags handleTypes
5161}
5162
5163class VkPhysicalDeviceExternalSemaphoreInfo {
5164 VkStructureType sType
5165 const void* pNext
5166 VkExternalSemaphoreHandleTypeFlagBits handleType
5167}
5168
5169class VkExternalSemaphoreProperties {
5170 VkStructureType sType
5171 void* pNext
5172 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes
5173 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes
5174 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures
5175}
5176
5177class VkPhysicalDeviceMaintenance3Properties {
5178 VkStructureType sType
5179 void* pNext
5180 u32 maxPerSetDescriptors
5181 VkDeviceSize maxMemoryAllocationSize
5182}
5183
5184class VkDescriptorSetLayoutSupport {
5185 VkStructureType sType
5186 void* pNext
5187 VkBool32 supported
5188}
5189
5190class VkPhysicalDeviceShaderDrawParameterFeatures {
5191 VkStructureType sType
5192 void* pNext
5193 VkBool32 shaderDrawParameters
5194}
5195
5196
Jesse Hallad250842017-03-10 18:35:38 -08005197@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -08005198class VkSurfaceCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005199 u32 minImageCount
5200 u32 maxImageCount
5201 VkExtent2D currentExtent
5202 VkExtent2D minImageExtent
5203 VkExtent2D maxImageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005204 u32 maxImageArrayLayers
Jesse Hall1356b0d2015-11-23 17:24:58 -08005205 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005206 VkSurfaceTransformFlagBitsKHR currentTransform
Jesse Halla6429252015-11-29 18:59:42 -08005207 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005208 VkImageUsageFlags supportedUsageFlags
Michael Lentine88594d72015-11-12 12:49:45 -08005209}
5210
Jesse Hallad250842017-03-10 18:35:38 -08005211@extension("VK_KHR_surface") // 1
Michael Lentine88594d72015-11-12 12:49:45 -08005212class VkSurfaceFormatKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005213 VkFormat format
5214 VkColorSpaceKHR colorSpace
Michael Lentine88594d72015-11-12 12:49:45 -08005215}
5216
Jesse Hallad250842017-03-10 18:35:38 -08005217@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005218class VkSwapchainCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005219 VkStructureType sType
5220 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005221 VkSwapchainCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005222 VkSurfaceKHR surface
5223 u32 minImageCount
5224 VkFormat imageFormat
5225 VkColorSpaceKHR imageColorSpace
5226 VkExtent2D imageExtent
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005227 u32 imageArrayLayers
5228 VkImageUsageFlags imageUsage
Jesse Hall1356b0d2015-11-23 17:24:58 -08005229 VkSharingMode sharingMode
Jesse Hall03b6fe12015-11-24 12:44:21 -08005230 u32 queueFamilyIndexCount
Jesse Hall1356b0d2015-11-23 17:24:58 -08005231 const u32* pQueueFamilyIndices
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005232 VkSurfaceTransformFlagBitsKHR preTransform
5233 VkCompositeAlphaFlagBitsKHR compositeAlpha
Jesse Hall1356b0d2015-11-23 17:24:58 -08005234 VkPresentModeKHR presentMode
Jesse Hall1356b0d2015-11-23 17:24:58 -08005235 VkBool32 clipped
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005236 VkSwapchainKHR oldSwapchain
Michael Lentine88594d72015-11-12 12:49:45 -08005237}
5238
Jesse Hallad250842017-03-10 18:35:38 -08005239@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -08005240class VkPresentInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005241 VkStructureType sType
5242 const void* pNext
Jesse Hallb00daad2015-11-29 19:46:20 -08005243 u32 waitSemaphoreCount
5244 const VkSemaphore* pWaitSemaphores
Jesse Hall1356b0d2015-11-23 17:24:58 -08005245 u32 swapchainCount
Jesse Hall03b6fe12015-11-24 12:44:21 -08005246 const VkSwapchainKHR* pSwapchains
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005247 const u32* pImageIndices
Jesse Halle1b12782015-11-30 11:27:32 -08005248 VkResult* pResults
Michael Lentine88594d72015-11-12 12:49:45 -08005249}
5250
Ian Elliott28bd2c32017-10-13 09:21:12 -06005251@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005252@extension("VK_KHR_swapchain") // 2
5253class VkImageSwapchainCreateInfoKHR {
5254 VkStructureType sType
5255 const void* pNext
5256 VkSwapchainKHR swapchain
5257}
5258
Ian Elliott28bd2c32017-10-13 09:21:12 -06005259@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005260@extension("VK_KHR_swapchain") // 2
5261class VkBindImageMemorySwapchainInfoKHR {
5262 VkStructureType sType
5263 const void* pNext
5264 VkSwapchainKHR swapchain
5265 u32 imageIndex
5266}
5267
Ian Elliott28bd2c32017-10-13 09:21:12 -06005268@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005269@extension("VK_KHR_swapchain") // 2
5270class VkAcquireNextImageInfoKHR {
5271 VkStructureType sType
5272 const void* pNext
5273 VkSwapchainKHR swapchain
5274 u64 timeout
5275 VkSemaphore semaphore
5276 VkFence fence
5277 u32 deviceMask
5278}
5279
Ian Elliott28bd2c32017-10-13 09:21:12 -06005280@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005281@extension("VK_KHR_swapchain") // 2
5282class VkDeviceGroupPresentCapabilitiesKHR {
5283 VkStructureType sType
5284 const void* pNext
5285 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask
5286 VkDeviceGroupPresentModeFlagsKHR modes
5287}
5288
Ian Elliott28bd2c32017-10-13 09:21:12 -06005289@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005290@extension("VK_KHR_swapchain") // 2
5291class VkDeviceGroupPresentInfoKHR {
5292 VkStructureType sType
5293 const void* pNext
5294 u32 swapchainCount
5295 const u32* pDeviceMasks
5296 VkDeviceGroupPresentModeFlagBitsKHR mode
5297}
5298
Ian Elliott28bd2c32017-10-13 09:21:12 -06005299@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04005300@extension("VK_KHR_swapchain") // 2
5301class VkDeviceGroupSwapchainCreateInfoKHR {
5302 VkStructureType sType
5303 const void* pNext
5304 VkDeviceGroupPresentModeFlagsKHR modes
5305}
5306
Jesse Hallad250842017-03-10 18:35:38 -08005307@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005308class VkDisplayPropertiesKHR {
5309 VkDisplayKHR display
5310 const char* displayName
5311 VkExtent2D physicalDimensions
5312 VkExtent2D physicalResolution
5313 VkSurfaceTransformFlagsKHR supportedTransforms
Jesse Hall1356b0d2015-11-23 17:24:58 -08005314 VkBool32 planeReorderPossible
Jesse Halla6429252015-11-29 18:59:42 -08005315 VkBool32 persistentContent
Michael Lentine88594d72015-11-12 12:49:45 -08005316}
5317
Jesse Hallad250842017-03-10 18:35:38 -08005318@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005319class VkDisplayModeParametersKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005320 VkExtent2D visibleRegion
Jesse Halla6429252015-11-29 18:59:42 -08005321 u32 refreshRate
Michael Lentine88594d72015-11-12 12:49:45 -08005322}
Jesse Halld27f6aa2015-08-15 17:58:48 -07005323
Jesse Hallad250842017-03-10 18:35:38 -08005324@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005325class VkDisplayModePropertiesKHR {
5326 VkDisplayModeKHR displayMode
Jesse Halla6429252015-11-29 18:59:42 -08005327 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005328}
5329
Jesse Hallad250842017-03-10 18:35:38 -08005330@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005331class VkDisplayModeCreateInfoKHR {
5332 VkStructureType sType
5333 const void* pNext
Jesse Hall9ba8bc82015-11-30 16:22:16 -08005334 VkDisplayModeCreateFlagsKHR flags
Jesse Halla6429252015-11-29 18:59:42 -08005335 VkDisplayModeParametersKHR parameters
Jesse Hall1356b0d2015-11-23 17:24:58 -08005336}
5337
Jesse Hallad250842017-03-10 18:35:38 -08005338@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -08005339class VkDisplayPlanePropertiesKHR {
Jesse Halla6429252015-11-29 18:59:42 -08005340 VkDisplayKHR currentDisplay
5341 u32 currentStackIndex
5342}
5343
Jesse Hallad250842017-03-10 18:35:38 -08005344@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005345class VkDisplayPlaneCapabilitiesKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005346 VkDisplayPlaneAlphaFlagsKHR supportedAlpha
5347 VkOffset2D minSrcPosition
5348 VkOffset2D maxSrcPosition
5349 VkExtent2D minSrcExtent
5350 VkExtent2D maxSrcExtent
5351 VkOffset2D minDstPosition
5352 VkOffset2D maxDstPosition
5353 VkExtent2D minDstExtent
5354 VkExtent2D maxDstExtent
5355}
5356
Jesse Hallad250842017-03-10 18:35:38 -08005357@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -08005358class VkDisplaySurfaceCreateInfoKHR {
Jesse Hall1356b0d2015-11-23 17:24:58 -08005359 VkStructureType sType
5360 const void* pNext
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005361 VkDisplaySurfaceCreateFlagsKHR flags
Jesse Hall1356b0d2015-11-23 17:24:58 -08005362 VkDisplayModeKHR displayMode
5363 u32 planeIndex
5364 u32 planeStackIndex
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005365 VkSurfaceTransformFlagBitsKHR transform
Jesse Hall1356b0d2015-11-23 17:24:58 -08005366 f32 globalAlpha
Jesse Hallf4ab2b12015-11-30 16:04:55 -08005367 VkDisplayPlaneAlphaFlagBitsKHR alphaMode
5368 VkExtent2D imageExtent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005369}
5370
Jesse Hallad250842017-03-10 18:35:38 -08005371@extension("VK_KHR_display_swapchain") // 4
Jesse Hall1356b0d2015-11-23 17:24:58 -08005372class VkDisplayPresentInfoKHR {
5373 VkStructureType sType
5374 const void* pNext
5375 VkRect2D srcRect
5376 VkRect2D dstRect
Jesse Halla6429252015-11-29 18:59:42 -08005377 VkBool32 persistent
Jesse Hall1356b0d2015-11-23 17:24:58 -08005378}
5379
Jesse Hallad250842017-03-10 18:35:38 -08005380@extension("VK_KHR_xlib_surface") // 5
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005381class VkXlibSurfaceCreateInfoKHR {
5382 VkStructureType sType
5383 const void* pNext
5384 VkXlibSurfaceCreateFlagsKHR flags
5385 platform.Display* dpy
5386 platform.Window window
5387}
5388
Jesse Hallad250842017-03-10 18:35:38 -08005389@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005390class VkXcbSurfaceCreateInfoKHR {
5391 VkStructureType sType
5392 const void* pNext
5393 VkXcbSurfaceCreateFlagsKHR flags
5394 platform.xcb_connection_t* connection
5395 platform.xcb_window_t window
5396}
5397
Jesse Hallad250842017-03-10 18:35:38 -08005398@extension("VK_KHR_wayland_surface") // 7
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005399class VkWaylandSurfaceCreateInfoKHR {
5400 VkStructureType sType
5401 const void* pNext
5402 VkWaylandSurfaceCreateFlagsKHR flags
5403 platform.wl_display* display
5404 platform.wl_surface* surface
5405}
5406
Jesse Hallad250842017-03-10 18:35:38 -08005407@extension("VK_KHR_android_surface") // 9
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005408class VkAndroidSurfaceCreateInfoKHR {
5409 VkStructureType sType
5410 const void* pNext
5411 VkAndroidSurfaceCreateFlagsKHR flags
5412 platform.ANativeWindow* window
5413}
5414
Jesse Hallad250842017-03-10 18:35:38 -08005415@extension("VK_KHR_win32_surface") // 10
Jesse Hallf9fa9a52016-01-08 16:08:51 -08005416class VkWin32SurfaceCreateInfoKHR {
5417 VkStructureType sType
5418 const void* pNext
5419 VkWin32SurfaceCreateFlagsKHR flags
5420 platform.HINSTANCE hinstance
5421 platform.HWND hwnd
5422}
5423
Jesse Hallad250842017-03-10 18:35:38 -08005424@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -08005425@internal class Gralloc1Usage {
5426 u64 consumer
5427 u64 producer
5428}
5429
Jesse Hallad250842017-03-10 18:35:38 -08005430@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +08005431class VkNativeBufferANDROID {
5432 VkStructureType sType
5433 const void* pNext
5434 platform.buffer_handle_t handle
Jesse Halld1abd742017-02-09 21:45:51 -08005435 s32 stride
5436 s32 format
5437 s32 usage
5438 Gralloc1Usage usage2
Chia-I Wub262ddc2016-03-22 07:38:20 +08005439}
5440
Jesse Hallad250842017-03-10 18:35:38 -08005441@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes8e4438b2016-12-07 16:26:49 +13005442class VkSwapchainImageCreateInfoANDROID {
5443 VkStructureType sType
5444 const void* pNext
Chris Forbes134d9582017-01-12 14:26:37 +13005445 VkSwapchainImageUsageFlagsANDROID flags
Chris Forbes48853712017-01-12 14:09:33 +13005446}
Ian Elliott4c8bb2a2016-12-29 11:07:26 -07005447
Jesse Hallad250842017-03-10 18:35:38 -08005448@extension("VK_ANDROID_native_buffer") // 11
Chris Forbes1d4e5542017-02-15 19:38:50 +13005449class VkPhysicalDevicePresentationPropertiesANDROID {
5450 VkStructureType sType
5451 void* pNext
5452 VkBool32 sharedImage
5453}
5454
Jesse Hallad250842017-03-10 18:35:38 -08005455@extension("VK_EXT_debug_report") // 12
Jesse Hall715b86a2016-01-16 16:34:29 -08005456class VkDebugReportCallbackCreateInfoEXT {
5457 VkStructureType sType
5458 const void* pNext
5459 VkDebugReportFlagsEXT flags
5460 PFN_vkDebugReportCallbackEXT pfnCallback
5461 void* pUserData
5462}
5463
Jesse Hallad250842017-03-10 18:35:38 -08005464@extension("VK_AMD_rasterization_order") // 19
Jesse Hall26763382016-05-20 07:13:52 -07005465class VkPipelineRasterizationStateRasterizationOrderAMD {
5466 VkStructureType sType
5467 const void* pNext
5468 VkRasterizationOrderAMD rasterizationOrder
5469}
5470
Jesse Hallad250842017-03-10 18:35:38 -08005471@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005472class VkDebugMarkerObjectNameInfoEXT {
5473 VkStructureType sType
5474 const void* pNext
5475 VkDebugReportObjectTypeEXT objectType
5476 u64 object
5477 const char* pObjectName
5478}
5479
Jesse Hallad250842017-03-10 18:35:38 -08005480@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005481class VkDebugMarkerObjectTagInfoEXT {
5482 VkStructureType sType
5483 const void* pNext
5484 VkDebugReportObjectTypeEXT objectType
5485 u64 object
5486 u64 tagName
5487 platform.size_t tagSize
5488 const void* pTag
5489}
5490
Jesse Hallad250842017-03-10 18:35:38 -08005491@extension("VK_EXT_debug_marker") // 23
Jesse Hall26763382016-05-20 07:13:52 -07005492class VkDebugMarkerMarkerInfoEXT {
5493 VkStructureType sType
5494 const void* pNext
5495 const char* pMarkerName
5496 f32[4] color
5497}
5498
Jesse Hallad250842017-03-10 18:35:38 -08005499@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005500class VkDedicatedAllocationImageCreateInfoNV {
5501 VkStructureType sType
5502 const void* pNext
5503 VkBool32 dedicatedAllocation
5504}
5505
Jesse Hallad250842017-03-10 18:35:38 -08005506@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005507class VkDedicatedAllocationBufferCreateInfoNV {
5508 VkStructureType sType
5509 const void* pNext
5510 VkBool32 dedicatedAllocation
5511}
5512
Jesse Hallad250842017-03-10 18:35:38 -08005513@extension("VK_NV_dedicated_allocation") // 27
Jesse Hall56d386a2016-07-26 15:20:40 -07005514class VkDedicatedAllocationMemoryAllocateInfoNV {
5515 VkStructureType sType
5516 const void* pNext
5517 VkImage image
5518 VkBuffer buffer
5519}
5520
Jesse Hallf47e8f82018-10-27 23:41:45 -07005521@extension("VK_EXT_transform_feedback") // 29
5522class VkPhysicalDeviceTransformFeedbackFeaturesEXT {
5523 VkStructureType sType
5524 void* pNext
5525 VkBool32 transformFeedback
5526 VkBool32 geometryStreams
5527}
5528
5529@extension("VK_EXT_transform_feedback") // 29
5530class VkPhysicalDeviceTransformFeedbackPropertiesEXT {
5531 VkStructureType sType
5532 void* pNext
5533 u32 maxTransformFeedbackStreams
5534 u32 maxTransformFeedbackBuffers
5535 VkDeviceSize maxTransformFeedbackBufferSize
5536 u32 maxTransformFeedbackStreamDataSize
5537 u32 maxTransformFeedbackBufferDataSize
5538 u32 maxTransformFeedbackBufferDataStride
5539 VkBool32 transformFeedbackQueries
5540 VkBool32 transformFeedbackStreamsLinesTriangles
5541 VkBool32 transformFeedbackRasterizationStreamSelect
5542 VkBool32 transformFeedbackDraw
5543}
5544
5545@extension("VK_EXT_transform_feedback") // 29
5546class VkPipelineRasterizationStateStreamCreateInfoEXT {
5547 VkStructureType sType
5548 const void* pNext
5549 VkPipelineRasterizationStateStreamCreateFlagsEXT flags
5550 u32 rasterizationStream
5551}
5552
Jesse Hall7ba0ac72017-07-07 17:13:23 -07005553@extension("VK_AMD_texture_gather_bias_lod") // 42
5554class VkTextureLODGatherFormatPropertiesAMD {
5555 VkStructureType sType
5556 void* pNext
5557 VkBool32 supportsTextureGatherLODBiasAMD
5558}
5559
Jesse Hall8c954d32018-01-17 22:06:20 -08005560@extension("VK_AMD_shader_info") // 43
5561class VkShaderResourceUsageAMD {
5562 u32 numUsedVgprs
5563 u32 numUsedSgprs
5564 u32 ldsSizePerLocalWorkGroup
5565 platform.size_t ldsUsageSizeInBytes
5566 platform.size_t scratchMemUsageInBytes
5567}
5568
5569@extension("VK_AMD_shader_info") // 43
5570class VkShaderStatisticsInfoAMD {
5571 VkShaderStageFlags shaderStageMask
5572 VkShaderResourceUsageAMD resourceUsage
5573 u32 numPhysicalVgprs
5574 u32 numPhysicalSgprs
5575 u32 numAvailableVgprs
5576 u32 numAvailableSgprs
5577 u32[3] computeWorkGroupSize
5578}
5579
Jesse Hallb5297192018-09-22 20:52:13 +02005580@extension("VK_NV_corner_sampled_image") // 51
5581class VkPhysicalDeviceCornerSampledImageFeaturesNV {
5582 VkStructureType sType
5583 void* pNext
5584 VkBool32 cornerSampledImage
5585}
5586
Daniel Koch09f7bf92017-10-05 00:26:58 -04005587@extension("VK_KHR_multiview") // 54
5588class VkRenderPassMultiviewCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005589 VkStructureType sType
5590 const void* pNext
5591 u32 subpassCount
5592 const u32* pViewMasks
5593 u32 dependencyCount
5594 const s32* pViewOffsets
5595 u32 correlationMaskCount
5596 const u32* pCorrelationMasks
5597}
5598
Daniel Koch09f7bf92017-10-05 00:26:58 -04005599@extension("VK_KHR_multiview") // 54
5600class VkPhysicalDeviceMultiviewFeaturesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005601 VkStructureType sType
5602 void* pNext
5603 VkBool32 multiview
5604 VkBool32 multiviewGeometryShader
5605 VkBool32 multiviewTessellationShader
5606}
5607
Daniel Koch09f7bf92017-10-05 00:26:58 -04005608@extension("VK_KHR_multiview") // 54
5609class VkPhysicalDeviceMultiviewPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005610 VkStructureType sType
5611 void* pNext
5612 u32 maxMultiviewViewCount
5613 u32 maxMultiviewInstanceIndex
5614}
5615
5616@extension("VK_NV_external_memory_capabilities") // 56
Jesse Halleb02c472017-02-24 15:13:45 -08005617class VkExternalImageFormatPropertiesNV {
5618 VkImageFormatProperties imageFormatProperties
5619 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures
5620 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes
5621 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes
5622}
5623
Jesse Hallad250842017-03-10 18:35:38 -08005624@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005625class VkExternalMemoryImageCreateInfoNV {
5626 VkStructureType sType
5627 const void* pNext
5628 VkExternalMemoryHandleTypeFlagsNV handleTypes
5629}
5630
Jesse Hallad250842017-03-10 18:35:38 -08005631@extension("VK_NV_external_memory") // 57
Jesse Halleb02c472017-02-24 15:13:45 -08005632class VkExportMemoryAllocateInfoNV {
5633 VkStructureType sType
5634 const void* pNext
5635 VkExternalMemoryHandleTypeFlagsNV handleTypes
5636}
5637
Jesse Hallad250842017-03-10 18:35:38 -08005638@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005639class VkImportMemoryWin32HandleInfoNV {
5640 VkStructureType sType
5641 const void* pNext
5642 VkExternalMemoryHandleTypeFlagsNV handleType
5643 platform.HANDLE handle
5644}
5645
Jesse Hallad250842017-03-10 18:35:38 -08005646@extension("VK_NV_external_memory_win32") // 58
Jesse Halleb02c472017-02-24 15:13:45 -08005647class VkExportMemoryWin32HandleInfoNV {
5648 VkStructureType sType
5649 const void* pNext
5650 const platform.SECURITY_ATTRIBUTES* pAttributes
5651 platform.DWORD dwAccess
5652}
5653
Jesse Hallad250842017-03-10 18:35:38 -08005654@extension("VK_NV_win32_keyed_mutex") // 59
Jesse Halleb02c472017-02-24 15:13:45 -08005655class VkWin32KeyedMutexAcquireReleaseInfoNV {
5656 VkStructureType sType
5657 const void* pNext
5658 u32 acquireCount
5659 const VkDeviceMemory* pAcquireSyncs
5660 const u64* pAcquireKeys
5661 const u32* pAcquireTimeoutMilliseconds
5662 u32 releaseCount
5663 const VkDeviceMemory* pReleaseSyncs
5664 const u64* pReleaseKeys
5665}
5666
Jesse Hallad250842017-03-10 18:35:38 -08005667@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005668class VkPhysicalDeviceFeatures2KHR {
5669 VkStructureType sType
5670 void* pNext
5671 VkPhysicalDeviceFeatures features
5672}
5673
Jesse Hallad250842017-03-10 18:35:38 -08005674@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005675class VkPhysicalDeviceProperties2KHR {
5676 VkStructureType sType
5677 void* pNext
5678 VkPhysicalDeviceProperties properties
5679}
5680
Jesse Hallad250842017-03-10 18:35:38 -08005681@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005682class VkFormatProperties2KHR {
5683 VkStructureType sType
5684 void* pNext
5685 VkFormatProperties formatProperties
5686}
5687
Jesse Hallad250842017-03-10 18:35:38 -08005688@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005689class VkImageFormatProperties2KHR {
5690 VkStructureType sType
5691 void* pNext
5692 VkImageFormatProperties imageFormatProperties
5693}
5694
Jesse Hallad250842017-03-10 18:35:38 -08005695@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005696class VkPhysicalDeviceImageFormatInfo2KHR {
5697 VkStructureType sType
5698 const void* pNext
5699 VkFormat format
5700 VkImageType type
5701 VkImageTiling tiling
5702 VkImageUsageFlags usage
5703 VkImageCreateFlags flags
5704}
5705
Jesse Hallad250842017-03-10 18:35:38 -08005706@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005707class VkQueueFamilyProperties2KHR {
5708 VkStructureType sType
5709 void* pNext
5710 VkQueueFamilyProperties queueFamilyProperties
5711}
5712
Jesse Hallad250842017-03-10 18:35:38 -08005713@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005714class VkPhysicalDeviceMemoryProperties2KHR {
5715 VkStructureType sType
5716 void* pNext
5717 VkPhysicalDeviceMemoryProperties memoryProperties
5718}
5719
Jesse Hallad250842017-03-10 18:35:38 -08005720@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005721class VkSparseImageFormatProperties2KHR {
5722 VkStructureType sType
5723 void* pNext
5724 VkSparseImageFormatProperties properties
5725}
5726
Jesse Hallad250842017-03-10 18:35:38 -08005727@extension("VK_KHR_get_physical_device_properties2") // 60
Chris Forbes1194ede2016-12-30 16:29:25 +13005728class VkPhysicalDeviceSparseImageFormatInfo2KHR {
5729 VkStructureType sType
5730 const void* pNext
5731 VkFormat format
5732 VkImageType type
5733 VkSampleCountFlagBits samples
5734 VkImageUsageFlags usage
5735 VkImageTiling tiling
5736}
5737
Daniel Koch09f7bf92017-10-05 00:26:58 -04005738@extension("VK_KHR_device_group") // 61
5739class VkMemoryAllocateFlagsInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005740 VkStructureType sType
5741 const void* pNext
Daniel Koch09f7bf92017-10-05 00:26:58 -04005742 VkMemoryAllocateFlagsKHR flags
Jesse Hallad250842017-03-10 18:35:38 -08005743 u32 deviceMask
5744}
5745
Daniel Koch09f7bf92017-10-05 00:26:58 -04005746@extension("VK_KHR_device_group") // 61
5747class VkBindBufferMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005748 VkStructureType sType
5749 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005750 u32 deviceIndexCount
5751 const u32* pDeviceIndices
5752}
5753
Daniel Koch09f7bf92017-10-05 00:26:58 -04005754@extension("VK_KHR_device_group") // 61
5755class VkBindImageMemoryDeviceGroupInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005756 VkStructureType sType
5757 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005758 u32 deviceIndexCount
5759 const u32* pDeviceIndices
5760 u32 SFRRectCount
5761 const VkRect2D* pSFRRects
5762}
5763
Daniel Koch09f7bf92017-10-05 00:26:58 -04005764@extension("VK_KHR_device_group") // 61
5765class VkDeviceGroupRenderPassBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005766 VkStructureType sType
5767 const void* pNext
5768 u32 deviceMask
5769 u32 deviceRenderAreaCount
5770 const VkRect2D* pDeviceRenderAreas
5771}
5772
Daniel Koch09f7bf92017-10-05 00:26:58 -04005773@extension("VK_KHR_device_group") // 61
5774class VkDeviceGroupCommandBufferBeginInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005775 VkStructureType sType
5776 const void* pNext
5777 u32 deviceMask
5778}
5779
Daniel Koch09f7bf92017-10-05 00:26:58 -04005780@extension("VK_KHR_device_group") // 61
5781class VkDeviceGroupSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005782 VkStructureType sType
5783 const void* pNext
5784 u32 waitSemaphoreCount
5785 const u32* pWaitSemaphoreDeviceIndices
5786 u32 commandBufferCount
5787 const u32* pCommandBufferDeviceMasks
5788 u32 signalSemaphoreCount
5789 const u32* pSignalSemaphoreDeviceIndices
5790}
5791
Daniel Koch09f7bf92017-10-05 00:26:58 -04005792@extension("VK_KHR_device_group") // 61
5793class VkDeviceGroupBindSparseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005794 VkStructureType sType
5795 const void* pNext
5796 u32 resourceDeviceIndex
5797 u32 memoryDeviceIndex
5798}
5799
Jesse Hallad250842017-03-10 18:35:38 -08005800@extension("VK_EXT_validation_flags") // 62
Chris Forbes289cb792016-12-30 15:03:55 +13005801class VkValidationFlagsEXT {
5802 VkStructureType sType
5803 const void* pNext
5804 u32 disabledValidationCheckCount
Jesse Hall115df0c2018-07-30 12:00:59 -07005805 const VkValidationCheckEXT* pDisabledValidationChecks
Chris Forbes289cb792016-12-30 15:03:55 +13005806}
5807
Jesse Hallad250842017-03-10 18:35:38 -08005808@extension("VK_NN_vi_surface") // 63
Jesse Hall77ad05b2017-03-10 22:02:20 -08005809class VkViSurfaceCreateInfoNN {
5810 VkStructureType sType
5811 const void* pNext
5812 VkViSurfaceCreateFlagsNN flags
5813 void* window
5814}
5815
Jesse Hall4af6c462018-09-10 09:04:25 -07005816@extension("VK_EXT_astc_decode_mode") // 68
5817class VkImageViewASTCDecodeModeEXT {
5818 VkStructureType sType
5819 const void* pNext
5820 VkFormat decodeMode
5821}
5822
5823@extension("VK_EXT_astc_decode_mode") // 68
5824class VkPhysicalDeviceASTCDecodeFeaturesEXT {
5825 VkStructureType sType
5826 void* pNext
5827 VkBool32 decodeModeSharedExponent
5828}
5829
Daniel Koch09f7bf92017-10-05 00:26:58 -04005830@extension("VK_KHR_device_group_creation") // 71
5831class VkPhysicalDeviceGroupPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005832 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07005833 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08005834 u32 physicalDeviceCount
Daniel Koch09f7bf92017-10-05 00:26:58 -04005835 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices
Jesse Hallad250842017-03-10 18:35:38 -08005836 VkBool32 subsetAllocation
5837}
5838
Daniel Koch09f7bf92017-10-05 00:26:58 -04005839@extension("VK_KHR_device_group_creation") // 71
5840class VkDeviceGroupDeviceCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005841 VkStructureType sType
5842 const void* pNext
5843 u32 physicalDeviceCount
5844 const VkPhysicalDevice* pPhysicalDevices
5845}
5846
Jesse Hall9492f992017-08-28 12:10:06 -07005847@extension("VK_KHR_external_memory_capabilities") // 72
5848class VkExternalMemoryPropertiesKHR {
5849 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures
5850 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes
5851 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005852}
5853
Jesse Hall9492f992017-08-28 12:10:06 -07005854@extension("VK_KHR_external_memory_capabilities") // 72
5855class VkPhysicalDeviceExternalImageFormatInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005856 VkStructureType sType
5857 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005858 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005859}
5860
Jesse Hall9492f992017-08-28 12:10:06 -07005861@extension("VK_KHR_external_memory_capabilities") // 72
5862class VkExternalImageFormatPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005863 VkStructureType sType
5864 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005865 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005866}
5867
Jesse Hall9492f992017-08-28 12:10:06 -07005868@extension("VK_KHR_external_memory_capabilities") // 72
5869class VkPhysicalDeviceExternalBufferInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005870 VkStructureType sType
5871 const void* pNext
5872 VkBufferCreateFlags flags
5873 VkBufferUsageFlags usage
Jesse Hall9492f992017-08-28 12:10:06 -07005874 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005875}
5876
Jesse Hall9492f992017-08-28 12:10:06 -07005877@extension("VK_KHR_external_memory_capabilities") // 72
5878class VkExternalBufferPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005879 VkStructureType sType
5880 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005881 VkExternalMemoryPropertiesKHR externalMemoryProperties
Jesse Hallad250842017-03-10 18:35:38 -08005882}
5883
Jesse Hall9492f992017-08-28 12:10:06 -07005884@extension("VK_KHR_external_memory_capabilities") // 72
5885class VkPhysicalDeviceIDPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005886 VkStructureType sType
5887 void* pNext
5888 u8[VK_UUID_SIZE] deviceUUID
5889 u8[VK_UUID_SIZE] driverUUID
Daniel Koch09f7bf92017-10-05 00:26:58 -04005890 u8[VK_LUID_SIZE] deviceLUID
Jesse Hall9492f992017-08-28 12:10:06 -07005891 u32 deviceNodeMask
Jesse Hallad250842017-03-10 18:35:38 -08005892 VkBool32 deviceLUIDValid
5893}
5894
Jesse Hall9492f992017-08-28 12:10:06 -07005895@extension("VK_KHR_external_memory") // 73
5896class VkExternalMemoryImageCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005897 VkStructureType sType
5898 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005899 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005900}
5901
Jesse Hall9492f992017-08-28 12:10:06 -07005902@extension("VK_KHR_external_memory") // 73
5903class VkExternalMemoryBufferCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005904 VkStructureType sType
5905 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005906 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005907}
5908
Jesse Hall9492f992017-08-28 12:10:06 -07005909@extension("VK_KHR_external_memory") // 73
5910class VkExportMemoryAllocateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005911 VkStructureType sType
5912 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005913 VkExternalMemoryHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08005914}
5915
Jesse Hall9492f992017-08-28 12:10:06 -07005916@extension("VK_KHR_external_memory_win32") // 74
5917class VkImportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005918 VkStructureType sType
5919 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005920 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005921 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07005922 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08005923}
5924
Jesse Hall9492f992017-08-28 12:10:06 -07005925@extension("VK_KHR_external_memory_win32") // 74
5926class VkExportMemoryWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005927 VkStructureType sType
5928 const void* pNext
5929 const platform.SECURITY_ATTRIBUTES* pAttributes
5930 platform.DWORD dwAccess
5931 platform.LPCWSTR name
5932}
5933
Jesse Hall9492f992017-08-28 12:10:06 -07005934@extension("VK_KHR_external_memory_win32") // 74
5935class VkMemoryWin32HandlePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005936 VkStructureType sType
5937 void* pNext
5938 u32 memoryTypeBits
5939}
5940
Jesse Hall9492f992017-08-28 12:10:06 -07005941@extension("VK_KHR_external_memory_win32") // 74
5942class VkMemoryGetWin32HandleInfoKHR {
5943 VkStructureType sType
5944 void* pNext
5945 VkDeviceMemory memory
5946 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5947}
5948
5949@extension("VK_KHR_external_memory_fd") // 75
5950class VkImportMemoryFdInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005951 VkStructureType sType
5952 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005953 VkExternalMemoryHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005954 int fd
5955}
5956
Jesse Hall9492f992017-08-28 12:10:06 -07005957@extension("VK_KHR_external_memory_fd") // 75
5958class VkMemoryFdPropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005959 VkStructureType sType
5960 void* pNext
5961 u32 memoryTypeBits
5962}
5963
Jesse Hall9492f992017-08-28 12:10:06 -07005964@extension("VK_KHR_external_memory_fd") // 75
5965class VkMemoryGetFdInfoKHR {
5966 VkStructureType sType
5967 void* pNext
5968 VkDeviceMemory memory
5969 VkExternalMemoryHandleTypeFlagBitsKHR handleType
5970}
5971
5972@extension("VK_KHR_win32_keyed_mutex") // 76
5973class VkWin32KeyedMutexAcquireReleaseInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005974 VkStructureType sType
5975 const void* pNext
5976 u32 acquireCount
5977 const VkDeviceMemory* pAcquireSyncs
5978 const u64* pAcquireKeys
5979 const u32* pAcquireTimeouts
5980 u32 releaseCount
5981 const VkDeviceMemory* pReleaseSyncs
5982 const u64* pReleaseKeys
5983}
5984
Jesse Hall9492f992017-08-28 12:10:06 -07005985@extension("VK_KHR_external_semaphore_capabilities") // 77
5986class VkPhysicalDeviceExternalSemaphoreInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005987 VkStructureType sType
5988 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005989 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08005990}
5991
Jesse Hall9492f992017-08-28 12:10:06 -07005992@extension("VK_KHR_external_semaphore_capabilities") // 77
5993class VkExternalSemaphorePropertiesKHR {
Jesse Hallad250842017-03-10 18:35:38 -08005994 VkStructureType sType
5995 void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07005996 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes
5997 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes
5998 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures
Jesse Hallad250842017-03-10 18:35:38 -08005999}
6000
Jesse Hall9492f992017-08-28 12:10:06 -07006001@extension("VK_KHR_external_semaphore") // 78
6002class VkExportSemaphoreCreateInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006003 VkStructureType sType
6004 const void* pNext
Jesse Hall9492f992017-08-28 12:10:06 -07006005 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes
Jesse Hallad250842017-03-10 18:35:38 -08006006}
6007
Jesse Hall9492f992017-08-28 12:10:06 -07006008@extension("VK_KHR_external_semaphore_win32") // 79
6009class VkImportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006010 VkStructureType sType
6011 const void* pNext
6012 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07006013 VkSemaphoreImportFlagsKHR flags
6014 VkExternalSemaphoreHandleTypeFlagsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08006015 platform.HANDLE handle
Jesse Hall9492f992017-08-28 12:10:06 -07006016 platform.LPCWSTR name
Jesse Hallad250842017-03-10 18:35:38 -08006017}
6018
Jesse Hall9492f992017-08-28 12:10:06 -07006019@extension("VK_KHR_external_semaphore_win32") // 79
6020class VkExportSemaphoreWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006021 VkStructureType sType
6022 const void* pNext
6023 const platform.SECURITY_ATTRIBUTES* pAttributes
6024 platform.DWORD dwAccess
6025 platform.LPCWSTR name
6026}
6027
Jesse Hall9492f992017-08-28 12:10:06 -07006028@extension("VK_KHR_external_semaphore_win32") // 79
6029class VkD3D12FenceSubmitInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006030 VkStructureType sType
6031 const void* pNext
6032 u32 waitSemaphoreValuesCount
6033 const u64* pWaitSemaphoreValues
6034 u32 signalSemaphoreValuesCount
6035 const u64* pSignalSemaphoreValues
6036}
6037
Jesse Hall9492f992017-08-28 12:10:06 -07006038@extension("VK_KHR_external_semaphore_win32") // 79
6039class VkSemaphoreGetWin32HandleInfoKHR {
Jesse Hallad250842017-03-10 18:35:38 -08006040 VkStructureType sType
6041 const void* pNext
6042 VkSemaphore semaphore
Jesse Hall9492f992017-08-28 12:10:06 -07006043 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
6044}
6045
6046@extension("VK_KHR_external_semaphore_fd") // 80
6047class VkImportSemaphoreFdInfoKHR {
6048 VkStructureType sType
6049 const void* pNext
6050 VkSemaphore semaphore
6051 VkSemaphoreImportFlagsKHR flags
6052 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
Jesse Hallad250842017-03-10 18:35:38 -08006053 s32 fd
6054}
6055
Jesse Hall9492f992017-08-28 12:10:06 -07006056@extension("VK_KHR_external_semaphore_fd") // 80
6057class VkSemaphoreGetFdInfoKHR {
6058 VkStructureType sType
6059 const void* pNext
6060 VkSemaphore semaphore
6061 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType
6062}
6063
Jesse Hallad250842017-03-10 18:35:38 -08006064@extension("VK_KHR_push_descriptor") // 81
6065class VkPhysicalDevicePushDescriptorPropertiesKHR {
6066 VkStructureType sType
6067 void* pNext
6068 u32 maxPushDescriptors
6069}
6070
Jesse Halla13a3cf2018-07-09 15:51:52 -07006071@extension("VK_EXT_conditional_rendering") // 82
6072class VkConditionalRenderingBeginInfoEXT {
6073 VkStructureType sType
6074 const void* pNext
6075 VkBuffer buffer
6076 VkDeviceSize offset
6077 VkConditionalRenderingFlagsEXT flags
6078}
6079
6080@extension("VK_EXT_conditional_rendering") // 82
6081class VkPhysicalDeviceConditionalRenderingFeaturesEXT {
6082 VkStructureType sType
6083 void* pNext
6084 VkBool32 conditionalRendering
6085 VkBool32 inheritedConditionalRendering
6086}
6087
6088@extension("VK_EXT_conditional_rendering") // 82
6089class VkCommandBufferInheritanceConditionalRenderingInfoEXT {
6090 VkStructureType sType
6091 const void* pNext
6092 VkBool32 conditionalRenderingEnable
6093}
6094
Jesse Hall9492f992017-08-28 12:10:06 -07006095@extension("VK_KHR_16bit_storage") // 84
6096class VkPhysicalDevice16BitStorageFeaturesKHR {
6097 VkStructureType sType
6098 void* pNext
6099 VkBool32 storageBuffer16BitAccess
6100 VkBool32 uniformAndStorageBuffer16BitAccess
6101 VkBool32 storagePushConstant16
6102 VkBool32 storageInputOutput16
6103}
6104
Jesse Hallad250842017-03-10 18:35:38 -08006105@extension("VK_KHR_incremental_present") // 85
6106class VkRectLayerKHR {
6107 VkOffset2D offset
6108 VkExtent2D extent
6109 u32 layer
6110}
6111
6112@extension("VK_KHR_incremental_present") // 85
6113class VkPresentRegionKHR {
6114 u32 rectangleCount
6115 const VkRectLayerKHR* pRectangles
6116}
6117
6118@extension("VK_KHR_incremental_present") // 85
6119class VkPresentRegionsKHR {
6120 VkStructureType sType
6121 const void* pNext
6122 u32 swapchainCount
6123 const VkPresentRegionKHR* pRegions
6124}
6125
6126@extension("VK_KHR_descriptor_update_template") // 86
6127class VkDescriptorUpdateTemplateEntryKHR {
6128 u32 dstBinding
6129 u32 dstArrayElement
6130 u32 descriptorCount
6131 VkDescriptorType descriptorType
6132 platform.size_t offset
6133 platform.size_t stride
6134}
6135
6136@extension("VK_KHR_descriptor_update_template") // 86
6137class VkDescriptorUpdateTemplateCreateInfoKHR {
6138 VkStructureType sType
6139 void* pNext
6140 VkDescriptorUpdateTemplateCreateFlagsKHR flags
6141 u32 descriptorUpdateEntryCount
6142 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries
6143 VkDescriptorUpdateTemplateTypeKHR templateType
6144 VkDescriptorSetLayout descriptorSetLayout
6145 VkPipelineBindPoint pipelineBindPoint
6146 VkPipelineLayout pipelineLayout
6147 u32 set
6148}
6149
6150@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006151class VkDeviceGeneratedCommandsFeaturesNVX {
6152 VkStructureType sType
6153 const void* pNext
6154 VkBool32 computeBindingPointSupport
6155}
6156
Jesse Hallad250842017-03-10 18:35:38 -08006157@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006158class VkDeviceGeneratedCommandsLimitsNVX {
6159 VkStructureType sType
6160 const void* pNext
6161 u32 maxIndirectCommandsLayoutTokenCount
6162 u32 maxObjectEntryCounts
6163 u32 minSequenceCountBufferOffsetAlignment
6164 u32 minSequenceIndexBufferOffsetAlignment
6165 u32 minCommandsTokenBufferOffsetAlignment
6166}
6167
Jesse Hallad250842017-03-10 18:35:38 -08006168@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006169class VkIndirectCommandsTokenNVX {
6170 VkIndirectCommandsTokenTypeNVX tokenType
6171 VkBuffer buffer
6172 VkDeviceSize offset
6173}
6174
Jesse Hallad250842017-03-10 18:35:38 -08006175@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006176class VkIndirectCommandsLayoutTokenNVX {
6177 VkIndirectCommandsTokenTypeNVX tokenType
6178 u32 bindingUnit
6179 u32 dynamicCount
6180 u32 divisor
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 VkIndirectCommandsLayoutCreateInfoNVX {
6185 VkStructureType sType
6186 const void* pNext
6187 VkPipelineBindPoint pipelineBindPoint
6188 VkIndirectCommandsLayoutUsageFlagsNVX flags
6189 u32 tokenCount
6190 const VkIndirectCommandsLayoutTokenNVX* pTokens
6191}
6192
Jesse Hallad250842017-03-10 18:35:38 -08006193@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006194class VkCmdProcessCommandsInfoNVX {
6195 VkStructureType sType
6196 const void* pNext
6197 VkObjectTableNVX objectTable
6198 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6199 u32 indirectCommandsTokenCount
6200 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens
6201 u32 maxSequencesCount
6202 VkCommandBuffer targetCommandBuffer
6203 VkBuffer sequencesCountBuffer
6204 VkDeviceSize sequencesCountOffset
6205 VkBuffer sequencesIndexBuffer
6206 VkDeviceSize sequencesIndexOffset
6207}
6208
Jesse Hallad250842017-03-10 18:35:38 -08006209@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006210class VkCmdReserveSpaceForCommandsInfoNVX {
6211 VkStructureType sType
6212 const void* pNext
6213 VkObjectTableNVX objectTable
6214 VkIndirectCommandsLayoutNVX indirectCommandsLayout
6215 u32 maxSequencesCount
6216}
6217
Jesse Hallad250842017-03-10 18:35:38 -08006218@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006219class VkObjectTableCreateInfoNVX {
6220 VkStructureType sType
6221 const void* pNext
6222 u32 objectCount
6223 const VkObjectEntryTypeNVX* pObjectEntryTypes
6224 const u32* pObjectEntryCounts
6225 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags
6226 u32 maxUniformBuffersPerDescriptor
6227 u32 maxStorageBuffersPerDescriptor
6228 u32 maxStorageImagesPerDescriptor
6229 u32 maxSampledImagesPerDescriptor
6230 u32 maxPipelineLayouts
6231}
6232
Jesse Hallad250842017-03-10 18:35:38 -08006233@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006234class VkObjectTableEntryNVX {
6235 VkObjectEntryTypeNVX type
6236 VkObjectEntryUsageFlagsNVX flags
6237}
6238
Jesse Hallad250842017-03-10 18:35:38 -08006239@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006240class VkObjectTablePipelineEntryNVX {
6241 VkObjectEntryTypeNVX type
6242 VkObjectEntryUsageFlagsNVX flags
6243 VkPipeline pipeline
6244}
6245
Jesse Hallad250842017-03-10 18:35:38 -08006246@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006247class VkObjectTableDescriptorSetEntryNVX {
6248 VkObjectEntryTypeNVX type
6249 VkObjectEntryUsageFlagsNVX flags
6250 VkPipelineLayout pipelineLayout
6251 VkDescriptorSet descriptorSet
6252}
6253
Jesse Hallad250842017-03-10 18:35:38 -08006254@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006255class VkObjectTableVertexBufferEntryNVX {
6256 VkObjectEntryTypeNVX type
6257 VkObjectEntryUsageFlagsNVX flags
6258 VkBuffer buffer
6259}
6260
Jesse Hallad250842017-03-10 18:35:38 -08006261@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006262class VkObjectTableIndexBufferEntryNVX {
6263 VkObjectEntryTypeNVX type
6264 VkObjectEntryUsageFlagsNVX flags
6265 VkBuffer buffer
Jesse Hall77ad05b2017-03-10 22:02:20 -08006266 VkIndexType indexType
Chris Forbes289cb792016-12-30 15:03:55 +13006267}
6268
Jesse Hallad250842017-03-10 18:35:38 -08006269@extension("VK_NVX_device_generated_commands") // 87
Chris Forbes289cb792016-12-30 15:03:55 +13006270class VkObjectTablePushConstantEntryNVX {
6271 VkObjectEntryTypeNVX type
6272 VkObjectEntryUsageFlagsNVX flags
6273 VkPipelineLayout pipelineLayout
6274 VkShaderStageFlags stageFlags
6275}
6276
Jesse Hallad250842017-03-10 18:35:38 -08006277@extension("VK_NV_clip_space_w_scaling") // 88
6278class VkViewportWScalingNV {
6279 f32 xcoeff
6280 f32 ycoeff
Jesse Hall889cd9a2017-02-25 22:12:23 -08006281}
6282
Jesse Hallad250842017-03-10 18:35:38 -08006283@extension("VK_NV_clip_space_w_scaling") // 88
6284class VkPipelineViewportWScalingStateCreateInfoNV {
Jesse Hall889cd9a2017-02-25 22:12:23 -08006285 VkStructureType sType
6286 const void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006287 VkBool32 viewportWScalingEnable
6288 u32 viewportCount
6289 const VkViewportWScalingNV* pViewportWScalings
Jesse Hall889cd9a2017-02-25 22:12:23 -08006290}
6291
Jesse Hallad250842017-03-10 18:35:38 -08006292@extension("VK_EXT_display_surface_counter") // 91
Jesse Hall77ad05b2017-03-10 22:02:20 -08006293class VkSurfaceCapabilities2EXT {
6294 VkStructureType sType
6295 void* pNext
6296 u32 minImageCount
6297 u32 maxImageCount
6298 VkExtent2D currentExtent
6299 VkExtent2D minImageExtent
6300 VkExtent2D maxImageExtent
6301 u32 maxImageArrayLayers
6302 VkSurfaceTransformFlagsKHR supportedTransforms
6303 VkSurfaceTransformFlagBitsKHR currentTransform
6304 VkCompositeAlphaFlagsKHR supportedCompositeAlpha
6305 VkImageUsageFlags supportedUsageFlags
6306 VkSurfaceCounterFlagsEXT supportedSurfaceCounters
6307}
6308
Jesse Hallad250842017-03-10 18:35:38 -08006309@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006310class VkDisplayPowerInfoEXT {
6311 VkStructureType sType
6312 const void* pNext
6313 VkDisplayPowerStateEXT powerState
6314}
6315
Jesse Hallad250842017-03-10 18:35:38 -08006316@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006317class VkDeviceEventInfoEXT {
6318 VkStructureType sType
6319 const void* pNext
6320 VkDeviceEventTypeEXT deviceEvent
6321}
6322
Jesse Hallad250842017-03-10 18:35:38 -08006323@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006324class VkDisplayEventInfoEXT {
6325 VkStructureType sType
6326 const void* pNext
6327 VkDisplayEventTypeEXT displayEvent
6328}
6329
Jesse Hallad250842017-03-10 18:35:38 -08006330@extension("VK_EXT_display_control") // 92
Jesse Hall77ad05b2017-03-10 22:02:20 -08006331class VkSwapchainCounterCreateInfoEXT {
6332 VkStructureType sType
6333 const void* pNext
6334 VkSurfaceCounterFlagsEXT surfaceCounters
6335}
6336
Jesse Hallad250842017-03-10 18:35:38 -08006337@extension("VK_GOOGLE_display_timing") // 93
6338class VkRefreshCycleDurationGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006339 u64 refreshDuration
Jesse Hallad250842017-03-10 18:35:38 -08006340}
6341
6342@extension("VK_GOOGLE_display_timing") // 93
6343class VkPastPresentationTimingGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006344 u32 presentID
6345 u64 desiredPresentTime
6346 u64 actualPresentTime
6347 u64 earliestPresentTime
6348 u64 presentMargin
Jesse Hallad250842017-03-10 18:35:38 -08006349}
6350
6351@extension("VK_GOOGLE_display_timing") // 93
6352class VkPresentTimeGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006353 u32 presentID
6354 u64 desiredPresentTime
Jesse Hallad250842017-03-10 18:35:38 -08006355}
6356
6357@extension("VK_GOOGLE_display_timing") // 93
6358class VkPresentTimesInfoGOOGLE {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006359 VkStructureType sType
6360 const void* pNext
6361 u32 swapchainCount
6362 const VkPresentTimeGOOGLE* pTimes
Jesse Hallad250842017-03-10 18:35:38 -08006363}
6364
6365@extension("VK_NVX_multiview_per_view_attributes") // 98
6366class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
6367 VkStructureType sType
6368 void* pNext
6369 VkBool32 perViewPositionAllComponents
6370}
6371
6372@extension("VK_NV_viewport_swizzle") // 99
6373class VkViewportSwizzleNV {
6374 VkViewportCoordinateSwizzleNV x
6375 VkViewportCoordinateSwizzleNV y
6376 VkViewportCoordinateSwizzleNV z
6377 VkViewportCoordinateSwizzleNV w
6378}
6379
6380@extension("VK_NV_viewport_swizzle") // 99
6381class VkPipelineViewportSwizzleStateCreateInfoNV {
6382 VkStructureType sType
6383 const void* pNext
6384 VkPipelineViewportSwizzleStateCreateFlagsNV flags
6385 u32 viewportCount
6386 const VkViewportSwizzleNV* pViewportSwizzles
6387}
6388
6389@extension("VK_EXT_discard_rectangles") // 100
6390class VkPhysicalDeviceDiscardRectanglePropertiesEXT {
6391 VkStructureType sType
Jesse Hallf5ad48b2017-03-20 13:09:19 -07006392 void* pNext
Jesse Hallad250842017-03-10 18:35:38 -08006393 u32 maxDiscardRectangles
6394}
6395
6396@extension("VK_EXT_discard_rectangles") // 100
6397class VkPipelineDiscardRectangleStateCreateInfoEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006398 VkStructureType sType
6399 const void* pNext
6400 VkPipelineDiscardRectangleStateCreateFlagsEXT flags
6401 VkDiscardRectangleModeEXT discardRectangleMode
6402 u32 discardRectangleCount
6403 const VkRect2D* pDiscardRectangles
Jesse Hallad250842017-03-10 18:35:38 -08006404}
6405
Jesse Hall8c954d32018-01-17 22:06:20 -08006406@extension("VK_EXT_conservative_rasterization") // 102
6407class VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
6408 VkStructureType sType
6409 void* pNext
6410 f32 primitiveOverestimationSize
6411 f32 maxExtraPrimitiveOverestimationSize
6412 f32 extraPrimitiveOverestimationSizeGranularity
6413 VkBool32 primitiveUnderestimation
6414 VkBool32 conservativePointAndLineRasterization
6415 VkBool32 degenerateTrianglesRasterized
6416 VkBool32 degenerateLinesRasterized
6417 VkBool32 fullyCoveredFragmentShaderInputVariable
6418 VkBool32 conservativeRasterizationPostDepthCoverage
6419}
6420
6421@extension("VK_EXT_conservative_rasterization") // 102
6422class VkPipelineRasterizationConservativeStateCreateInfoEXT {
6423 VkStructureType sType
6424 const void* pNext
6425 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags
6426 VkConservativeRasterizationModeEXT conservativeRasterizationMode
6427 f32 extraPrimitiveOverestimationSize
6428}
6429
Jesse Hallad250842017-03-10 18:35:38 -08006430@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006431class VkXYColorEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006432 f32 x
6433 f32 y
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006434}
6435
Jesse Hallad250842017-03-10 18:35:38 -08006436@extension("VK_EXT_hdr_metadata") // 106
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006437class VkHdrMetadataEXT {
Jesse Hallfdc8ab32017-03-10 21:01:57 -08006438 VkStructureType sType
6439 const void* pNext
6440 VkXYColorEXT displayPrimaryRed
6441 VkXYColorEXT displayPrimaryGreen
6442 VkXYColorEXT displayPrimaryBlue
6443 VkXYColorEXT whitePoint
6444 f32 maxLuminance
6445 f32 minLuminance
6446 f32 maxContentLightLevel
6447 f32 maxFrameAverageLightLevel
Courtney Goeltzenleuchterd634c482017-01-05 15:55:31 -07006448}
6449
Jesse Halla13a3cf2018-07-09 15:51:52 -07006450@extension("VK_KHR_create_renderpass2") // 110
6451class VkAttachmentDescription2KHR {
6452 VkStructureType sType
6453 const void* pNext
6454 VkAttachmentDescriptionFlags flags
6455 VkFormat format
6456 VkSampleCountFlagBits samples
6457 VkAttachmentLoadOp loadOp
6458 VkAttachmentStoreOp storeOp
6459 VkAttachmentLoadOp stencilLoadOp
6460 VkAttachmentStoreOp stencilStoreOp
6461 VkImageLayout initialLayout
6462 VkImageLayout finalLayout
6463}
6464
6465@extension("VK_KHR_create_renderpass2") // 110
6466class VkAttachmentReference2KHR {
6467 VkStructureType sType
6468 const void* pNext
6469 u32 attachment
6470 VkImageLayout layout
6471 VkImageAspectFlags aspectMask
6472}
6473
6474@extension("VK_KHR_create_renderpass2") // 110
6475class VkSubpassDescription2KHR {
6476 VkStructureType sType
6477 const void* pNext
6478 VkSubpassDescriptionFlags flags
6479 VkPipelineBindPoint pipelineBindPoint
6480 u32 viewMask
6481 u32 inputAttachmentCount
6482 const VkAttachmentReference2KHR* pInputAttachments
6483 u32 colorAttachmentCount
6484 const VkAttachmentReference2KHR* pColorAttachments
6485 const VkAttachmentReference2KHR* pResolveAttachments
6486 const VkAttachmentReference2KHR* pDepthStencilAttachment
6487 u32 preserveAttachmentCount
6488 const u32* pPreserveAttachments
6489}
6490
6491@extension("VK_KHR_create_renderpass2") // 110
6492class VkSubpassDependency2KHR {
6493 VkStructureType sType
6494 const void* pNext
6495 u32 srcSubpass
6496 u32 dstSubpass
6497 VkPipelineStageFlags srcStageMask
6498 VkPipelineStageFlags dstStageMask
6499 VkAccessFlags srcAccessMask
6500 VkAccessFlags dstAccessMask
6501 VkDependencyFlags dependencyFlags
6502 s32 viewOffset
6503}
6504
6505@extension("VK_KHR_create_renderpass2") // 110
6506class VkRenderPassCreateInfo2KHR {
6507 VkStructureType sType
6508 const void* pNext
6509 VkRenderPassCreateFlags flags
6510 u32 attachmentCount
6511 const VkAttachmentDescription2KHR* pAttachments
6512 u32 subpassCount
6513 const VkSubpassDescription2KHR* pSubpasses
6514 u32 dependencyCount
6515 const VkSubpassDependency2KHR* pDependencies
6516 u32 correlatedViewMaskCount
6517 const u32* pCorrelatedViewMasks
6518}
6519
6520@extension("VK_KHR_create_renderpass2") // 110
6521class VkSubpassBeginInfoKHR {
6522 VkStructureType sType
6523 const void* pNext
6524 VkSubpassContents contents
6525}
6526
6527@extension("VK_KHR_create_renderpass2") // 110
6528class VkSubpassEndInfoKHR {
6529 VkStructureType sType
6530 const void* pNext
6531}
6532
Jesse Hall05556b12017-05-18 17:40:25 -07006533@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbese2d3ee12017-03-16 16:10:15 +13006534class VkSharedPresentSurfaceCapabilitiesKHR {
6535 VkStructureType sType
6536 const void* pNext
6537 VkImageUsageFlags sharedPresentSupportedUsageFlags
6538}
6539
Jesse Hall9492f992017-08-28 12:10:06 -07006540@extension("VK_KHR_external_fence_capabilities") // 113
6541class VkPhysicalDeviceExternalFenceInfoKHR {
6542 VkStructureType sType
6543 const void* pNext
6544 VkExternalFenceHandleTypeFlagBitsKHR handleType
6545}
6546
6547@extension("VK_KHR_external_fence_capabilities") // 113
6548class VkExternalFencePropertiesKHR {
6549 VkStructureType sType
6550 void* pNext
6551 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes
6552 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes
6553 VkExternalFenceFeatureFlagsKHR externalFenceFeatures
6554}
6555
6556@extension("VK_KHR_external_fence") // 114
6557class VkExportFenceCreateInfoKHR {
6558 VkStructureType sType
6559 const void* pNext
6560 VkExternalFenceHandleTypeFlagsKHR handleTypes
6561}
6562
6563@extension("VK_KHR_external_fence_win32") // 115
6564class VkImportFenceWin32HandleInfoKHR {
6565 VkStructureType sType
6566 const void* pNext
6567 VkFence fence
6568 VkFenceImportFlagsKHR flags
6569 VkExternalFenceHandleTypeFlagBitsKHR handleType
6570 platform.HANDLE handle
6571 platform.LPCWSTR name
6572}
6573
6574@extension("VK_KHR_external_fence_win32") // 115
6575class VkExportFenceWin32HandleInfoKHR {
6576 VkStructureType sType
6577 const void* pNext
6578 const platform.SECURITY_ATTRIBUTES* pAttributes
6579 platform.DWORD dwAccess
6580 platform.LPCWSTR name
6581}
6582
6583@extension("VK_KHR_external_fence_win32") // 115
6584class VkFenceGetWin32HandleInfoKHR {
6585 VkStructureType sType
6586 const void* pNext
6587 VkFence fence
6588 VkExternalFenceHandleTypeFlagBitsKHR handleType
6589}
6590
6591@extension("VK_KHR_external_fence_fd") // 116
6592class VkImportFenceFdInfoKHR {
6593 VkStructureType sType
6594 const void* pNext
6595 VkFence fence
6596 VkFenceImportFlagsKHR flags
6597 VkExternalFenceHandleTypeFlagBitsKHR handleType
6598 int fd
6599}
6600
6601@extension("VK_KHR_external_fence_fd") // 116
6602class VkFenceGetFdInfoKHR {
6603 VkStructureType sType
6604 const void* pNext
6605 VkFence fence
6606 VkExternalFenceHandleTypeFlagBitsKHR handleType
6607}
6608
Jesse Hall076f95d2017-09-20 11:34:47 -07006609@extension("VK_KHR_maintenance2") // 118
6610class VkPhysicalDevicePointClippingPropertiesKHR {
6611 VkStructureType sType
6612 void* pNext
6613 VkPointClippingBehaviorKHR pointClippingBehavior
6614}
6615
6616@extension("VK_KHR_maintenance2") // 118
6617class VkInputAttachmentAspectReferenceKHR {
6618 u32 subpass
6619 u32 inputAttachmentIndex
6620 VkImageAspectFlags aspectMask
6621}
6622
6623@extension("VK_KHR_maintenance2") // 118
6624class VkRenderPassInputAttachmentAspectCreateInfoKHR {
6625 VkStructureType sType
6626 const void* pNext
6627 u32 aspectReferenceCount
6628 const VkInputAttachmentAspectReferenceKHR* pAspectReferences
6629}
6630
6631@extension("VK_KHR_maintenance2") // 118
6632class VkImageViewUsageCreateInfoKHR {
6633 VkStructureType sType
6634 const void* pNext
6635 VkImageUsageFlags usage
6636}
6637
6638@extension("VK_KHR_maintenance2") // 118
6639class VkPipelineTessellationDomainOriginStateCreateInfoKHR {
6640 VkStructureType sType
6641 const void* pNext
6642 VkTessellationDomainOriginKHR domainOrigin
6643}
6644
Jesse Hall05556b12017-05-18 17:40:25 -07006645@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006646class VkPhysicalDeviceSurfaceInfo2KHR {
6647 VkStructureType sType
6648 const void* pNext
6649 VkSurfaceKHR surface
6650}
6651
Jesse Hall05556b12017-05-18 17:40:25 -07006652@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006653class VkSurfaceCapabilities2KHR {
6654 VkStructureType sType
6655 void* pNext
6656 VkSurfaceCapabilitiesKHR surfaceCapabilities
6657}
6658
Jesse Hall05556b12017-05-18 17:40:25 -07006659@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +13006660class VkSurfaceFormat2KHR {
6661 VkStructureType sType
6662 void* pNext
6663 VkSurfaceFormatKHR surfaceFormat
6664}
6665
Jesse Hall9492f992017-08-28 12:10:06 -07006666@extension("VK_KHR_variable_pointers") // 121
6667class VkPhysicalDeviceVariablePointerFeaturesKHR {
6668 VkStructureType sType
6669 void* pNext
6670 VkBool32 variablePointersStorageBuffer
6671 VkBool32 variablePointers
6672}
6673
Jesse Hall54f8d132018-04-18 08:16:59 -07006674@extension("VK_KHR_display_properties2") // 122
6675class VkDisplayProperties2KHR {
6676 VkStructureType sType
6677 void* pNext
6678 VkDisplayPropertiesKHR displayProperties
6679}
6680
6681@extension("VK_KHR_display_properties2") // 122
6682class VkDisplayPlaneProperties2KHR {
6683 VkStructureType sType
6684 void* pNext
6685 VkDisplayPlanePropertiesKHR displayPlaneProperties
6686}
6687
6688@extension("VK_KHR_display_properties2") // 122
6689class VkDisplayModeProperties2KHR {
6690 VkStructureType sType
6691 void* pNext
6692 VkDisplayModePropertiesKHR displayModeProperties
6693}
6694
6695@extension("VK_KHR_display_properties2") // 122
6696class VkDisplayPlaneInfo2KHR {
6697 VkStructureType sType
6698 const void* pNext
6699 VkDisplayModeKHR mode
6700 u32 planeIndex
6701}
6702
6703@extension("VK_KHR_display_properties2") // 122
6704class VkDisplayPlaneCapabilities2KHR {
6705 VkStructureType sType
6706 void* pNext
6707 VkDisplayPlaneCapabilitiesKHR capabilities
6708}
6709
Jesse Hallad250842017-03-10 18:35:38 -08006710@extension("VK_MVK_ios_surface") // 123
6711class VkIOSSurfaceCreateInfoMVK {
6712 VkStructureType sType
6713 const void* pNext
6714 VkIOSSurfaceCreateFlagsMVK flags
6715 const void* pView
6716}
6717
6718@extension("VK_MVK_macos_surface") // 124
6719class VkMacOSSurfaceCreateInfoMVK {
6720 VkStructureType sType
6721 const void* pNext
6722 VkMacOSSurfaceCreateFlagsMVK flags
6723 const void* pView
6724}
6725
Jesse Hall9492f992017-08-28 12:10:06 -07006726@extension("VK_KHR_dedicated_allocation") // 128
6727class VkMemoryDedicatedRequirementsKHR {
6728 VkStructureType sType
6729 void* pNext
6730 VkBool32 prefersDedicatedAllocation
6731 VkBool32 requiresDedicatedAllocation
6732}
6733
6734@extension("VK_KHR_dedicated_allocation") // 128
6735class VkMemoryDedicatedAllocateInfoKHR {
6736 VkStructureType sType
6737 const void* pNext
6738 VkImage image
6739 VkBuffer buffer
6740}
6741
Jesse Hall8c954d32018-01-17 22:06:20 -08006742@extension("VK_EXT_debug_utils") // 129
6743class VkDebugUtilsObjectNameInfoEXT {
6744 VkStructureType sType
6745 const void* pNext
6746 VkObjectType objectType
6747 u64 objectHandle
6748 const char* pObjectName
6749}
Jesse Hall72e6a132018-04-06 13:00:44 -07006750
Jesse Hall8c954d32018-01-17 22:06:20 -08006751@extension("VK_EXT_debug_utils") // 129
6752class VkDebugUtilsObjectTagInfoEXT {
6753 VkStructureType sType
6754 const void* pNext
6755 VkObjectType objectType
6756 u64 objectHandle
6757 u64 tagName
6758 platform.size_t tagSize
6759 const void* pTag
6760}
Jesse Hall72e6a132018-04-06 13:00:44 -07006761
Jesse Hall8c954d32018-01-17 22:06:20 -08006762@extension("VK_EXT_debug_utils") // 129
6763class VkDebugUtilsLabelEXT {
6764 VkStructureType sType
6765 const void* pNext
6766 const char* pLabelName
6767 f32[4] color
6768}
6769
6770@extension("VK_EXT_debug_utils") // 129
6771class VkDebugUtilsMessengerCallbackDataEXT {
6772 VkStructureType sType
6773 const void* pNext
6774 VkDebugUtilsMessengerCallbackDataFlagsEXT flags
6775 const char* pMessageIdName
6776 s32 messageIdNumber
6777 const char* pMessage
6778 u32 queueLabelCount
6779 VkDebugUtilsLabelEXT* pQueueLabels
6780 u32 cmdBufLabelCount
6781 VkDebugUtilsLabelEXT* pCmdBufLabels
6782 u32 objectCount
6783 VkDebugUtilsObjectNameInfoEXT* pObjects
6784}
6785
6786@extension("VK_EXT_debug_utils") // 129
6787class VkDebugUtilsMessengerCreateInfoEXT {
6788 VkStructureType sType
6789 const void* pNext
6790 VkDebugUtilsMessengerCreateFlagsEXT flags
6791 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity
Jesse Hallf47e8f82018-10-27 23:41:45 -07006792 VkDebugUtilsMessageTypeFlagsEXT messageTypes
Jesse Hall8c954d32018-01-17 22:06:20 -08006793 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback
6794 void* pUserData
6795}
6796
Jesse Hall36215a92018-01-18 15:04:37 -08006797@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131
6798class VkAndroidHardwareBufferUsageANDROID {
6799 VkStructureType sType
6800 void* pNext
6801 u64 androidHardwareBufferUsage
6802}
6803
6804@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6805class VkAndroidHardwareBufferPropertiesANDROID {
6806 VkStructureType sType
6807 void* pNext
6808 VkDeviceSize allocationSize
6809 u32 memoryTypeBits
6810}
6811
6812@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6813class VkAndroidHardwareBufferFormatPropertiesANDROID {
6814 VkStructureType sType
6815 void* pNext
6816 VkFormat format
6817 u64 externalFormat
6818 VkFormatFeatureFlags formatFeatures
6819 VkComponentMapping samplerYcbcrConversionComponents
6820 VkSamplerYcbcrModelConversion suggestedYcbcrModel
6821 VkSamplerYcbcrRange suggestedYcbcrRange
6822 VkChromaLocation suggestedXChromaOffset
6823 VkChromaLocation suggestedYChromaOffset
6824}
6825
6826@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6827class VkImportAndroidHardwareBufferInfoANDROID {
6828 VkStructureType sType
6829 const void* pNext
6830 platform.AHardwareBuffer* buffer
6831}
6832
6833@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6834class VkMemoryGetAndroidHardwareBufferInfoANDROID {
6835 VkStructureType sType
6836 const void* pNext
6837 VkDeviceMemory memory
6838}
6839
6840@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
6841class VkExternalFormatANDROID {
6842 VkStructureType sType
6843 void* pNext
6844 u64 externalFormat
6845}
6846
Jesse Hall7ba0ac72017-07-07 17:13:23 -07006847@extension("VK_EXT_sampler_filter_minmax") // 131
6848class VkSamplerReductionModeCreateInfoEXT {
6849 VkStructureType sType
6850 const void* pNext
6851 VkSamplerReductionModeEXT reductionMode
6852}
6853
6854@extension("VK_EXT_sampler_filter_minmax") // 131
6855class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT {
6856 VkStructureType sType
6857 void* pNext
6858 VkBool32 filterMinmaxSingleComponentFormats
6859 VkBool32 filterMinmaxImageComponentMapping
6860}
6861
Jesse Hall4af6c462018-09-10 09:04:25 -07006862@extension("VK_EXT_inline_uniform_block") // 139
6863class VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
6864 VkStructureType sType
6865 void* pNext
6866 VkBool32 inlineUniformBlock
6867 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind
6868}
6869
6870@extension("VK_EXT_inline_uniform_block") // 139
6871class VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
6872 VkStructureType sType
6873 void* pNext
6874 u32 maxInlineUniformBlockSize
6875 u32 maxPerStageDescriptorInlineUniformBlocks
6876 u32 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks
6877 u32 maxDescriptorSetInlineUniformBlocks
6878 u32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks
6879}
6880
6881@extension("VK_EXT_inline_uniform_block") // 139
6882class VkWriteDescriptorSetInlineUniformBlockEXT {
6883 VkStructureType sType
6884 const void* pNext
6885 u32 dataSize
6886 const void* pData
6887}
6888
6889@extension("VK_EXT_inline_uniform_block") // 139
6890class VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
6891 VkStructureType sType
6892 const void* pNext
6893 u32 maxInlineUniformBlockBindings
6894}
6895
Jesse Hall77726222017-09-19 14:49:27 -05006896@extension("VK_EXT_sample_locations") // 144
6897class VkSampleLocationEXT {
6898 f32 x
6899 f32 y
6900}
6901
6902@extension("VK_EXT_sample_locations") // 144
6903class VkSampleLocationsInfoEXT {
6904 VkStructureType sType
6905 const void* pNext
6906 VkSampleCountFlagBits sampleLocationsPerPixel
6907 VkExtent2D sampleLocationGridSize
6908 u32 sampleLocationsCount
6909 const VkSampleLocationEXT* pSampleLocations
6910}
6911
6912@extension("VK_EXT_sample_locations") // 144
6913class VkAttachmentSampleLocationsEXT {
6914 u32 attachmentIndex
6915 VkSampleLocationsInfoEXT sampleLocationsInfo
6916}
6917
6918@extension("VK_EXT_sample_locations") // 144
6919class VkSubpassSampleLocationsEXT {
6920 u32 subpassIndex
6921 VkSampleLocationsInfoEXT sampleLocationsInfo
6922}
6923
6924@extension("VK_EXT_sample_locations") // 144
6925class VkRenderPassSampleLocationsBeginInfoEXT {
6926 VkStructureType sType
6927 const void* pNext
6928 u32 attachmentInitialSampleLocationsCount
6929 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations
6930 u32 postSubpassSampleLocationsCount
Jesse Hall8c954d32018-01-17 22:06:20 -08006931 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations
Jesse Hall77726222017-09-19 14:49:27 -05006932}
6933
6934@extension("VK_EXT_sample_locations") // 144
6935class VkPipelineSampleLocationsStateCreateInfoEXT {
6936 VkStructureType sType
6937 const void* pNext
6938 VkBool32 sampleLocationsEnable
6939 VkSampleLocationsInfoEXT sampleLocationsInfo
6940}
6941
6942@extension("VK_EXT_sample_locations") // 144
6943class VkPhysicalDeviceSampleLocationsPropertiesEXT {
6944 VkStructureType sType
6945 void* pNext
6946 VkSampleCountFlags sampleLocationSampleCounts
6947 VkExtent2D maxSampleLocationGridSize
6948 f32[2] sampleLocationCoordinateRange
6949 u32 sampleLocationSubPixelBits
6950 VkBool32 variableSampleLocations
6951}
6952
6953@extension("VK_EXT_sample_locations") // 144
6954class VkMultisamplePropertiesEXT {
6955 VkStructureType sType
6956 void* pNext
6957 VkExtent2D maxSampleLocationGridSize
6958}
6959
Jesse Hall9492f992017-08-28 12:10:06 -07006960@extension("VK_KHR_get_memory_requirements2") // 147
6961class VkBufferMemoryRequirementsInfo2KHR {
6962 VkStructureType sType
6963 const void* pNext
6964 VkBuffer buffer
6965}
6966
6967@extension("VK_KHR_get_memory_requirements2") // 147
6968class VkImageMemoryRequirementsInfo2KHR {
6969 VkStructureType sType
6970 const void* pNext
6971 VkImage image
6972}
6973
6974@extension("VK_KHR_get_memory_requirements2") // 147
6975class VkImageSparseMemoryRequirementsInfo2KHR {
6976 VkStructureType sType
6977 const void* pNext
6978 VkImage image
6979}
6980
6981@extension("VK_KHR_get_memory_requirements2") // 147
6982class VkMemoryRequirements2KHR {
6983 VkStructureType sType
6984 void* pNext
6985 VkMemoryRequirements memoryRequirements
6986}
6987
6988@extension("VK_KHR_get_memory_requirements2") // 147
6989class VkSparseImageMemoryRequirements2KHR {
6990 VkStructureType sType
6991 void* pNext
6992 VkSparseImageMemoryRequirements memoryRequirements
6993}
6994
Jesse Hall076f95d2017-09-20 11:34:47 -07006995@extension("VK_KHR_image_format_list") // 148
6996class VkImageFormatListCreateInfoKHR {
6997 VkStructureType sType
6998 const void* pNext
6999 u32 viewFormatCount
7000 const VkFormat* pViewFormats
7001}
7002
Jesse Hall7ba0ac72017-07-07 17:13:23 -07007003@extension("VK_EXT_blend_operation_advanced") // 149
7004class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
7005 VkStructureType sType
7006 void* pNext
7007 VkBool32 advancedBlendCoherentOperations
7008}
7009
7010@extension("VK_EXT_blend_operation_advanced") // 149
7011class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
7012 VkStructureType sType
7013 void* pNext
7014 u32 advancedBlendMaxColorAttachments
7015 VkBool32 advancedBlendIndependentBlend
7016 VkBool32 advancedBlendNonPremultipliedSrcColor
7017 VkBool32 advancedBlendNonPremultipliedDstColor
7018 VkBool32 advancedBlendCorrelatedOverlap
7019 VkBool32 advancedBlendAllOperations
7020}
7021
7022@extension("VK_EXT_blend_operation_advanced") // 149
7023class VkPipelineColorBlendAdvancedStateCreateInfoEXT {
7024 VkStructureType sType
7025 const void* pNext
7026 VkBool32 srcPremultiplied
7027 VkBool32 dstPremultiplied
7028 VkBlendOverlapEXT blendOverlap
7029}
7030
7031@extension("VK_NV_fragment_coverage_to_color") // 150
7032class VkPipelineCoverageToColorStateCreateInfoNV {
7033 VkStructureType sType
7034 const void* pNext
7035 VkPipelineCoverageToColorStateCreateFlagsNV flags
7036 VkBool32 coverageToColorEnable
7037 u32 coverageToColorLocation
7038}
7039
7040@extension("VK_NV_framebuffer_mixed_samples") // 153
7041class VkPipelineCoverageModulationStateCreateInfoNV {
7042 VkStructureType sType
7043 const void* pNext
7044 VkPipelineCoverageModulationStateCreateFlagsNV flags
7045 VkCoverageModulationModeNV coverageModulationMode
7046 VkBool32 coverageModulationTableEnable
7047 u32 coverageModulationTableCount
7048 const f32* pCoverageModulationTable
7049}
7050
Jesse Hall076f95d2017-09-20 11:34:47 -07007051@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7052class VkSamplerYcbcrConversionCreateInfoKHR {
7053 VkStructureType sType
7054 const void* pNext
7055 VkFormat format
7056 VkSamplerYcbcrModelConversionKHR ycbcrModel
7057 VkSamplerYcbcrRangeKHR ycbcrRange
7058 VkComponentMapping components
7059 VkChromaLocationKHR xChromaOffset
7060 VkChromaLocationKHR yChromaOffset
7061 VkFilter chromaFilter
7062 VkBool32 forceExplicitReconstruction
7063}
7064
7065@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7066class VkSamplerYcbcrConversionInfoKHR {
7067 VkStructureType sType
7068 const void* pNext
7069 VkSamplerYcbcrConversionKHR conversion
7070}
7071
7072@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7073class VkBindImagePlaneMemoryInfoKHR {
7074 VkStructureType sType
7075 const void* pNext
7076 VkImageAspectFlagBits planeAspect
7077}
7078
7079@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7080class VkImagePlaneMemoryRequirementsInfoKHR {
7081 VkStructureType sType
7082 const void* pNext
7083 VkImageAspectFlagBits planeAspect
7084}
7085
7086@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7087class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR {
7088 VkStructureType sType
7089 void* pNext
7090 VkBool32 samplerYcbcrConversion
7091}
7092
7093@extension("VK_KHR_sampler_ycbcr_conversion") // 157
7094class VkSamplerYcbcrConversionImageFormatPropertiesKHR {
7095 VkStructureType sType
7096 void* pNext
7097 u32 combinedImageSamplerDescriptorCount
7098}
7099
7100@extension("VK_KHR_bind_memory2") // 158
7101class VkBindBufferMemoryInfoKHR {
7102 VkStructureType sType
7103 const void* pNext
7104 VkBuffer buffer
7105 VkDeviceMemory memory
7106 VkDeviceSize memoryOffset
7107}
7108
7109@extension("VK_KHR_bind_memory2") // 158
7110class VkBindImageMemoryInfoKHR {
7111 VkStructureType sType
7112 const void* pNext
7113 VkImage image
7114 VkDeviceMemory memory
7115 VkDeviceSize memoryOffset
7116}
7117
Jesse Hallf47e8f82018-10-27 23:41:45 -07007118@extension("VK_EXT_image_drm_format_modifier") // 159
7119class VkDrmFormatModifierPropertiesEXT {
7120 u64 drmFormatModifier
7121 u32 drmFormatModifierPlaneCount
7122 VkFormatFeatureFlags drmFormatModifierTilingFeatures
7123}
7124
7125@extension("VK_EXT_image_drm_format_modifier") // 159
7126class VkDrmFormatModifierPropertiesListEXT {
7127 VkStructureType sType
7128 void* pNext
7129 u32 drmFormatModifierCount
7130 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties
7131}
7132
7133@extension("VK_EXT_image_drm_format_modifier") // 159
7134class VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
7135 VkStructureType sType
7136 const void* pNext
7137 u64 drmFormatModifier
7138 VkSharingMode sharingMode
7139 u32 queueFamilyIndexCount
7140 const u32* pQueueFamilyIndices
7141}
7142
7143@extension("VK_EXT_image_drm_format_modifier") // 159
7144class VkImageDrmFormatModifierListCreateInfoEXT {
7145 VkStructureType sType
7146 const void* pNext
7147 u32 drmFormatModifierCount
7148 const u64* pDrmFormatModifiers
7149}
7150
7151@extension("VK_EXT_image_drm_format_modifier") // 159
7152class VkImageDrmFormatModifierExplicitCreateInfoEXT {
7153 VkStructureType sType
7154 const void* pNext
7155 u64 drmFormatModifier
7156 u32 drmFormatModifierPlaneCount
7157 const VkSubresourceLayout* pPlaneLayouts
7158}
7159
7160@extension("VK_EXT_image_drm_format_modifier") // 159
7161class VkImageDrmFormatModifierPropertiesEXT {
7162 VkStructureType sType
7163 void* pNext
7164 u64 drmFormatModifier
7165}
7166
Jesse Hall77726222017-09-19 14:49:27 -05007167@extension("VK_EXT_validation_cache") // 161
7168class VkValidationCacheCreateInfoEXT {
7169 VkStructureType sType
7170 const void* pNext
7171 VkValidationCacheCreateFlagsEXT flags
7172 platform.size_t initialDataSize
7173 const void* pInitialData
7174}
7175
7176@extension("VK_EXT_validation_cache") // 161
7177class VkShaderModuleValidationCacheCreateInfoEXT {
7178 VkStructureType sType
7179 const void* pNext
7180 VkValidationCacheEXT validationCache
7181}
7182
Jesse Hall72e6a132018-04-06 13:00:44 -07007183@extension("VK_EXT_descriptor_indexing") // 162
7184class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT {
7185 VkStructureType sType
7186 const void* pNext
7187 u32 bindingCount
7188 const VkDescriptorBindingFlagsEXT* pBindingFlags
7189}
7190
7191@extension("VK_EXT_descriptor_indexing") // 162
7192class VkPhysicalDeviceDescriptorIndexingFeaturesEXT {
7193 VkStructureType sType
7194 void* pNext
7195 VkBool32 shaderInputAttachmentArrayDynamicIndexing
7196 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing
7197 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing
7198 VkBool32 shaderUniformBufferArrayNonUniformIndexing
7199 VkBool32 shaderSampledImageArrayNonUniformIndexing
7200 VkBool32 shaderStorageBufferArrayNonUniformIndexing
7201 VkBool32 shaderStorageImageArrayNonUniformIndexing
7202 VkBool32 shaderInputAttachmentArrayNonUniformIndexing
7203 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing
7204 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing
7205 VkBool32 descriptorBindingUniformBufferUpdateAfterBind
7206 VkBool32 descriptorBindingSampledImageUpdateAfterBind
7207 VkBool32 descriptorBindingStorageImageUpdateAfterBind
7208 VkBool32 descriptorBindingStorageBufferUpdateAfterBind
7209 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind
7210 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind
7211 VkBool32 descriptorBindingUpdateUnusedWhilePending
7212 VkBool32 descriptorBindingPartiallyBound
7213 VkBool32 descriptorBindingVariableDescriptorCount
7214 VkBool32 runtimeDescriptorArray
7215}
7216
7217@extension("VK_EXT_descriptor_indexing") // 162
7218class VkPhysicalDeviceDescriptorIndexingPropertiesEXT {
7219 VkStructureType sType
7220 void* pNext
7221 u32 maxUpdateAfterBindDescriptorsInAllPools
7222 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative
7223 VkBool32 shaderSampledImageArrayNonUniformIndexingNative
7224 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative
7225 VkBool32 shaderStorageImageArrayNonUniformIndexingNative
7226 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative
7227 VkBool32 robustBufferAccessUpdateAfterBind
7228 VkBool32 quadDivergentImplicitLod
7229 u32 maxPerStageDescriptorUpdateAfterBindSamplers
7230 u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers
7231 u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers
7232 u32 maxPerStageDescriptorUpdateAfterBindSampledImages
7233 u32 maxPerStageDescriptorUpdateAfterBindStorageImages
7234 u32 maxPerStageDescriptorUpdateAfterBindInputAttachments
7235 u32 maxPerStageUpdateAfterBindResources
7236 u32 maxDescriptorSetUpdateAfterBindSamplers
7237 u32 maxDescriptorSetUpdateAfterBindUniformBuffers
7238 u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic
7239 u32 maxDescriptorSetUpdateAfterBindStorageBuffers
7240 u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic
7241 u32 maxDescriptorSetUpdateAfterBindSampledImages
7242 u32 maxDescriptorSetUpdateAfterBindStorageImages
7243 u32 maxDescriptorSetUpdateAfterBindInputAttachments
7244}
7245
7246@extension("VK_EXT_descriptor_indexing") // 162
7247class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT {
7248 VkStructureType sType
7249 const void* pNext
7250 u32 descriptorSetCount
7251 const u32* pDescriptorCounts
7252}
7253
7254@extension("VK_EXT_descriptor_indexing") // 162
7255class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT {
7256 VkStructureType sType
7257 void* pNext
7258 u32 maxVariableDescriptorCount
7259}
7260
Jesse Hallb5297192018-09-22 20:52:13 +02007261@extension("VK_NV_shading_rate_image") // 165
7262class VkShadingRatePaletteNV {
7263 u32 shadingRatePaletteEntryCount
7264 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries
7265}
7266
7267@extension("VK_NV_shading_rate_image") // 165
7268class VkPipelineViewportShadingRateImageStateCreateInfoNV {
7269 VkStructureType sType
7270 const void* pNext
7271 VkBool32 shadingRateImageEnable
7272 u32 viewportCount
7273 const VkShadingRatePaletteNV* pShadingRatePalettes
7274}
7275
7276@extension("VK_NV_shading_rate_image") // 165
7277class VkPhysicalDeviceShadingRateImageFeaturesNV {
7278 VkStructureType sType
7279 void* pNext
7280 VkBool32 shadingRateImage
7281 VkBool32 shadingRateCoarseSampleOrder
7282}
7283
7284@extension("VK_NV_shading_rate_image") // 165
7285class VkPhysicalDeviceShadingRateImagePropertiesNV {
7286 VkStructureType sType
7287 void* pNext
7288 VkExtent2D shadingRateTexelSize
7289 u32 shadingRatePaletteSize
7290 u32 shadingRateMaxCoarseSamples
7291}
7292
7293@extension("VK_NV_shading_rate_image") // 165
7294class VkCoarseSampleLocationNV {
7295 u32 pixelX
7296 u32 pixelY
7297 u32 sample
7298}
7299
7300@extension("VK_NV_shading_rate_image") // 165
7301class VkCoarseSampleOrderCustomNV {
7302 VkShadingRatePaletteEntryNV shadingRate
7303 u32 sampleCount
7304 u32 sampleLocationCount
7305 const VkCoarseSampleLocationNV* pSampleLocations
7306}
7307
7308@extension("VK_NV_shading_rate_image") // 165
7309class VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
7310 VkStructureType sType
7311 const void* pNext
7312 VkCoarseSampleOrderTypeNV sampleOrderType
7313 u32 customSampleOrderCount
7314 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders
7315}
7316
Jesse Hallbeea46d2018-12-04 14:38:07 -08007317@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007318class VkRayTracingShaderGroupCreateInfoNV {
7319 VkStructureType sType
7320 const void* pNext
7321 VkRayTracingShaderGroupTypeNV type
7322 u32 generalShader
7323 u32 closestHitShader
7324 u32 anyHitShader
7325 u32 intersectionShader
Jesse Hallb5297192018-09-22 20:52:13 +02007326}
7327
Jesse Hallbeea46d2018-12-04 14:38:07 -08007328@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007329class VkRayTracingPipelineCreateInfoNV {
7330 VkStructureType sType
7331 const void* pNext
7332 VkPipelineCreateFlags flags
7333 u32 stageCount
7334 const VkPipelineShaderStageCreateInfo* pStages
7335 u32 groupCount
7336 const VkRayTracingShaderGroupCreateInfoNV* pGroups
7337 u32 maxRecursionDepth
7338 VkPipelineLayout layout
7339 VkPipeline basePipelineHandle
7340 s32 basePipelineIndex
7341}
7342
Jesse Hallbeea46d2018-12-04 14:38:07 -08007343@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007344class VkGeometryTrianglesNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007345 VkStructureType sType
7346 const void* pNext
7347 VkBuffer vertexData
7348 VkDeviceSize vertexOffset
7349 u32 vertexCount
7350 VkDeviceSize vertexStride
7351 VkFormat vertexFormat
7352 VkBuffer indexData
7353 VkDeviceSize indexOffset
7354 u32 indexCount
7355 VkIndexType indexType
7356 VkBuffer transformData
7357 VkDeviceSize transformOffset
7358}
7359
Jesse Hallbeea46d2018-12-04 14:38:07 -08007360@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007361class VkGeometryAABBNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007362 VkStructureType sType
7363 const void* pNext
7364 VkBuffer aabbData
7365 u32 numAABBs
7366 u32 stride
7367 VkDeviceSize offset
7368}
7369
Jesse Hallbeea46d2018-12-04 14:38:07 -08007370@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007371class VkGeometryDataNV {
7372 VkGeometryTrianglesNV triangles
7373 VkGeometryAABBNV aabbs
Jesse Hallb5297192018-09-22 20:52:13 +02007374}
7375
Jesse Hallbeea46d2018-12-04 14:38:07 -08007376@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007377class VkGeometryNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007378 VkStructureType sType
7379 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007380 VkGeometryTypeNV geometryType
7381 VkGeometryDataNV geometry
7382 VkGeometryFlagsNV flags
Jesse Hallb5297192018-09-22 20:52:13 +02007383}
7384
Jesse Hallbeea46d2018-12-04 14:38:07 -08007385@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007386class VkAccelerationStructureInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007387 VkStructureType sType
7388 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007389 VkAccelerationStructureTypeNV type
7390 VkBuildAccelerationStructureFlagsNV flags
Jesse Hallb5297192018-09-22 20:52:13 +02007391 u32 instanceCount
7392 u32 geometryCount
Jesse Halla363a8e2018-11-05 21:18:00 -07007393 const VkGeometryNV* pGeometries
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 VkAccelerationStructureCreateInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007398 VkStructureType sType
7399 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007400 VkDeviceSize compactedSize
7401 VkAccelerationStructureInfoNV info
7402}
7403
Jesse Hallbeea46d2018-12-04 14:38:07 -08007404@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007405class VkBindAccelerationStructureMemoryInfoNV {
7406 VkStructureType sType
7407 const void* pNext
7408 VkAccelerationStructureNV accelerationStructure
Jesse Hallb5297192018-09-22 20:52:13 +02007409 VkDeviceMemory memory
7410 VkDeviceSize memoryOffset
7411 u32 deviceIndexCount
7412 const u32* pDeviceIndices
7413}
7414
Jesse Hallbeea46d2018-12-04 14:38:07 -08007415@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007416class VkDescriptorAccelerationStructureInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007417 VkStructureType sType
7418 const void* pNext
7419 u32 accelerationStructureCount
Jesse Halla363a8e2018-11-05 21:18:00 -07007420 const VkAccelerationStructureNV* pAccelerationStructures
Jesse Hallb5297192018-09-22 20:52:13 +02007421}
7422
Jesse Hallbeea46d2018-12-04 14:38:07 -08007423@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007424class VkAccelerationStructureMemoryRequirementsInfoNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007425 VkStructureType sType
7426 const void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007427 VkAccelerationStructureMemoryRequirementsTypeNV type
7428 VkAccelerationStructureNV accelerationStructure
Jesse Hallb5297192018-09-22 20:52:13 +02007429}
7430
Jesse Hallbeea46d2018-12-04 14:38:07 -08007431@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -07007432class VkPhysicalDeviceRaytracingPropertiesNV {
Jesse Hallb5297192018-09-22 20:52:13 +02007433 VkStructureType sType
7434 void* pNext
Jesse Halla363a8e2018-11-05 21:18:00 -07007435 u32 shaderGroupHandleSize
Jesse Hallb5297192018-09-22 20:52:13 +02007436 u32 maxRecursionDepth
Jesse Halla363a8e2018-11-05 21:18:00 -07007437 u32 maxShaderGroupStride
7438 u32 shaderGroupBaseAlignment
7439 u64 maxGeometryCount
7440 u64 maxInstanceCount
7441 u64 maxTriangleCount
7442 u32 maxDescriptorSetAccelerationStructures
Jesse Hallb5297192018-09-22 20:52:13 +02007443}
7444
7445@extension("VK_NV_representative_fragment_test") // 167
7446class VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
7447 VkStructureType sType
7448 void* pNext
7449 VkBool32 representativeFragmentTest
7450}
7451
7452@extension("VK_NV_representative_fragment_test") // 167
7453class VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
7454 VkStructureType sType
7455 const void* pNext
7456 VkBool32 representativeFragmentTestEnable
7457}
7458
Daniel Koch09f7bf92017-10-05 00:26:58 -04007459@extension("VK_KHR_maintenance3") // 169
7460class VkPhysicalDeviceMaintenance3PropertiesKHR {
7461 VkStructureType sType
7462 void* pNext
7463 u32 maxPerSetDescriptors
7464 VkDeviceSize maxMemoryAllocationSize
7465}
7466
7467@extension("VK_KHR_maintenance3") // 169
7468class VkDescriptorSetLayoutSupportKHR {
7469 VkStructureType sType
7470 void* pNext
7471 VkBool32 supported
7472}
7473
Jesse Hall8c954d32018-01-17 22:06:20 -08007474@extension("VK_EXT_global_priority") // 175
7475class VkDeviceQueueGlobalPriorityCreateInfoEXT {
7476 VkStructureType sType
7477 const void* pNext
7478 VkQueueGlobalPriorityEXT globalPriority
7479}
7480
Jesse Halla13a3cf2018-07-09 15:51:52 -07007481@extension("VK_KHR_8bit_storage") // 178
7482class VkPhysicalDevice8BitStorageFeaturesKHR {
7483 VkStructureType sType
7484 void* pNext
7485 VkBool32 storageBuffer8BitAccess
7486 VkBool32 uniformAndStorageBuffer8BitAccess
7487 VkBool32 storagePushConstant8
7488}
7489
Jesse Hall8c954d32018-01-17 22:06:20 -08007490@extension("VK_EXT_external_memory_host") // 179
7491class VkImportMemoryHostPointerInfoEXT {
7492 VkStructureType sType
7493 const void* pNext
7494 VkExternalMemoryHandleTypeFlagBits handleType
7495 void* pHostPointer
7496}
7497
7498@extension("VK_EXT_external_memory_host") // 179
7499class VkMemoryHostPointerPropertiesEXT {
7500 VkStructureType sType
7501 void* pNext
7502 u32 memoryTypeBits
7503}
7504
7505@extension("VK_EXT_external_memory_host") // 179
7506class VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
7507 VkStructureType sType
7508 void* pNext
7509 VkDeviceSize minImportedHostPointerAlignment
7510}
7511
Jesse Hall2e6853c2018-10-02 14:05:37 -07007512@extension("VK_KHR_shader_atomic_int64") // 181
7513class VkPhysicalDeviceShaderAtomicInt64FeaturesKHR {
7514 VkStructureType sType
7515 void* pNext
7516 VkBool32 shaderBufferInt64Atomics
7517 VkBool32 shaderSharedInt64Atomics
7518}
7519
Jesse Hallf47e8f82018-10-27 23:41:45 -07007520@extension("VK_EXT_calibrated_timestamps") // 185
7521class VkCalibratedTimestampInfoEXT {
7522 VkStructureType sType
7523 const void* pNext
7524 VkTimeDomainEXT timeDomain
7525}
7526
Jesse Hall72e6a132018-04-06 13:00:44 -07007527@extension("VK_AMD_shader_core_properties") // 186
7528class VkPhysicalDeviceShaderCorePropertiesAMD {
7529 VkStructureType sType
7530 void* pNext
7531 u32 shaderEngineCount
7532 u32 shaderArraysPerEngineCount
7533 u32 computeUnitsPerShaderArray
7534 u32 simdPerComputeUnit
7535 u32 wavefrontsPerSimd
7536 u32 wavefrontSize
7537 u32 sgprsPerSimd
7538 u32 minSgprAllocation
7539 u32 maxSgprAllocation
7540 u32 sgprAllocationGranularity
7541 u32 vgprsPerSimd
7542 u32 minVgprAllocation
7543 u32 maxVgprAllocation
7544 u32 vgprAllocationGranularity
7545}
7546
Jesse Halla363a8e2018-11-05 21:18:00 -07007547@extension("VK_AMD_memory_overallocation_behavior") // 190
7548class VkDeviceMemoryOverallocationCreateInfoAMD {
7549 VkStructureType sType
7550 const void* pNext
7551 VkMemoryOverallocationBehaviorAMD overallocationBehavior
7552}
7553
Jesse Hall72e6a132018-04-06 13:00:44 -07007554@extension("VK_EXT_vertex_attribute_divisor") // 191
7555class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
7556 VkStructureType sType
7557 void* pNext
7558 u32 maxVertexAttribDivisor
7559}
7560
7561@extension("VK_EXT_vertex_attribute_divisor") // 191
7562class VkVertexInputBindingDivisorDescriptionEXT {
7563 u32 binding
7564 u32 divisor
7565}
7566
7567@extension("VK_EXT_vertex_attribute_divisor") // 191
7568class VkPipelineVertexInputDivisorStateCreateInfoEXT {
7569 VkStructureType sType
7570 const void* pNext
7571 u32 vertexBindingDivisorCount
7572 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors
7573}
7574
Jesse Hall4af6c462018-09-10 09:04:25 -07007575@extension("VK_EXT_vertex_attribute_divisor") // 191
7576class VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
7577 VkStructureType sType
7578 void* pNext
7579 VkBool32 vertexAttributeInstanceRateDivisor
7580 VkBool32 vertexAttributeInstanceRateZeroDivisor
7581}
7582
Jesse Hall2e6853c2018-10-02 14:05:37 -07007583@extension("VK_KHR_driver_properties") // 197
7584class VkConformanceVersionKHR {
7585 u8 major
7586 u8 minor
7587 u8 subminor
7588 u8 patch
7589}
7590
7591@extension("VK_KHR_driver_properties") // 197
7592class VkPhysicalDeviceDriverPropertiesKHR {
7593 VkStructureType sType
7594 void* pNext
Jesse Hallf47e8f82018-10-27 23:41:45 -07007595 VkDriverIdKHR driverID
Jesse Hall2e6853c2018-10-02 14:05:37 -07007596 char[VK_MAX_DRIVER_NAME_SIZE_KHR] driverName
7597 char[VK_MAX_DRIVER_INFO_SIZE_KHR] driverInfo
7598 VkConformanceVersionKHR conformanceVersion
7599}
7600
Jesse Hallb5297192018-09-22 20:52:13 +02007601@extension("VK_NV_compute_shader_derivatives") // 202
7602class VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
7603 VkStructureType sType
7604 void* pNext
7605 VkBool32 computeDerivativeGroupQuads
7606 VkBool32 computeDerivativeGroupLinear
7607}
7608
7609@extension("VK_NV_mesh_shader") // 203
7610class VkPhysicalDeviceMeshShaderFeaturesNV {
7611 VkStructureType sType
7612 void* pNext
7613 VkBool32 taskShader
7614 VkBool32 meshShader
7615}
7616
7617@extension("VK_NV_mesh_shader") // 203
7618class VkPhysicalDeviceMeshShaderPropertiesNV {
7619 VkStructureType sType
7620 void* pNext
7621 u32 maxDrawMeshTasksCount
7622 u32 maxTaskWorkGroupInvocations
7623 u32[3] maxTaskWorkGroupSize
7624 u32 maxTaskTotalMemorySize
7625 u32 maxTaskOutputCount
7626 u32 maxMeshWorkGroupInvocations
7627 u32[3] maxMeshWorkGroupSize
7628 u32 maxMeshTotalMemorySize
7629 u32 maxMeshOutputVertices
7630 u32 maxMeshOutputPrimitives
7631 u32 maxMeshMultiviewViewCount
7632 u32 meshOutputPerVertexGranularity
7633 u32 meshOutputPerPrimitiveGranularity
7634}
7635
7636@extension("VK_NV_mesh_shader") // 203
7637class VkDrawMeshTasksIndirectCommandNV {
7638 u32 taskCount
7639 u32 firstTask
7640}
7641
7642@extension("VK_NV_fragment_shader_barycentric") // 204
7643class VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
7644 VkStructureType sType
7645 void* pNext
7646 VkBool32 fragmentShaderBarycentric
7647}
7648
7649@extension("VK_NV_shader_image_footprint") // 205
7650class VkPhysicalDeviceShaderImageFootprintFeaturesNV {
7651 VkStructureType sType
7652 void* pNext
7653 VkBool32 imageFootprint
7654}
7655
7656@extension("VK_NV_scissor_exclusive") // 206
7657class VkPipelineViewportExclusiveScissorStateCreateInfoNV {
7658 VkStructureType sType
7659 const void* pNext
7660 u32 exclusiveScissorCount
7661 const VkRect2D* pExclusiveScissors
7662}
7663
7664@extension("VK_NV_scissor_exclusive") // 206
7665class VkPhysicalDeviceExclusiveScissorFeaturesNV {
7666 VkStructureType sType
7667 void* pNext
7668 VkBool32 exclusiveScissor
7669}
7670
Jesse Hall115df0c2018-07-30 12:00:59 -07007671@extension("VK_NV_device_diagnostic_checkpoints") // 207
7672class VkQueueFamilyCheckpointPropertiesNV {
7673 VkStructureType sType
7674 void* pNext
7675 VkPipelineStageFlags checkpointExecutionStageMask
7676}
7677
7678@extension("VK_NV_device_diagnostic_checkpoints") // 207
7679class VkCheckpointDataNV {
7680 VkStructureType sType
7681 void* pNext
7682 VkPipelineStageFlagBits stage
7683 void* pCheckpointMarker
7684}
7685
Jesse Hall4af6c462018-09-10 09:04:25 -07007686@extension("VK_KHR_vulkan_memory_model") // 212
7687class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR {
7688 VkStructureType sType
7689 void* pNext
7690 VkBool32 vulkanMemoryModel
7691 VkBool32 vulkanMemoryModelDeviceScope
7692}
7693
Jesse Hallf47e8f82018-10-27 23:41:45 -07007694@extension("VK_EXT_pci_bus_info") // 213
7695class VkPhysicalDevicePCIBusInfoPropertiesEXT {
7696 VkStructureType sType
7697 void* pNext
7698 u16 pciDomain
7699 u8 pciBus
7700 u8 pciDevice
7701 u8 pciFunction
7702}
7703
Jesse Hall497c46f2018-10-08 12:52:48 -07007704@extension("VK_FUCHSIA_imagepipe_surface") // 215
7705class VkImagePipeSurfaceCreateInfoFUCHSIA {
7706 VkStructureType sType
7707 const void* pNext
7708 VkImagePipeSurfaceCreateFlagsFUCHSIA flags
7709 platform.zx_handle_t imagePipeHandle
7710}
7711
Jesse Hall48514722018-12-04 14:44:42 -08007712@extension("VK_EXT_fragment_density_map") // 219
7713class VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
7714 VkStructureType sType
7715 void* pNext
7716 VkBool32 fragmentDensityMap
7717 VkBool32 fragmentDensityMapDynamic
7718 VkBool32 fragmentDensityMapNonSubsampledImages
7719}
7720
7721@extension("VK_EXT_fragment_density_map") // 219
7722class VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
7723 VkStructureType sType
7724 void* pNext
7725 VkExtent2D minFragmentDensityTexelSize
7726 VkExtent2D maxFragmentDensityTexelSize
7727 VkBool32 fragmentDensityInvocations
7728}
7729
7730@extension("VK_EXT_fragment_density_map") // 219
7731class VkRenderPassFragmentDensityMapCreateInfoEXT {
7732 VkStructureType sType
7733 const void* pNext
7734 VkAttachmentReference fragmentDensityMapAttachment
7735}
7736
Jesse Hall89bde782018-11-12 08:06:07 -08007737@extension("VK_EXT_scalar_block_layout") // 222
7738class VkPhysicalDeviceScalarBlockLayoutFeaturesEXT {
7739 VkStructureType sType
7740 void* pNext
7741 VkBool32 scalarBlockLayout
7742}
7743
7744@extension("VK_EXT_separate_stencil_usage") // 247
7745class VkImageStencilUsageCreateInfoEXT {
7746 VkStructureType sType
7747 const void* pNext
7748 VkImageUsageFlags stencilUsage
7749}
7750
Daniel Koch09f7bf92017-10-05 00:26:58 -04007751
Jesse Halld27f6aa2015-08-15 17:58:48 -07007752////////////////
7753// Commands //
7754////////////////
7755
7756// Function pointers. TODO: add support for function pointers.
7757
7758@external type void* PFN_vkVoidFunction
7759@pfn cmd void vkVoidFunction() {
7760}
7761
Jesse Hall3fbc8562015-11-29 22:10:52 -08007762@external type void* PFN_vkAllocationFunction
7763@pfn cmd void* vkAllocationFunction(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007764 void* pUserData,
7765 platform.size_t size,
7766 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007767 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007768 return ?
7769}
7770
Jesse Hall3fbc8562015-11-29 22:10:52 -08007771@external type void* PFN_vkReallocationFunction
7772@pfn cmd void* vkReallocationFunction(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007773 void* pUserData,
7774 void* pOriginal,
7775 platform.size_t size,
7776 platform.size_t alignment,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007777 VkSystemAllocationScope allocationScope) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007778 return ?
7779}
7780
7781@external type void* PFN_vkFreeFunction
7782@pfn cmd void vkFreeFunction(
7783 void* pUserData,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007784 void* pMemory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007785}
7786
Jesse Hall3fbc8562015-11-29 22:10:52 -08007787@external type void* PFN_vkInternalAllocationNotification
7788@pfn cmd void vkInternalAllocationNotification(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007789 void* pUserData,
7790 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007791 VkInternalAllocationType allocationType,
7792 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007793}
7794
7795@external type void* PFN_vkInternalFreeNotification
7796@pfn cmd void vkInternalFreeNotification(
7797 void* pUserData,
7798 platform.size_t size,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007799 VkInternalAllocationType allocationType,
7800 VkSystemAllocationScope allocationScope) {
Jesse Hall03b6fe12015-11-24 12:44:21 -08007801}
Jesse Halld27f6aa2015-08-15 17:58:48 -07007802
7803// Global functions
7804
7805@threadSafety("system")
7806cmd VkResult vkCreateInstance(
7807 const VkInstanceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007808 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007809 VkInstance* pInstance) {
7810 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO)
7811
7812 instance := ?
7813 pInstance[0] = instance
7814 State.Instances[instance] = new!InstanceObject()
7815
Jesse Hall3dd678a2016-01-08 21:52:01 -08007816 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount]
7817 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07007818
7819 return ?
7820}
7821
7822@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007823cmd void vkDestroyInstance(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007824 VkInstance instance,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007825 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007826 instanceObject := GetInstance(instance)
7827
7828 State.Instances[instance] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007829}
7830
7831@threadSafety("system")
7832cmd VkResult vkEnumeratePhysicalDevices(
7833 VkInstance instance,
7834 u32* pPhysicalDeviceCount,
7835 VkPhysicalDevice* pPhysicalDevices) {
7836 instanceObject := GetInstance(instance)
7837
7838 physicalDeviceCount := as!u32(?)
7839 pPhysicalDeviceCount[0] = physicalDeviceCount
7840 physicalDevices := pPhysicalDevices[0:physicalDeviceCount]
7841
7842 for i in (0 .. physicalDeviceCount) {
7843 physicalDevice := ?
7844 physicalDevices[i] = physicalDevice
7845 if !(physicalDevice in State.PhysicalDevices) {
7846 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
7847 }
7848 }
7849
7850 return ?
7851}
7852
7853cmd PFN_vkVoidFunction vkGetDeviceProcAddr(
7854 VkDevice device,
7855 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007856 if device != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007857 device := GetDevice(device)
7858 }
7859
7860 return ?
7861}
7862
7863cmd PFN_vkVoidFunction vkGetInstanceProcAddr(
7864 VkInstance instance,
7865 const char* pName) {
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007866 if instance != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007867 instanceObject := GetInstance(instance)
7868 }
7869
7870 return ?
7871}
7872
Jesse Hall606a54e2015-11-19 22:17:28 -08007873cmd void vkGetPhysicalDeviceProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007874 VkPhysicalDevice physicalDevice,
7875 VkPhysicalDeviceProperties* pProperties) {
7876 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7877
7878 properties := ?
7879 pProperties[0] = properties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007880}
7881
Jesse Hall606a54e2015-11-19 22:17:28 -08007882cmd void vkGetPhysicalDeviceQueueFamilyProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007883 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007884 u32* pQueueFamilyPropertyCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007885 VkQueueFamilyProperties* pQueueFamilyProperties) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007886 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007887 // TODO: Figure out how to express fetch-count-or-properties
7888 // This version fails 'apic validate' with 'fence not allowed in
7889 // *semantic.Branch'. Other attempts have failed with the same or other
7890 // errors.
7891 // if pQueueFamilyProperties != null {
7892 // queuesProperties := pQueueFamilyProperties[0:pCount[0]]
7893 // for i in (0 .. pCount[0]) {
7894 // queueProperties := as!VkQueueFamilyProperties(?)
7895 // queuesProperties[i] = queueProperties
7896 // }
7897 // } else {
7898 // count := ?
7899 // pCount[0] = count
7900 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07007901}
7902
Jesse Hall606a54e2015-11-19 22:17:28 -08007903cmd void vkGetPhysicalDeviceMemoryProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007904 VkPhysicalDevice physicalDevice,
7905 VkPhysicalDeviceMemoryProperties* pMemoryProperties) {
7906 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7907
7908 memoryProperties := ?
7909 pMemoryProperties[0] = memoryProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007910}
7911
Jesse Hall606a54e2015-11-19 22:17:28 -08007912cmd void vkGetPhysicalDeviceFeatures(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007913 VkPhysicalDevice physicalDevice,
7914 VkPhysicalDeviceFeatures* pFeatures) {
7915 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7916
7917 features := ?
7918 pFeatures[0] = features
Jesse Halld27f6aa2015-08-15 17:58:48 -07007919}
7920
Jesse Hall606a54e2015-11-19 22:17:28 -08007921cmd void vkGetPhysicalDeviceFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007922 VkPhysicalDevice physicalDevice,
7923 VkFormat format,
7924 VkFormatProperties* pFormatProperties) {
7925 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7926
7927 formatProperties := ?
7928 pFormatProperties[0] = formatProperties
Jesse Halld27f6aa2015-08-15 17:58:48 -07007929}
7930
Jesse Halla9e57032015-11-30 01:03:10 -08007931cmd VkResult vkGetPhysicalDeviceImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007932 VkPhysicalDevice physicalDevice,
7933 VkFormat format,
7934 VkImageType type,
7935 VkImageTiling tiling,
7936 VkImageUsageFlags usage,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007937 VkImageCreateFlags flags,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007938 VkImageFormatProperties* pImageFormatProperties) {
7939 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7940
7941 imageFormatProperties := ?
7942 pImageFormatProperties[0] = imageFormatProperties
Jesse Halla9e57032015-11-30 01:03:10 -08007943
7944 return ?
Jesse Halld27f6aa2015-08-15 17:58:48 -07007945}
7946
Jesse Halld27f6aa2015-08-15 17:58:48 -07007947
7948// Device functions
7949
7950@threadSafety("system")
7951cmd VkResult vkCreateDevice(
7952 VkPhysicalDevice physicalDevice,
7953 const VkDeviceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007954 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007955 VkDevice* pDevice) {
7956 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO)
7957 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
7958
7959 device := ?
7960 pDevice[0] = device
7961 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice)
7962
7963 return ?
7964}
7965
7966@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007967cmd void vkDestroyDevice(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007968 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08007969 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07007970 deviceObject := GetDevice(device)
7971
7972 State.Devices[device] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07007973}
7974
7975
7976// Extension discovery functions
7977
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007978cmd VkResult vkEnumerateInstanceLayerProperties(
Jesse Hall03b6fe12015-11-24 12:44:21 -08007979 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007980 VkLayerProperties* pProperties) {
7981 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007982 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007983
7984 properties := pProperties[0:count]
7985 for i in (0 .. count) {
7986 property := ?
7987 properties[i] = property
7988 }
7989
7990 return ?
7991}
7992
Jesse Hall5ae3abb2015-10-08 14:00:22 -07007993cmd VkResult vkEnumerateInstanceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07007994 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08007995 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07007996 VkExtensionProperties* pProperties) {
7997 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08007998 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07007999
8000 properties := pProperties[0:count]
8001 for i in (0 .. count) {
8002 property := ?
8003 properties[i] = property
8004 }
8005
8006 return ?
8007}
8008
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008009cmd VkResult vkEnumerateDeviceLayerProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008010 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008011 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008012 VkLayerProperties* pProperties) {
8013 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
8014 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08008015 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07008016
8017 properties := pProperties[0:count]
8018 for i in (0 .. count) {
8019 property := ?
8020 properties[i] = property
8021 }
8022
8023 return ?
8024}
8025
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008026cmd VkResult vkEnumerateDeviceExtensionProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008027 VkPhysicalDevice physicalDevice,
8028 const char* pLayerName,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008029 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008030 VkExtensionProperties* pProperties) {
8031 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
8032
8033 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -08008034 pPropertyCount[0] = count
Jesse Halld27f6aa2015-08-15 17:58:48 -07008035
8036 properties := pProperties[0:count]
8037 for i in (0 .. count) {
8038 property := ?
8039 properties[i] = property
8040 }
8041
8042 return ?
8043}
8044
8045
8046// Queue functions
8047
8048@threadSafety("system")
Jesse Hall606a54e2015-11-19 22:17:28 -08008049cmd void vkGetDeviceQueue(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008050 VkDevice device,
8051 u32 queueFamilyIndex,
8052 u32 queueIndex,
8053 VkQueue* pQueue) {
8054 deviceObject := GetDevice(device)
8055
8056 queue := ?
8057 pQueue[0] = queue
8058
8059 if !(queue in State.Queues) {
8060 State.Queues[queue] = new!QueueObject(device: device)
8061 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008062}
8063
8064@threadSafety("app")
8065cmd VkResult vkQueueSubmit(
8066 VkQueue queue,
Jesse Halla366a512015-11-19 22:30:07 -08008067 u32 submitCount,
Jesse Hallb00daad2015-11-29 19:46:20 -08008068 const VkSubmitInfo* pSubmits,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008069 VkFence fence) {
8070 queueObject := GetQueue(queue)
8071
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008072 if fence != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008073 fenceObject := GetFence(fence)
8074 assert(fenceObject.device == queueObject.device)
8075 }
8076
Jesse Hall3fbc8562015-11-29 22:10:52 -08008077 // commandBuffers := pcommandBuffers[0:commandBufferCount]
8078 // for i in (0 .. commandBufferCount) {
8079 // commandBuffer := commandBuffers[i]
8080 // commandBufferObject := GetCommandBuffer(commandBuffer)
8081 // assert(commandBufferObject.device == queueObject.device)
Jesse Halla366a512015-11-19 22:30:07 -08008082 //
Jesse Hall3fbc8562015-11-29 22:10:52 -08008083 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags,
8084 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.")
Jesse Halla366a512015-11-19 22:30:07 -08008085 // }
Jesse Halld27f6aa2015-08-15 17:58:48 -07008086
8087 return ?
8088}
8089
8090@threadSafety("system")
8091cmd VkResult vkQueueWaitIdle(
8092 VkQueue queue) {
8093 queueObject := GetQueue(queue)
8094
8095 return ?
8096}
8097
8098@threadSafety("system")
8099cmd VkResult vkDeviceWaitIdle(
8100 VkDevice device) {
8101 deviceObject := GetDevice(device)
8102
8103 return ?
8104}
8105
8106
8107// Memory functions
8108
8109@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008110cmd VkResult vkAllocateMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008111 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008112 const VkMemoryAllocateInfo* pAllocateInfo,
8113 const VkAllocationCallbacks* pAllocator,
8114 VkDeviceMemory* pMemory) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08008115 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008116 deviceObject := GetDevice(device)
8117
Jesse Hall3fbc8562015-11-29 22:10:52 -08008118 memory := ?
8119 pMemory[0] = memory
8120 State.DeviceMemories[memory] = new!DeviceMemoryObject(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008121 device: device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008122 allocationSize: pAllocateInfo[0].allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008123
8124 return ?
8125}
8126
8127@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008128cmd void vkFreeMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008129 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008130 VkDeviceMemory memory,
8131 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008132 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008133 memoryObject := GetDeviceMemory(memory)
8134 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008135
8136 // Check that no objects are still bound before freeing.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008137 validate("MemoryCheck", len(memoryObject.boundObjects) == 0,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008138 "vkFreeMemory: objects still bound")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008139 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0,
8140 "vkFreeMemory: commandBuffers still bound")
8141 State.DeviceMemories[memory] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008142}
8143
8144@threadSafety("app")
8145cmd VkResult vkMapMemory(
8146 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008147 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008148 VkDeviceSize offset,
8149 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008150 VkMemoryMapFlags flags,
8151 void** ppData) {
8152 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008153 memoryObject := GetDeviceMemory(memory)
8154 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008155
8156 assert(flags == as!VkMemoryMapFlags(0))
Jesse Hall3fbc8562015-11-29 22:10:52 -08008157 assert((offset + size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008158
8159 return ?
8160}
8161
8162@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008163cmd void vkUnmapMemory(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008164 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008165 VkDeviceMemory memory) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008166 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008167 memoryObject := GetDeviceMemory(memory)
8168 assert(memoryObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008169}
8170
8171cmd VkResult vkFlushMappedMemoryRanges(
8172 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008173 u32 memoryRangeCount
8174 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008175 deviceObject := GetDevice(device)
8176
Jesse Hall3fbc8562015-11-29 22:10:52 -08008177 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8178 for i in (0 .. memoryRangeCount) {
8179 memoryRange := memoryRanges[i]
8180 memoryObject := GetDeviceMemory(memoryRange.memory)
8181 assert(memoryObject.device == device)
8182 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008183 }
8184
8185 return ?
8186}
8187
8188cmd VkResult vkInvalidateMappedMemoryRanges(
8189 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008190 u32 memoryRangeCount,
8191 const VkMappedMemoryRange* pMemoryRanges) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008192 deviceObject := GetDevice(device)
8193
Jesse Hall3fbc8562015-11-29 22:10:52 -08008194 memoryRanges := pMemoryRanges[0:memoryRangeCount]
8195 for i in (0 .. memoryRangeCount) {
8196 memoryRange := memoryRanges[i]
8197 memoryObject := GetDeviceMemory(memoryRange.memory)
8198 assert(memoryObject.device == device)
8199 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008200 }
8201
8202 return ?
8203}
8204
8205
8206// Memory management API functions
8207
Jesse Hall606a54e2015-11-19 22:17:28 -08008208cmd void vkGetDeviceMemoryCommitment(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008209 VkDevice device,
8210 VkDeviceMemory memory,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008211 VkDeviceSize* pCommittedMemoryInBytes) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008212 deviceObject := GetDevice(device)
8213
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008214 if memory != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008215 memoryObject := GetDeviceMemory(memory)
8216 assert(memoryObject.device == device)
8217 }
8218
8219 committedMemoryInBytes := ?
8220 pCommittedMemoryInBytes[0] = committedMemoryInBytes
Jesse Halld27f6aa2015-08-15 17:58:48 -07008221}
8222
Jesse Hall606a54e2015-11-19 22:17:28 -08008223cmd void vkGetBufferMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008224 VkDevice device,
8225 VkBuffer buffer,
8226 VkMemoryRequirements* pMemoryRequirements) {
8227 deviceObject := GetDevice(device)
8228 bufferObject := GetBuffer(buffer)
8229 assert(bufferObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008230}
8231
8232cmd VkResult vkBindBufferMemory(
8233 VkDevice device,
8234 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008235 VkDeviceMemory memory,
8236 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008237 deviceObject := GetDevice(device)
8238 bufferObject := GetBuffer(buffer)
8239 assert(bufferObject.device == device)
8240
8241 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008242 if bufferObject.memory != NULL_HANDLE {
8243 memoryObject := GetDeviceMemory(bufferObject.memory)
8244 memoryObject.boundObjects[as!u64(buffer)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008245 }
8246
8247 // Bind buffer to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008248 if memory != NULL_HANDLE {
8249 memoryObject := GetDeviceMemory(memory)
8250 assert(memoryObject.device == device)
8251 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008252 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008253 bufferObject.memory = memory
8254 bufferObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008255
8256 return ?
8257}
8258
Jesse Hall606a54e2015-11-19 22:17:28 -08008259cmd void vkGetImageMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008260 VkDevice device,
8261 VkImage image,
8262 VkMemoryRequirements* pMemoryRequirements) {
8263 deviceObject := GetDevice(device)
8264 imageObject := GetImage(image)
8265 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008266}
8267
8268cmd VkResult vkBindImageMemory(
8269 VkDevice device,
8270 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008271 VkDeviceMemory memory,
8272 VkDeviceSize memoryOffset) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008273 deviceObject := GetDevice(device)
8274 imageObject := GetImage(image)
8275 assert(imageObject.device == device)
8276
8277 // Unbind image from previous memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008278 if imageObject.memory != NULL_HANDLE {
8279 memoryObject := GetDeviceMemory(imageObject.memory)
8280 memoryObject.boundObjects[as!u64(image)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008281 }
8282
8283 // Bind image to given memory object, if not VK_NULL_HANDLE.
Jesse Hall3fbc8562015-11-29 22:10:52 -08008284 if memory != NULL_HANDLE {
8285 memoryObject := GetDeviceMemory(memory)
8286 assert(memoryObject.device == device)
8287 memoryObject.boundObjects[as!u64(image)] = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008288 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08008289 imageObject.memory = memory
8290 imageObject.memoryOffset = memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -07008291
8292 return ?
8293}
8294
Jesse Hall606a54e2015-11-19 22:17:28 -08008295cmd void vkGetImageSparseMemoryRequirements(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008296 VkDevice device,
8297 VkImage image,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008298 u32* pSparseMemoryRequirementCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008299 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) {
8300 deviceObject := GetDevice(device)
8301 imageObject := GetImage(image)
8302 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008303}
8304
Jesse Hall606a54e2015-11-19 22:17:28 -08008305cmd void vkGetPhysicalDeviceSparseImageFormatProperties(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008306 VkPhysicalDevice physicalDevice,
8307 VkFormat format,
8308 VkImageType type,
Jesse Hall091ed9e2015-11-30 00:55:29 -08008309 VkSampleCountFlagBits samples,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008310 VkImageUsageFlags usage,
8311 VkImageTiling tiling,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008312 u32* pPropertyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008313 VkSparseImageFormatProperties* pProperties) {
8314 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008315}
8316
Jesse Halla6429252015-11-29 18:59:42 -08008317cmd VkResult vkQueueBindSparse(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008318 VkQueue queue,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008319 u32 bindInfoCount,
Jesse Halla6429252015-11-29 18:59:42 -08008320 const VkBindSparseInfo* pBindInfo,
8321 VkFence fence) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008322 queueObject := GetQueue(queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008323
8324 return ?
8325}
8326
8327
8328// Fence functions
8329
8330@threadSafety("system")
8331cmd VkResult vkCreateFence(
8332 VkDevice device,
8333 const VkFenceCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008334 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008335 VkFence* pFence) {
8336 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO)
8337 deviceObject := GetDevice(device)
8338
8339 fence := ?
8340 pFence[0] = fence
8341 State.Fences[fence] = new!FenceObject(
Jesse Halld8bade02015-11-24 10:24:18 -08008342 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT)))
Jesse Halld27f6aa2015-08-15 17:58:48 -07008343
8344 return ?
8345}
8346
8347@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008348cmd void vkDestroyFence(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008349 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008350 VkFence fence,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008351 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008352 deviceObject := GetDevice(device)
8353 fenceObject := GetFence(fence)
8354 assert(fenceObject.device == device)
8355
8356 State.Fences[fence] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008357}
8358
8359@threadSafety("system")
8360cmd VkResult vkResetFences(
8361 VkDevice device,
8362 u32 fenceCount,
8363 const VkFence* pFences) {
8364 deviceObject := GetDevice(device)
8365
8366 fences := pFences[0:fenceCount]
8367 for i in (0 .. fenceCount) {
8368 fence := fences[i]
8369 fenceObject := GetFence(fence)
8370 assert(fenceObject.device == device)
8371 fenceObject.signaled = false
8372 }
8373
8374 return ?
8375}
8376
8377@threadSafety("system")
8378cmd VkResult vkGetFenceStatus(
8379 VkDevice device,
8380 VkFence fence) {
8381 deviceObject := GetDevice(device)
8382 fenceObject := GetFence(fence)
8383 assert(fenceObject.device == device)
8384
8385 return ?
8386}
8387
8388@threadSafety("system")
8389cmd VkResult vkWaitForFences(
8390 VkDevice device,
8391 u32 fenceCount,
8392 const VkFence* pFences,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008393 VkBool32 waitAll,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008394 u64 timeout) { /// timeout in nanoseconds
8395 deviceObject := GetDevice(device)
8396
8397 fences := pFences[0:fenceCount]
8398 for i in (0 .. fenceCount) {
8399 fence := fences[i]
8400 fenceObject := GetFence(fence)
8401 assert(fenceObject.device == device)
8402 }
8403
8404 return ?
8405}
8406
8407
8408// Queue semaphore functions
8409
8410@threadSafety("system")
8411cmd VkResult vkCreateSemaphore(
8412 VkDevice device,
8413 const VkSemaphoreCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008414 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008415 VkSemaphore* pSemaphore) {
8416 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO)
8417 deviceObject := GetDevice(device)
8418
8419 semaphore := ?
8420 pSemaphore[0] = semaphore
8421 State.Semaphores[semaphore] = new!SemaphoreObject(device: device)
8422
8423 return ?
8424}
8425
8426@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008427cmd void vkDestroySemaphore(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008428 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008429 VkSemaphore semaphore,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008430 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008431 deviceObject := GetDevice(device)
8432 semaphoreObject := GetSemaphore(semaphore)
8433 assert(semaphoreObject.device == device)
8434
8435 State.Semaphores[semaphore] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008436}
8437
Jesse Halld27f6aa2015-08-15 17:58:48 -07008438
8439// Event functions
8440
8441@threadSafety("system")
8442cmd VkResult vkCreateEvent(
8443 VkDevice device,
8444 const VkEventCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008445 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008446 VkEvent* pEvent) {
8447 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO)
8448 deviceObject := GetDevice(device)
8449
8450 event := ?
8451 pEvent[0] = event
8452 State.Events[event] = new!EventObject(device: device)
8453
8454 return ?
8455}
8456
8457@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008458cmd void vkDestroyEvent(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008459 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008460 VkEvent event,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008461 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008462 deviceObject := GetDevice(device)
8463 eventObject := GetEvent(event)
8464 assert(eventObject.device == device)
8465
8466 State.Events[event] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008467}
8468
8469@threadSafety("system")
8470cmd VkResult vkGetEventStatus(
8471 VkDevice device,
8472 VkEvent event) {
8473 deviceObject := GetDevice(device)
8474 eventObject := GetEvent(event)
8475 assert(eventObject.device == device)
8476
8477 return ?
8478}
8479
8480@threadSafety("system")
8481cmd VkResult vkSetEvent(
8482 VkDevice device,
8483 VkEvent event) {
8484 deviceObject := GetDevice(device)
8485 eventObject := GetEvent(event)
8486 assert(eventObject.device == device)
8487
8488 return ?
8489}
8490
8491@threadSafety("system")
8492cmd VkResult vkResetEvent(
8493 VkDevice device,
8494 VkEvent event) {
8495 deviceObject := GetDevice(device)
8496 eventObject := GetEvent(event)
8497 assert(eventObject.device == device)
8498
8499 return ?
8500}
8501
8502
8503// Query functions
8504
8505@threadSafety("system")
8506cmd VkResult vkCreateQueryPool(
8507 VkDevice device,
8508 const VkQueryPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008509 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008510 VkQueryPool* pQueryPool) {
8511 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO)
8512 deviceObject := GetDevice(device)
8513
8514 queryPool := ?
8515 pQueryPool[0] = queryPool
8516 State.QueryPools[queryPool] = new!QueryPoolObject(device: device)
8517
8518 return ?
8519}
8520
8521@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008522cmd void vkDestroyQueryPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008523 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008524 VkQueryPool queryPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008525 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008526 deviceObject := GetDevice(device)
8527 queryPoolObject := GetQueryPool(queryPool)
8528 assert(queryPoolObject.device == device)
8529
8530 State.QueryPools[queryPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008531}
8532
8533@threadSafety("system")
8534cmd VkResult vkGetQueryPoolResults(
8535 VkDevice device,
8536 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08008537 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008538 u32 queryCount,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008539 platform.size_t dataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008540 void* pData,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008541 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008542 VkQueryResultFlags flags) {
8543 deviceObject := GetDevice(device)
8544 queryPoolObject := GetQueryPool(queryPool)
8545 assert(queryPoolObject.device == device)
8546
Jesse Halld27f6aa2015-08-15 17:58:48 -07008547 data := pData[0:dataSize]
8548
8549 return ?
8550}
8551
8552// Buffer functions
8553
8554@threadSafety("system")
8555cmd VkResult vkCreateBuffer(
8556 VkDevice device,
8557 const VkBufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008558 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008559 VkBuffer* pBuffer) {
8560 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO)
8561 deviceObject := GetDevice(device)
8562
8563 buffer := ?
8564 pBuffer[0] = buffer
8565 State.Buffers[buffer] = new!BufferObject(device: device)
8566
8567 return ?
8568}
8569
8570@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008571cmd void vkDestroyBuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008572 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008573 VkBuffer buffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008574 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008575 deviceObject := GetDevice(device)
8576 bufferObject := GetBuffer(buffer)
8577 assert(bufferObject.device == device)
8578
Jesse Hall3fbc8562015-11-29 22:10:52 -08008579 assert(bufferObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008580 State.Buffers[buffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008581}
8582
8583
8584// Buffer view functions
8585
8586@threadSafety("system")
8587cmd VkResult vkCreateBufferView(
8588 VkDevice device,
8589 const VkBufferViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008590 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008591 VkBufferView* pView) {
8592 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO)
8593 deviceObject := GetDevice(device)
8594
8595 bufferObject := GetBuffer(pCreateInfo.buffer)
8596 assert(bufferObject.device == device)
8597
8598 view := ?
8599 pView[0] = view
8600 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer)
8601
8602 return ?
8603}
8604
8605@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008606cmd void vkDestroyBufferView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008607 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008608 VkBufferView bufferView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008609 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008610 deviceObject := GetDevice(device)
8611 bufferViewObject := GetBufferView(bufferView)
8612 assert(bufferViewObject.device == device)
8613
8614 State.BufferViews[bufferView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008615}
8616
8617
8618// Image functions
8619
8620@threadSafety("system")
8621cmd VkResult vkCreateImage(
8622 VkDevice device,
8623 const VkImageCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008624 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008625 VkImage* pImage) {
8626 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO)
8627 deviceObject := GetDevice(device)
8628
8629 image := ?
8630 pImage[0] = image
8631 State.Images[image] = new!ImageObject(device: device)
8632
8633 return ?
8634}
8635
8636@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008637cmd void vkDestroyImage(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008638 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008639 VkImage image,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008640 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008641 deviceObject := GetDevice(device)
8642 imageObject := GetImage(image)
8643 assert(imageObject.device == device)
8644
Jesse Hall3fbc8562015-11-29 22:10:52 -08008645 assert(imageObject.memory == 0)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008646 State.Images[image] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008647}
8648
Jesse Hall606a54e2015-11-19 22:17:28 -08008649cmd void vkGetImageSubresourceLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008650 VkDevice device,
8651 VkImage image,
8652 const VkImageSubresource* pSubresource,
8653 VkSubresourceLayout* pLayout) {
8654 deviceObject := GetDevice(device)
8655 imageObject := GetImage(image)
8656 assert(imageObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008657}
8658
8659
8660// Image view functions
8661
8662@threadSafety("system")
8663cmd VkResult vkCreateImageView(
8664 VkDevice device,
8665 const VkImageViewCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008666 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008667 VkImageView* pView) {
8668 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO)
8669 deviceObject := GetDevice(device)
8670
8671 imageObject := GetImage(pCreateInfo.image)
8672 assert(imageObject.device == device)
8673
8674 view := ?
8675 pView[0] = view
8676 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image)
8677
8678 return ?
8679}
8680
8681@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008682cmd void vkDestroyImageView(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008683 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008684 VkImageView imageView,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008685 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008686 deviceObject := GetDevice(device)
8687 imageViewObject := GetImageView(imageView)
8688 assert(imageViewObject.device == device)
8689
8690 State.ImageViews[imageView] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008691}
8692
8693
8694// Shader functions
8695
8696cmd VkResult vkCreateShaderModule(
8697 VkDevice device,
8698 const VkShaderModuleCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008699 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008700 VkShaderModule* pShaderModule) {
8701 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO)
8702 deviceObject := GetDevice(device)
8703
8704 shaderModule := ?
8705 pShaderModule[0] = shaderModule
8706 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device)
8707
8708 return ?
8709}
8710
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008711cmd void vkDestroyShaderModule(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008712 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008713 VkShaderModule shaderModule,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008714 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008715 deviceObject := GetDevice(device)
8716 shaderModuleObject := GetShaderModule(shaderModule)
8717 assert(shaderModuleObject.device == device)
8718
8719 State.ShaderModules[shaderModule] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008720}
8721
Jesse Halld27f6aa2015-08-15 17:58:48 -07008722
8723// Pipeline functions
8724
8725cmd VkResult vkCreatePipelineCache(
8726 VkDevice device,
8727 const VkPipelineCacheCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008728 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008729 VkPipelineCache* pPipelineCache) {
8730 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO)
8731 deviceObject := GetDevice(device)
8732
8733 pipelineCache := ?
8734 pPipelineCache[0] = pipelineCache
8735 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device)
8736
8737 return ?
8738}
8739
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008740cmd void vkDestroyPipelineCache(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008741 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008742 VkPipelineCache pipelineCache,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008743 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008744 deviceObject := GetDevice(device)
8745 pipelineCacheObject := GetPipelineCache(pipelineCache)
8746 assert(pipelineCacheObject.device == device)
8747
8748 State.PipelineCaches[pipelineCache] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008749}
8750
Jesse Halld27f6aa2015-08-15 17:58:48 -07008751cmd VkResult vkGetPipelineCacheData(
8752 VkDevice device,
8753 VkPipelineCache pipelineCache,
Jesse Halla9bb62b2015-11-21 19:31:56 -08008754 platform.size_t* pDataSize,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008755 void* pData) {
8756 deviceObject := GetDevice(device)
8757 pipelineCacheObject := GetPipelineCache(pipelineCache)
8758 assert(pipelineCacheObject.device == device)
8759
8760 return ?
8761}
8762
8763cmd VkResult vkMergePipelineCaches(
8764 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008765 VkPipelineCache dstCache,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008766 u32 srcCacheCount,
8767 const VkPipelineCache* pSrcCaches) {
8768 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008769 dstCacheObject := GetPipelineCache(dstCache)
8770 assert(dstCacheObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008771
8772 srcCaches := pSrcCaches[0:srcCacheCount]
8773 for i in (0 .. srcCacheCount) {
8774 srcCache := srcCaches[i]
8775 srcCacheObject := GetPipelineCache(srcCache)
8776 assert(srcCacheObject.device == device)
8777 }
8778
8779 return ?
8780}
8781
8782cmd VkResult vkCreateGraphicsPipelines(
8783 VkDevice device,
8784 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008785 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008786 const VkGraphicsPipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008787 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008788 VkPipeline* pPipelines) {
8789 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008790 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008791 pipelineCacheObject := GetPipelineCache(pipelineCache)
8792 assert(pipelineCacheObject.device == device)
8793 }
8794
Jesse Hall03b6fe12015-11-24 12:44:21 -08008795 createInfos := pCreateInfos[0:createInfoCount]
8796 pipelines := pPipelines[0:createInfoCount]
8797 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008798 pipeline := ?
8799 pipelines[i] = pipeline
8800 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8801 }
8802
8803 return ?
8804}
8805
8806cmd VkResult vkCreateComputePipelines(
8807 VkDevice device,
8808 VkPipelineCache pipelineCache,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008809 u32 createInfoCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008810 const VkComputePipelineCreateInfo* pCreateInfos,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008811 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008812 VkPipeline* pPipelines) {
8813 deviceObject := GetDevice(device)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008814 if pipelineCache != NULL_HANDLE {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008815 pipelineCacheObject := GetPipelineCache(pipelineCache)
8816 assert(pipelineCacheObject.device == device)
8817 }
8818
Jesse Hall03b6fe12015-11-24 12:44:21 -08008819 createInfos := pCreateInfos[0:createInfoCount]
8820 pipelines := pPipelines[0:createInfoCount]
8821 for i in (0 .. createInfoCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008822 pipeline := ?
8823 pipelines[i] = pipeline
8824 State.Pipelines[pipeline] = new!PipelineObject(device: device)
8825 }
8826
8827 return ?
8828}
8829
8830@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008831cmd void vkDestroyPipeline(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008832 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008833 VkPipeline pipeline,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008834 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008835 deviceObject := GetDevice(device)
8836 pipelineObjects := GetPipeline(pipeline)
8837 assert(pipelineObjects.device == device)
8838
8839 State.Pipelines[pipeline] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008840}
8841
8842
8843// Pipeline layout functions
8844
8845@threadSafety("system")
8846cmd VkResult vkCreatePipelineLayout(
8847 VkDevice device,
8848 const VkPipelineLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008849 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008850 VkPipelineLayout* pPipelineLayout) {
8851 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO)
8852 deviceObject := GetDevice(device)
8853
8854 pipelineLayout := ?
8855 pPipelineLayout[0] = pipelineLayout
8856 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device)
8857
8858 return ?
8859}
8860
8861@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008862cmd void vkDestroyPipelineLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008863 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008864 VkPipelineLayout pipelineLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008865 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008866 deviceObject := GetDevice(device)
8867 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout)
8868 assert(pipelineLayoutObjects.device == device)
8869
8870 State.PipelineLayouts[pipelineLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008871}
8872
8873
8874// Sampler functions
8875
8876@threadSafety("system")
8877cmd VkResult vkCreateSampler(
8878 VkDevice device,
8879 const VkSamplerCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008880 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008881 VkSampler* pSampler) {
8882 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO)
8883 deviceObject := GetDevice(device)
8884
8885 sampler := ?
8886 pSampler[0] = sampler
8887 State.Samplers[sampler] = new!SamplerObject(device: device)
8888
8889 return ?
8890}
8891
8892@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008893cmd void vkDestroySampler(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008894 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008895 VkSampler sampler,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008896 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008897 deviceObject := GetDevice(device)
8898 samplerObject := GetSampler(sampler)
8899 assert(samplerObject.device == device)
8900
8901 State.Samplers[sampler] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008902}
8903
8904
8905// Descriptor set functions
8906
8907@threadSafety("system")
8908cmd VkResult vkCreateDescriptorSetLayout(
8909 VkDevice device,
8910 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008911 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008912 VkDescriptorSetLayout* pSetLayout) {
8913 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO)
8914 deviceObject := GetDevice(device)
8915
8916 setLayout := ?
8917 pSetLayout[0] = setLayout
8918 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device)
8919
8920 return ?
8921}
8922
8923@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008924cmd void vkDestroyDescriptorSetLayout(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008925 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008926 VkDescriptorSetLayout descriptorSetLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008927 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008928 deviceObject := GetDevice(device)
8929 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout)
8930 assert(descriptorSetLayoutObject.device == device)
8931
8932 State.DescriptorSetLayouts[descriptorSetLayout] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008933}
8934
8935@threadSafety("system")
8936cmd VkResult vkCreateDescriptorPool(
8937 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008938 const VkDescriptorPoolCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008939 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07008940 VkDescriptorPool* pDescriptorPool) {
8941 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO)
8942 deviceObject := GetDevice(device)
8943
8944 descriptorPool := ?
8945 pDescriptorPool[0] = descriptorPool
8946 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device)
8947
8948 return ?
8949}
8950
8951@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008952cmd void vkDestroyDescriptorPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008953 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08008954 VkDescriptorPool descriptorPool,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008955 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008956 deviceObject := GetDevice(device)
8957 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8958 assert(descriptorPoolObject.device == device)
8959
8960 State.DescriptorPools[descriptorPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07008961}
8962
8963@threadSafety("app")
8964cmd VkResult vkResetDescriptorPool(
8965 VkDevice device,
Jesse Hallfbf97b02015-11-20 14:17:03 -08008966 VkDescriptorPool descriptorPool,
8967 VkDescriptorPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008968 deviceObject := GetDevice(device)
8969 descriptorPoolObject := GetDescriptorPool(descriptorPool)
8970 assert(descriptorPoolObject.device == device)
8971
8972 return ?
8973}
8974
8975@threadSafety("app")
Jesse Hall3fbc8562015-11-29 22:10:52 -08008976cmd VkResult vkAllocateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07008977 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08008978 const VkDescriptorSetAllocateInfo* pAllocateInfo,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07008979 VkDescriptorSet* pDescriptorSets) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008980 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08008981 allocInfo := pAllocateInfo[0]
Jesse Hallfbf97b02015-11-20 14:17:03 -08008982 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool)
Jesse Halld27f6aa2015-08-15 17:58:48 -07008983
Jesse Hall03b6fe12015-11-24 12:44:21 -08008984 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount]
8985 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008986 setLayout := setLayouts[i]
8987 setLayoutObject := GetDescriptorSetLayout(setLayout)
8988 assert(setLayoutObject.device == device)
8989 }
8990
Jesse Hall03b6fe12015-11-24 12:44:21 -08008991 descriptorSets := pDescriptorSets[0:allocInfo.setCount]
8992 for i in (0 .. allocInfo.setCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07008993 descriptorSet := ?
8994 descriptorSets[i] = descriptorSet
8995 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device)
8996 }
8997
8998 return ?
8999}
9000
Jesse Hallf09c6b12015-08-15 19:54:28 -07009001cmd VkResult vkFreeDescriptorSets(
9002 VkDevice device,
9003 VkDescriptorPool descriptorPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009004 u32 descriptorSetCount,
Jesse Hallf09c6b12015-08-15 19:54:28 -07009005 const VkDescriptorSet* pDescriptorSets) {
9006 deviceObject := GetDevice(device)
9007 descriptorPoolObject := GetDescriptorPool(descriptorPool)
9008
Jesse Hall03b6fe12015-11-24 12:44:21 -08009009 descriptorSets := pDescriptorSets[0:descriptorSetCount]
9010 for i in (0 .. descriptorSetCount) {
Jesse Hallf09c6b12015-08-15 19:54:28 -07009011 descriptorSet := descriptorSets[i]
9012 descriptorSetObject := GetDescriptorSet(descriptorSet)
9013 assert(descriptorSetObject.device == device)
9014 State.DescriptorSets[descriptorSet] = null
9015 }
9016
9017 return ?
9018}
9019
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009020cmd void vkUpdateDescriptorSets(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009021 VkDevice device,
Jesse Hallb00daad2015-11-29 19:46:20 -08009022 u32 descriptorWriteCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009023 const VkWriteDescriptorSet* pDescriptorWrites,
Jesse Hallb00daad2015-11-29 19:46:20 -08009024 u32 descriptorCopyCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009025 const VkCopyDescriptorSet* pDescriptorCopies) {
9026 deviceObject := GetDevice(device)
9027
Jesse Hallb00daad2015-11-29 19:46:20 -08009028 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount]
9029 for i in (0 .. descriptorWriteCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009030 descriptorWrite := descriptorWrites[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009031 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009032 assert(descriptorWriteObject.device == device)
9033 }
9034
Jesse Hallb00daad2015-11-29 19:46:20 -08009035 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount]
9036 for i in (0 .. descriptorCopyCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009037 descriptorCopy := descriptorCopies[i]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009038 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009039 assert(descriptorCopyObject.device == device)
9040 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009041}
9042
9043
9044// Framebuffer functions
9045
9046@threadSafety("system")
9047cmd VkResult vkCreateFramebuffer(
9048 VkDevice device,
9049 const VkFramebufferCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009050 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009051 VkFramebuffer* pFramebuffer) {
9052 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO)
9053 deviceObject := GetDevice(device)
9054
9055 framebuffer := ?
9056 pFramebuffer[0] = framebuffer
9057 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device)
9058
9059 return ?
9060}
9061
9062@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009063cmd void vkDestroyFramebuffer(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009064 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009065 VkFramebuffer framebuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009066 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009067 deviceObject := GetDevice(device)
9068 framebufferObject := GetFramebuffer(framebuffer)
9069 assert(framebufferObject.device == device)
9070
9071 State.Framebuffers[framebuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009072}
9073
9074
9075// Renderpass functions
9076
9077@threadSafety("system")
9078cmd VkResult vkCreateRenderPass(
9079 VkDevice device,
9080 const VkRenderPassCreateInfo* pCreateInfo,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009081 const VkAllocationCallbacks* pAllocator,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009082 VkRenderPass* pRenderPass) {
9083 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO)
9084 deviceObject := GetDevice(device)
9085
9086 renderpass := ?
9087 pRenderPass[0] = renderpass
9088 State.RenderPasses[renderpass] = new!RenderPassObject(device: device)
9089
9090 return ?
9091}
9092
9093@threadSafety("system")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009094cmd void vkDestroyRenderPass(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009095 VkDevice device,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009096 VkRenderPass renderPass,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009097 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009098 deviceObject := GetDevice(device)
9099 renderPassObject := GetRenderPass(renderPass)
9100 assert(renderPassObject.device == device)
9101
9102 State.RenderPasses[renderPass] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009103}
9104
Jesse Hall606a54e2015-11-19 22:17:28 -08009105cmd void vkGetRenderAreaGranularity(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009106 VkDevice device,
9107 VkRenderPass renderPass,
9108 VkExtent2D* pGranularity) {
9109 deviceObject := GetDevice(device)
9110 renderPassObject := GetRenderPass(renderPass)
9111
9112 granularity := ?
9113 pGranularity[0] = granularity
Jesse Halld27f6aa2015-08-15 17:58:48 -07009114}
9115
9116// Command pool functions
9117
9118cmd VkResult vkCreateCommandPool(
9119 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009120 const VkCommandPoolCreateInfo* pCreateInfo,
9121 const VkAllocationCallbacks* pAllocator,
9122 VkCommandPool* pCommandPool) {
9123 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009124 deviceObject := GetDevice(device)
9125
Jesse Hall3fbc8562015-11-29 22:10:52 -08009126 commandPool := ?
9127 pCommandPool[0] = commandPool
9128 State.CommandPools[commandPool] = new!CommandPoolObject(device: device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009129
9130 return ?
9131}
9132
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009133cmd void vkDestroyCommandPool(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009134 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009135 VkCommandPool commandPool,
9136 const VkAllocationCallbacks* pAllocator) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009137 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009138 commandPoolObject := GetCommandPool(commandPool)
9139 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009140
Jesse Hall3fbc8562015-11-29 22:10:52 -08009141 State.CommandPools[commandPool] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009142}
9143
9144cmd VkResult vkResetCommandPool(
9145 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009146 VkCommandPool commandPool,
9147 VkCommandPoolResetFlags flags) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009148 deviceObject := GetDevice(device)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009149 commandPoolObject := GetCommandPool(commandPool)
9150 assert(commandPoolObject.device == device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009151
9152 return ?
9153}
9154
9155// Command buffer functions
9156
Jesse Hall3fbc8562015-11-29 22:10:52 -08009157macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9158 memoryObject := GetDeviceMemory(memory)
9159 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer
Jesse Halld27f6aa2015-08-15 17:58:48 -07009160
Jesse Hall3fbc8562015-11-29 22:10:52 -08009161 commandBufferObject := GetCommandBuffer(commandBuffer)
9162 commandBufferObject.boundObjects[as!u64(obj)] = memory
Jesse Halld27f6aa2015-08-15 17:58:48 -07009163}
9164
Jesse Hall3fbc8562015-11-29 22:10:52 -08009165macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) {
9166 memoryObject := GetDeviceMemory(memory)
9167 memoryObject.boundCommandBuffers[commandBuffer] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009168
Jesse Hall3fbc8562015-11-29 22:10:52 -08009169 commandBufferObject := GetCommandBuffer(commandBuffer)
9170 commandBufferObject.boundObjects[as!u64(obj)] = null
Jesse Halld27f6aa2015-08-15 17:58:48 -07009171}
9172
9173@threadSafety("system")
Jesse Hall3fbc8562015-11-29 22:10:52 -08009174cmd VkResult vkAllocateCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009175 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009176 const VkCommandBufferAllocateInfo* pAllocateInfo,
9177 VkCommandBuffer* pCommandBuffers) {
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009178 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009179
Jesse Hall3dd678a2016-01-08 21:52:01 -08009180 count := pAllocateInfo[0].commandBufferCount
Jesse Hall3fbc8562015-11-29 22:10:52 -08009181 commandBuffers := pCommandBuffers[0:count]
Jesse Hallfbf97b02015-11-20 14:17:03 -08009182 for i in (0 .. count) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009183 commandBuffer := ?
9184 commandBuffers[i] = commandBuffer
9185 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009186 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009187
9188 return ?
9189}
9190
9191@threadSafety("system")
Jesse Hallfbf97b02015-11-20 14:17:03 -08009192cmd void vkFreeCommandBuffers(
Jesse Halld27f6aa2015-08-15 17:58:48 -07009193 VkDevice device,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009194 VkCommandPool commandPool,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009195 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009196 const VkCommandBuffer* pCommandBuffers) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009197 deviceObject := GetDevice(device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009198
Jesse Hall3fbc8562015-11-29 22:10:52 -08009199 commandBuffers := pCommandBuffers[0:commandBufferCount]
Jesse Hall03b6fe12015-11-24 12:44:21 -08009200 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009201 commandBufferObject := GetCommandBuffer(commandBuffers[i])
9202 assert(commandBufferObject.device == device)
Jesse Hallfbf97b02015-11-20 14:17:03 -08009203 // TODO: iterate over boundObjects and clear memory bindings
Jesse Hall3fbc8562015-11-29 22:10:52 -08009204 State.CommandBuffers[commandBuffers[i]] = null
Jesse Hallfbf97b02015-11-20 14:17:03 -08009205 }
Jesse Halld27f6aa2015-08-15 17:58:48 -07009206}
9207
9208@threadSafety("app")
9209cmd VkResult vkBeginCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009210 VkCommandBuffer commandBuffer,
9211 const VkCommandBufferBeginInfo* pBeginInfo) {
9212 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO)
9213 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009214
9215 // TODO: iterate over boundObjects and clear memory bindings
9216
9217 return ?
9218}
9219
9220@threadSafety("app")
9221cmd VkResult vkEndCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009222 VkCommandBuffer commandBuffer) {
9223 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009224
9225 return ?
9226}
9227
9228@threadSafety("app")
9229cmd VkResult vkResetCommandBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009230 VkCommandBuffer commandBuffer,
9231 VkCommandBufferResetFlags flags) {
9232 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009233
9234 // TODO: iterate over boundObjects and clear memory bindings
9235
9236 return ?
9237}
9238
9239
9240// Command buffer building functions
9241
9242@threadSafety("app")
9243cmd void vkCmdBindPipeline(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009244 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009245 VkPipelineBindPoint pipelineBindPoint,
9246 VkPipeline pipeline) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009247 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009248 pipelineObject := GetPipeline(pipeline)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009249 assert(commandBufferObject.device == pipelineObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009250
Jesse Halld8bade02015-11-24 10:24:18 -08009251 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009252 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9253 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9254 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009255 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009256}
9257
9258@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009259cmd void vkCmdSetViewport(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009260 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009261 u32 firstViewport,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009262 u32 viewportCount,
9263 const VkViewport* pViewports) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009264 commandBufferObject := GetCommandBuffer(commandBuffer)
9265 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009266}
9267
9268@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009269cmd void vkCmdSetScissor(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009270 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009271 u32 firstScissor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009272 u32 scissorCount,
9273 const VkRect2D* pScissors) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009274 commandBufferObject := GetCommandBuffer(commandBuffer)
9275 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009276}
9277
9278@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009279cmd void vkCmdSetLineWidth(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009280 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009281 f32 lineWidth) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009282 commandBufferObject := GetCommandBuffer(commandBuffer)
9283 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009284}
9285
9286@threadSafety("app")
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009287cmd void vkCmdSetDepthBias(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009288 VkCommandBuffer commandBuffer,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009289 f32 depthBiasConstantFactor,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009290 f32 depthBiasClamp,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009291 f32 depthBiasSlopeFactor) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009292 commandBufferObject := GetCommandBuffer(commandBuffer)
9293 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009294}
Jesse Halld27f6aa2015-08-15 17:58:48 -07009295
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009296@threadSafety("app")
9297cmd void vkCmdSetBlendConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009298 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009299 // TODO(jessehall): apic only supports 'const' on pointer types. Using
9300 // an annotation as a quick hack to pass this to the template without
9301 // having to modify the AST and semantic model.
Jesse Hallb00daad2015-11-29 19:46:20 -08009302 @readonly f32[4] blendConstants) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009303 commandBufferObject := GetCommandBuffer(commandBuffer)
9304 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009305}
9306
9307@threadSafety("app")
9308cmd void vkCmdSetDepthBounds(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009309 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009310 f32 minDepthBounds,
9311 f32 maxDepthBounds) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009312 commandBufferObject := GetCommandBuffer(commandBuffer)
9313 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009314}
9315
9316@threadSafety("app")
9317cmd void vkCmdSetStencilCompareMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009318 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009319 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009320 u32 compareMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009321 commandBufferObject := GetCommandBuffer(commandBuffer)
9322 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009323}
9324
9325@threadSafety("app")
9326cmd void vkCmdSetStencilWriteMask(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009327 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009328 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009329 u32 writeMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009330 commandBufferObject := GetCommandBuffer(commandBuffer)
9331 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009332}
9333
9334@threadSafety("app")
9335cmd void vkCmdSetStencilReference(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009336 VkCommandBuffer commandBuffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009337 VkStencilFaceFlags faceMask,
Jesse Hall65ab5522015-11-30 00:07:16 -08009338 u32 reference) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009339 commandBufferObject := GetCommandBuffer(commandBuffer)
9340 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009341}
9342
9343@threadSafety("app")
9344cmd void vkCmdBindDescriptorSets(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009345 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009346 VkPipelineBindPoint pipelineBindPoint,
9347 VkPipelineLayout layout,
9348 u32 firstSet,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009349 u32 descriptorSetCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009350 const VkDescriptorSet* pDescriptorSets,
9351 u32 dynamicOffsetCount,
9352 const u32* pDynamicOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009353 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009354
Jesse Hall03b6fe12015-11-24 12:44:21 -08009355 descriptorSets := pDescriptorSets[0:descriptorSetCount]
9356 for i in (0 .. descriptorSetCount) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009357 descriptorSet := descriptorSets[i]
9358 descriptorSetObject := GetDescriptorSet(descriptorSet)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009359 assert(commandBufferObject.device == descriptorSetObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009360 }
9361
9362 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount]
9363 for i in (0 .. dynamicOffsetCount) {
9364 dynamicOffset := dynamicOffsets[i]
9365 }
9366
Jesse Halld8bade02015-11-24 10:24:18 -08009367 queue := switch (pipelineBindPoint) {
Jesse Halld27f6aa2015-08-15 17:58:48 -07009368 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT
9369 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT
9370 }
Jesse Hall3fbc8562015-11-29 22:10:52 -08009371 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009372}
9373
9374@threadSafety("app")
9375cmd void vkCmdBindIndexBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009376 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009377 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009378 VkDeviceSize offset,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009379 VkIndexType indexType) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009380 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009381 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009382 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009383
Jesse Hall3fbc8562015-11-29 22:10:52 -08009384 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009385
Jesse Hall3fbc8562015-11-29 22:10:52 -08009386 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009387}
9388
9389@threadSafety("app")
9390cmd void vkCmdBindVertexBuffers(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009391 VkCommandBuffer commandBuffer,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009392 u32 firstBinding,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009393 u32 bindingCount,
9394 const VkBuffer* pBuffers,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009395 const VkDeviceSize* pOffsets) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009396 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009397
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009398 // TODO: check if not [firstBinding:firstBinding+bindingCount]
Jesse Halld27f6aa2015-08-15 17:58:48 -07009399 buffers := pBuffers[0:bindingCount]
9400 offsets := pOffsets[0:bindingCount]
9401 for i in (0 .. bindingCount) {
9402 buffer := buffers[i]
9403 offset := offsets[i]
9404 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009405 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009406
Jesse Hall3fbc8562015-11-29 22:10:52 -08009407 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009408 }
9409
Jesse Hall3fbc8562015-11-29 22:10:52 -08009410 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009411}
9412
9413@threadSafety("app")
9414cmd void vkCmdDraw(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009415 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009416 u32 vertexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009417 u32 instanceCount,
9418 u32 firstVertex,
9419 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009420 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009421
Jesse Hall3fbc8562015-11-29 22:10:52 -08009422 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009423}
9424
9425@threadSafety("app")
9426cmd void vkCmdDrawIndexed(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009427 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009428 u32 indexCount,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009429 u32 instanceCount,
9430 u32 firstIndex,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009431 s32 vertexOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009432 u32 firstInstance) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009433 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009434
Jesse Hall3fbc8562015-11-29 22:10:52 -08009435 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009436}
9437
9438@threadSafety("app")
9439cmd void vkCmdDrawIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009440 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009441 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009442 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009443 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009444 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009445 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009446 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009447 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009448
Jesse Hall3fbc8562015-11-29 22:10:52 -08009449 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009450
Jesse Hall3fbc8562015-11-29 22:10:52 -08009451 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009452}
9453
9454@threadSafety("app")
9455cmd void vkCmdDrawIndexedIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009456 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009457 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009458 VkDeviceSize offset,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009459 u32 drawCount,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009460 u32 stride) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009461 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009462 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009463 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009464
Jesse Hall3fbc8562015-11-29 22:10:52 -08009465 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009466
Jesse Hall3fbc8562015-11-29 22:10:52 -08009467 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009468}
9469
9470@threadSafety("app")
9471cmd void vkCmdDispatch(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009472 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -08009473 u32 groupCountX,
9474 u32 groupCountY,
9475 u32 groupCountZ) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009476 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009477
Jesse Hall3fbc8562015-11-29 22:10:52 -08009478 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009479}
9480
9481@threadSafety("app")
9482cmd void vkCmdDispatchIndirect(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009483 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009484 VkBuffer buffer,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009485 VkDeviceSize offset) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009486 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009487 bufferObject := GetBuffer(buffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009488 assert(commandBufferObject.device == bufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009489
Jesse Hall3fbc8562015-11-29 22:10:52 -08009490 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009491
Jesse Hall3fbc8562015-11-29 22:10:52 -08009492 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009493}
9494
9495@threadSafety("app")
9496cmd void vkCmdCopyBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009497 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009498 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009499 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009500 u32 regionCount,
9501 const VkBufferCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009502 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009503 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009504 dstBufferObject := GetBuffer(dstBuffer)
9505 assert(commandBufferObject.device == srcBufferObject.device)
9506 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009507
9508 regions := pRegions[0:regionCount]
9509 for i in (0 .. regionCount) {
9510 region := regions[i]
9511 }
9512
Jesse Hall3fbc8562015-11-29 22:10:52 -08009513 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9514 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009515
Jesse Hall65ab5522015-11-30 00:07:16 -08009516 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009517}
9518
9519@threadSafety("app")
9520cmd void vkCmdCopyImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009521 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009522 VkImage srcImage,
9523 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009524 VkImage dstImage,
9525 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009526 u32 regionCount,
9527 const VkImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009528 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009529 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009530 dstImageObject := GetImage(dstImage)
9531 assert(commandBufferObject.device == srcImageObject.device)
9532 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009533
9534 regions := pRegions[0:regionCount]
9535 for i in (0 .. regionCount) {
9536 region := regions[i]
9537 }
9538
Jesse Hall3fbc8562015-11-29 22:10:52 -08009539 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9540 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009541
Jesse Hall65ab5522015-11-30 00:07:16 -08009542 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009543}
9544
9545@threadSafety("app")
9546cmd void vkCmdBlitImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009547 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009548 VkImage srcImage,
9549 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009550 VkImage dstImage,
9551 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009552 u32 regionCount,
9553 const VkImageBlit* pRegions,
Jesse Hall23ff73f2015-11-29 14:36:39 -08009554 VkFilter filter) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009555 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009556 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009557 dstImageObject := GetImage(dstImage)
9558 assert(commandBufferObject.device == srcImageObject.device)
9559 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009560
9561 regions := pRegions[0:regionCount]
9562 for i in (0 .. regionCount) {
9563 region := regions[i]
9564 }
9565
Jesse Hall3fbc8562015-11-29 22:10:52 -08009566 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9567 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009568
Jesse Hall3fbc8562015-11-29 22:10:52 -08009569 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009570}
9571
9572@threadSafety("app")
9573cmd void vkCmdCopyBufferToImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009574 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009575 VkBuffer srcBuffer,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009576 VkImage dstImage,
9577 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009578 u32 regionCount,
9579 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009580 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009581 srcBufferObject := GetBuffer(srcBuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009582 dstImageObject := GetImage(dstImage)
9583 assert(commandBufferObject.device == srcBufferObject.device)
9584 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009585
9586 regions := pRegions[0:regionCount]
9587 for i in (0 .. regionCount) {
9588 region := regions[i]
9589 }
9590
Jesse Hall3fbc8562015-11-29 22:10:52 -08009591 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory)
9592 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009593
Jesse Hall65ab5522015-11-30 00:07:16 -08009594 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009595}
9596
9597@threadSafety("app")
9598cmd void vkCmdCopyImageToBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009599 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009600 VkImage srcImage,
9601 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009602 VkBuffer dstBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009603 u32 regionCount,
9604 const VkBufferImageCopy* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009605 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009606 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009607 dstBufferObject := GetBuffer(dstBuffer)
9608 assert(commandBufferObject.device == srcImageObject.device)
9609 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009610
9611 regions := pRegions[0:regionCount]
9612 for i in (0 .. regionCount) {
9613 region := regions[i]
9614 }
9615
Jesse Hall3fbc8562015-11-29 22:10:52 -08009616 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9617 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009618
Jesse Hall65ab5522015-11-30 00:07:16 -08009619 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009620}
9621
9622@threadSafety("app")
9623cmd void vkCmdUpdateBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009624 VkCommandBuffer commandBuffer,
9625 VkBuffer dstBuffer,
9626 VkDeviceSize dstOffset,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009627 VkDeviceSize dataSize,
Jesse Hall56d386a2016-07-26 15:20:40 -07009628 const void* pData) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009629 commandBufferObject := GetCommandBuffer(commandBuffer)
9630 dstBufferObject := GetBuffer(dstBuffer)
9631 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009632
9633 data := pData[0:dataSize]
9634
Jesse Hall3fbc8562015-11-29 22:10:52 -08009635 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009636
Jesse Hall65ab5522015-11-30 00:07:16 -08009637 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009638}
9639
9640@threadSafety("app")
9641cmd void vkCmdFillBuffer(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009642 VkCommandBuffer commandBuffer,
9643 VkBuffer dstBuffer,
9644 VkDeviceSize dstOffset,
Jesse Hallb00daad2015-11-29 19:46:20 -08009645 VkDeviceSize size,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009646 u32 data) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009647 commandBufferObject := GetCommandBuffer(commandBuffer)
9648 dstBufferObject := GetBuffer(dstBuffer)
9649 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009650
Jesse Hall65ab5522015-11-30 00:07:16 -08009651 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009652}
9653
9654@threadSafety("app")
9655cmd void vkCmdClearColorImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009656 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009657 VkImage image,
9658 VkImageLayout imageLayout,
9659 const VkClearColorValue* pColor,
9660 u32 rangeCount,
9661 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009662 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009663 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009664 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009665
9666 ranges := pRanges[0:rangeCount]
9667 for i in (0 .. rangeCount) {
9668 range := ranges[i]
9669 }
9670
Jesse Hall3fbc8562015-11-29 22:10:52 -08009671 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009672
Jesse Hall3fbc8562015-11-29 22:10:52 -08009673 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009674}
9675
9676@threadSafety("app")
9677cmd void vkCmdClearDepthStencilImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009678 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009679 VkImage image,
9680 VkImageLayout imageLayout,
Jesse Hall5ae3abb2015-10-08 14:00:22 -07009681 const VkClearDepthStencilValue* pDepthStencil,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009682 u32 rangeCount,
9683 const VkImageSubresourceRange* pRanges) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009684 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009685 imageObject := GetImage(image)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009686 assert(commandBufferObject.device == imageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009687
9688 ranges := pRanges[0:rangeCount]
9689 for i in (0 .. rangeCount) {
9690 range := ranges[i]
9691 }
9692
Jesse Hall3fbc8562015-11-29 22:10:52 -08009693 bindCommandBuffer(commandBuffer, image, imageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009694
Jesse Hall3fbc8562015-11-29 22:10:52 -08009695 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009696}
9697
9698@threadSafety("app")
Jesse Hallae38f732015-11-19 21:32:50 -08009699cmd void vkCmdClearAttachments(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009700 VkCommandBuffer commandBuffer,
Jesse Hallae38f732015-11-19 21:32:50 -08009701 u32 attachmentCount,
9702 const VkClearAttachment* pAttachments,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009703 u32 rectCount,
Jesse Halla15a4bf2015-11-19 22:48:02 -08009704 const VkClearRect* pRects) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009705 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009706
9707 rects := pRects[0:rectCount]
9708 for i in (0 .. rectCount) {
9709 rect := rects[i]
9710 }
9711
Jesse Hall3fbc8562015-11-29 22:10:52 -08009712 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009713}
9714
9715@threadSafety("app")
9716cmd void vkCmdResolveImage(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009717 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009718 VkImage srcImage,
9719 VkImageLayout srcImageLayout,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009720 VkImage dstImage,
9721 VkImageLayout dstImageLayout,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009722 u32 regionCount,
9723 const VkImageResolve* pRegions) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009724 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009725 srcImageObject := GetImage(srcImage)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009726 dstImageObject := GetImage(dstImage)
9727 assert(commandBufferObject.device == srcImageObject.device)
9728 assert(commandBufferObject.device == dstImageObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009729
9730 regions := pRegions[0:regionCount]
9731 for i in (0 .. regionCount) {
9732 region := regions[i]
9733 }
9734
Jesse Hall3fbc8562015-11-29 22:10:52 -08009735 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory)
9736 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009737
Jesse Hall3fbc8562015-11-29 22:10:52 -08009738 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009739}
9740
9741@threadSafety("app")
9742cmd void vkCmdSetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009743 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009744 VkEvent event,
9745 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009746 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009747 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009748 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009749}
9750
9751@threadSafety("app")
9752cmd void vkCmdResetEvent(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009753 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009754 VkEvent event,
9755 VkPipelineStageFlags stageMask) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009756 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009757 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009758 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009759}
9760
9761@threadSafety("app")
9762cmd void vkCmdWaitEvents(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009763 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009764 u32 eventCount,
9765 const VkEvent* pEvents,
9766 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009767 VkPipelineStageFlags dstStageMask,
9768 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009769 const VkMemoryBarrier* pMemoryBarriers,
9770 u32 bufferMemoryBarrierCount,
9771 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9772 u32 imageMemoryBarrierCount,
9773 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009774 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009775
9776 events := pEvents[0:eventCount]
9777 for i in (0 .. eventCount) {
9778 event := events[i]
9779 eventObject := GetEvent(event)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009780 assert(commandBufferObject.device == eventObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009781 }
9782
Jesse Hall3dd678a2016-01-08 21:52:01 -08009783 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009784 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009785 memoryBarrier := memoryBarriers[i]
9786 }
9787 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9788 for i in (0 .. bufferMemoryBarrierCount) {
9789 bufferMemoryBarrier := bufferMemoryBarriers[i]
9790 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9791 assert(bufferObject.device == commandBufferObject.device)
9792 }
9793 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9794 for i in (0 .. imageMemoryBarrierCount) {
9795 imageMemoryBarrier := imageMemoryBarriers[i]
9796 imageObject := GetImage(imageMemoryBarrier.image)
9797 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009798 }
9799}
9800
9801@threadSafety("app")
9802cmd void vkCmdPipelineBarrier(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009803 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009804 VkPipelineStageFlags srcStageMask,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009805 VkPipelineStageFlags dstStageMask,
Jesse Halldc6d36c2015-11-29 19:12:15 -08009806 VkDependencyFlags dependencyFlags,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009807 u32 memoryBarrierCount,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009808 const VkMemoryBarrier* pMemoryBarriers,
9809 u32 bufferMemoryBarrierCount,
9810 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
9811 u32 imageMemoryBarrierCount,
9812 const VkImageMemoryBarrier* pImageMemoryBarriers) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009813 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009814
Jesse Hall3dd678a2016-01-08 21:52:01 -08009815 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount]
Jesse Hall3fbc8562015-11-29 22:10:52 -08009816 for i in (0 .. memoryBarrierCount) {
Jesse Hall3dd678a2016-01-08 21:52:01 -08009817 memoryBarrier := memoryBarriers[i]
9818 }
9819 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount]
9820 for i in (0 .. bufferMemoryBarrierCount) {
9821 bufferMemoryBarrier := bufferMemoryBarriers[i]
9822 bufferObject := GetBuffer(bufferMemoryBarrier.buffer)
9823 assert(bufferObject.device == commandBufferObject.device)
9824 }
9825 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount]
9826 for i in (0 .. imageMemoryBarrierCount) {
9827 imageMemoryBarrier := imageMemoryBarriers[i]
9828 imageObject := GetImage(imageMemoryBarrier.image)
9829 assert(imageObject.device == commandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009830 }
9831}
9832
9833@threadSafety("app")
9834cmd void vkCmdBeginQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009835 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009836 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009837 u32 query,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009838 VkQueryControlFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009839 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009840 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009841 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009842}
9843
9844@threadSafety("app")
9845cmd void vkCmdEndQuery(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009846 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009847 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009848 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009849 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009850 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009851 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009852}
9853
9854@threadSafety("app")
9855cmd void vkCmdResetQueryPool(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009856 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009857 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009858 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009859 u32 queryCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009860 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009861 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009862 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009863}
9864
9865@threadSafety("app")
9866cmd void vkCmdWriteTimestamp(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009867 VkCommandBuffer commandBuffer,
Jesse Hall6f39a6d2015-11-24 11:08:36 -08009868 VkPipelineStageFlagBits pipelineStage,
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009869 VkQueryPool queryPool,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009870 u32 query) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009871 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halla3a7a1d2015-11-24 11:37:23 -08009872 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009873 assert(commandBufferObject.device == queryPoolObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009874}
9875
9876@threadSafety("app")
9877cmd void vkCmdCopyQueryPoolResults(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009878 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009879 VkQueryPool queryPool,
Jesse Hallf9fa9a52016-01-08 16:08:51 -08009880 u32 firstQuery,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009881 u32 queryCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009882 VkBuffer dstBuffer,
9883 VkDeviceSize dstOffset,
Jesse Halla9bb62b2015-11-21 19:31:56 -08009884 VkDeviceSize stride,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009885 VkQueryResultFlags flags) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009886 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009887 queryPoolObject := GetQueryPool(queryPool)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009888 dstBufferObject := GetBuffer(dstBuffer)
9889 assert(commandBufferObject.device == queryPoolObject.device)
9890 assert(commandBufferObject.device == dstBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009891}
9892
9893cmd void vkCmdPushConstants(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009894 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009895 VkPipelineLayout layout,
9896 VkShaderStageFlags stageFlags,
Jesse Hall03b6fe12015-11-24 12:44:21 -08009897 u32 offset,
9898 u32 size,
Jesse Hallf4ab2b12015-11-30 16:04:55 -08009899 const void* pValues) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009900 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009901 layoutObject := GetPipelineLayout(layout)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009902 assert(commandBufferObject.device == layoutObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009903}
9904
9905@threadSafety("app")
9906cmd void vkCmdBeginRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009907 VkCommandBuffer commandBuffer,
Jesse Halld27f6aa2015-08-15 17:58:48 -07009908 const VkRenderPassBeginInfo* pRenderPassBegin,
Jesse Hall65ab5522015-11-30 00:07:16 -08009909 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009910 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009911 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass)
9912 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer)
Jesse Hall3fbc8562015-11-29 22:10:52 -08009913 assert(commandBufferObject.device == renderPassObject.device)
9914 assert(commandBufferObject.device == framebufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009915
Jesse Hall3fbc8562015-11-29 22:10:52 -08009916 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009917}
9918
9919cmd void vkCmdNextSubpass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009920 VkCommandBuffer commandBuffer,
Jesse Hall65ab5522015-11-30 00:07:16 -08009921 VkSubpassContents contents) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009922 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009923}
9924
9925@threadSafety("app")
9926cmd void vkCmdEndRenderPass(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009927 VkCommandBuffer commandBuffer) {
9928 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009929
Jesse Hall3fbc8562015-11-29 22:10:52 -08009930 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009931}
9932
9933cmd void vkCmdExecuteCommands(
Jesse Hall3fbc8562015-11-29 22:10:52 -08009934 VkCommandBuffer commandBuffer,
Jesse Hall3dd678a2016-01-08 21:52:01 -08009935 u32 commandBufferCount,
Jesse Hall3fbc8562015-11-29 22:10:52 -08009936 const VkCommandBuffer* pCommandBuffers) {
9937 commandBufferObject := GetCommandBuffer(commandBuffer)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009938
Jesse Hall3dd678a2016-01-08 21:52:01 -08009939 commandBuffers := pCommandBuffers[0:commandBufferCount]
9940 for i in (0 .. commandBufferCount) {
Jesse Hall3fbc8562015-11-29 22:10:52 -08009941 secondaryCommandBuffer := commandBuffers[i]
9942 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer)
9943 assert(commandBufferObject.device == secondaryCommandBufferObject.device)
Jesse Halld27f6aa2015-08-15 17:58:48 -07009944 }
9945}
9946
Ian Elliott28bd2c32017-10-13 09:21:12 -06009947//@vulkan1_1 functions
Daniel Koch09f7bf92017-10-05 00:26:58 -04009948
Ian Elliott28bd2c32017-10-13 09:21:12 -06009949@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009950cmd VkResult vkEnumerateInstanceVersion(
9951 u32* pApiVersion) {
9952 return ?
9953}
9954
Ian Elliott28bd2c32017-10-13 09:21:12 -06009955@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009956cmd VkResult vkBindBufferMemory2(
9957 VkDevice device,
9958 u32 bindInfoCount,
9959 const VkBindBufferMemoryInfo* pBindInfos) {
9960 return ?
9961}
9962
Ian Elliott28bd2c32017-10-13 09:21:12 -06009963@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009964cmd VkResult vkBindImageMemory2(
9965 VkDevice device,
9966 u32 bindInfoCount,
9967 const VkBindImageMemoryInfo* pBindInfos) {
9968 return ?
9969}
9970
Ian Elliott28bd2c32017-10-13 09:21:12 -06009971@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009972cmd void vkGetDeviceGroupPeerMemoryFeatures(
9973 VkDevice device,
9974 u32 heapIndex,
9975 u32 localDeviceIndex,
9976 u32 remoteDeviceIndex,
9977 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) {
9978}
9979
Ian Elliott28bd2c32017-10-13 09:21:12 -06009980@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009981cmd void vkCmdSetDeviceMask(
9982 VkCommandBuffer commandBuffer,
9983 u32 deviceMask) {
9984}
9985
Ian Elliott28bd2c32017-10-13 09:21:12 -06009986@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009987cmd void vkCmdDispatchBase(
9988 VkCommandBuffer commandBuffer,
9989 u32 baseGroupX,
9990 u32 baseGroupY,
9991 u32 baseGroupZ,
9992 u32 groupCountX,
9993 u32 groupCountY,
9994 u32 groupCountZ) {
9995}
9996
9997@threadSafety("system")
Ian Elliott28bd2c32017-10-13 09:21:12 -06009998@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -04009999cmd VkResult vkEnumeratePhysicalDeviceGroups(
10000 VkInstance instance,
10001 u32* pPhysicalDeviceGroupCount,
10002 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) {
10003 instanceObject := GetInstance(instance)
10004
10005 physicalDeviceGroupCount := as!u32(?)
10006 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
10007 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
10008
10009 for i in (0 .. physicalDeviceGroupCount) {
10010 physicalDevice := ?
10011 physicalDevices[i] = physicalDevice
10012 if !(physicalDevice in State.PhysicalDevices) {
10013 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
10014 }
10015 }
10016
10017 return ?
10018}
10019
Ian Elliott28bd2c32017-10-13 09:21:12 -060010020@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010021cmd void vkGetImageMemoryRequirements2(
10022 VkDevice device,
10023 const VkImageMemoryRequirementsInfo2* pInfo,
10024 VkMemoryRequirements2* pMemoryRequirements) {
10025}
10026
Ian Elliott28bd2c32017-10-13 09:21:12 -060010027@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010028cmd void vkGetBufferMemoryRequirements2(
10029 VkDevice device,
10030 const VkBufferMemoryRequirementsInfo2* pInfo,
10031 VkMemoryRequirements2* pMemoryRequirements) {
10032}
10033
Ian Elliott28bd2c32017-10-13 09:21:12 -060010034@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010035cmd void vkGetImageSparseMemoryRequirements2(
10036 VkDevice device,
10037 const VkImageSparseMemoryRequirementsInfo2* pInfo,
10038 u32* pSparseMemoryRequirementCount,
10039 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) {
10040}
10041
Ian Elliott28bd2c32017-10-13 09:21:12 -060010042@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010043cmd void vkGetPhysicalDeviceFeatures2(
10044 VkPhysicalDevice physicalDevice,
10045 VkPhysicalDeviceFeatures2* pFeatures) {
10046}
10047
Ian Elliott28bd2c32017-10-13 09:21:12 -060010048@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010049cmd void vkGetPhysicalDeviceProperties2(
10050 VkPhysicalDevice physicalDevice,
10051 VkPhysicalDeviceProperties2* pProperties) {
10052}
10053
Ian Elliott28bd2c32017-10-13 09:21:12 -060010054@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010055cmd void vkGetPhysicalDeviceFormatProperties2(
10056 VkPhysicalDevice physicalDevice,
10057 VkFormat format,
10058 VkFormatProperties2* pFormatProperties) {
10059}
10060
Ian Elliott28bd2c32017-10-13 09:21:12 -060010061@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010062cmd VkResult vkGetPhysicalDeviceImageFormatProperties2(
10063 VkPhysicalDevice physicalDevice,
10064 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
10065 VkImageFormatProperties2* pImageFormatProperties) {
10066 return ?
10067}
10068
Ian Elliott28bd2c32017-10-13 09:21:12 -060010069@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010070cmd void vkGetPhysicalDeviceQueueFamilyProperties2(
10071 VkPhysicalDevice physicalDevice,
10072 u32* pQueueFamilyPropertyCount,
10073 VkQueueFamilyProperties2* pQueueFamilyProperties) {
10074}
10075
Ian Elliott28bd2c32017-10-13 09:21:12 -060010076@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010077cmd void vkGetPhysicalDeviceMemoryProperties2(
10078 VkPhysicalDevice physicalDevice,
10079 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) {
10080}
10081
Ian Elliott28bd2c32017-10-13 09:21:12 -060010082@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010083cmd void vkGetPhysicalDeviceSparseImageFormatProperties2(
10084 VkPhysicalDevice physicalDevice,
10085 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
10086 u32* pPropertyCount,
10087 VkSparseImageFormatProperties2* pProperties) {
10088}
10089
Ian Elliott28bd2c32017-10-13 09:21:12 -060010090@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010091cmd void vkTrimCommandPool(
10092 VkDevice device,
10093 VkCommandPool commandPool,
10094 VkCommandPoolTrimFlags flags) {
10095}
10096
10097
Ian Elliott28bd2c32017-10-13 09:21:12 -060010098@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010099cmd void vkGetDeviceQueue2(
10100 VkDevice device,
10101 const VkDeviceQueueInfo2* pQueueInfo,
10102 VkQueue* pQueue) {
10103 deviceObject := GetDevice(device)
10104
10105 queue := ?
10106 pQueue[0] = queue
10107
10108 if !(queue in State.Queues) {
10109 State.Queues[queue] = new!QueueObject(device: device)
10110 }
10111}
10112
Ian Elliott28bd2c32017-10-13 09:21:12 -060010113@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010114cmd VkResult vkCreateSamplerYcbcrConversion(
10115 VkDevice device,
10116 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
10117 const VkAllocationCallbacks* pAllocator,
10118 VkSamplerYcbcrConversion* pYcbcrConversion) {
10119 return ?
10120}
10121
Ian Elliott28bd2c32017-10-13 09:21:12 -060010122@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010123cmd void vkDestroySamplerYcbcrConversion(
10124 VkDevice device,
10125 VkSamplerYcbcrConversion ycbcrConversion,
10126 const VkAllocationCallbacks* pAllocator) {
10127}
10128
Ian Elliott28bd2c32017-10-13 09:21:12 -060010129@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010130cmd VkResult vkCreateDescriptorUpdateTemplate(
10131 VkDevice device,
10132 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10133 const VkAllocationCallbacks* pAllocator,
10134 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) {
10135 return ?
10136}
10137
Ian Elliott28bd2c32017-10-13 09:21:12 -060010138@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010139cmd void vkDestroyDescriptorUpdateTemplate(
10140 VkDevice device,
10141 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10142 const VkAllocationCallbacks* pAllocator) {
10143}
10144
Ian Elliott28bd2c32017-10-13 09:21:12 -060010145@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010146cmd void vkUpdateDescriptorSetWithTemplate(
10147 VkDevice device,
10148 VkDescriptorSet descriptorSet,
10149 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10150 const void* pData) {
10151}
10152
Ian Elliott28bd2c32017-10-13 09:21:12 -060010153@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010154cmd void vkGetPhysicalDeviceExternalBufferProperties(
10155 VkPhysicalDevice physicalDevice,
10156 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
10157 VkExternalBufferProperties* pExternalBufferProperties) {
10158}
10159
Ian Elliott28bd2c32017-10-13 09:21:12 -060010160@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010161cmd void vkGetPhysicalDeviceExternalFenceProperties(
10162 VkPhysicalDevice physicalDevice,
10163 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
10164 VkExternalFenceProperties* pExternalFenceProperties) {
10165}
10166
Ian Elliott28bd2c32017-10-13 09:21:12 -060010167@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010168cmd void vkGetPhysicalDeviceExternalSemaphoreProperties(
10169 VkPhysicalDevice physicalDevice,
10170 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10171 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) {
10172}
10173
Ian Elliott28bd2c32017-10-13 09:21:12 -060010174@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010175cmd void vkGetDescriptorSetLayoutSupport(
10176 VkDevice device,
10177 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
10178 VkDescriptorSetLayoutSupport* pSupport) {
10179}
10180
10181
Jesse Hallad250842017-03-10 18:35:38 -080010182@extension("VK_KHR_surface") // 1
Jesse Hall1356b0d2015-11-23 17:24:58 -080010183cmd void vkDestroySurfaceKHR(
10184 VkInstance instance,
Jesse Hall0e74f002015-11-30 11:37:59 -080010185 VkSurfaceKHR surface,
10186 const VkAllocationCallbacks* pAllocator) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010187 instanceObject := GetInstance(instance)
10188 surfaceObject := GetSurface(surface)
10189 assert(surfaceObject.instance == instance)
Michael Lentine88594d72015-11-12 12:49:45 -080010190
Jesse Hall1356b0d2015-11-23 17:24:58 -080010191 State.Surfaces[surface] = null
Jesse Hall2818f932015-11-19 21:19:17 -080010192}
10193
Jesse Hallad250842017-03-10 18:35:38 -080010194@extension("VK_KHR_surface") // 1
Jesse Halla6429252015-11-29 18:59:42 -080010195cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010196 VkPhysicalDevice physicalDevice,
10197 u32 queueFamilyIndex,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010198 VkSurfaceKHR surface,
Jesse Hallb00daad2015-11-29 19:46:20 -080010199 VkBool32* pSupported) {
10200 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010201
10202 return ?
10203}
10204
Jesse Hallad250842017-03-10 18:35:38 -080010205@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010206cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
10207 VkPhysicalDevice physicalDevice,
10208 VkSurfaceKHR surface,
10209 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) {
10210 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10211
10212 surfaceCapabilities := ?
10213 pSurfaceCapabilities[0] = surfaceCapabilities
10214
10215 return ?
10216}
10217
Jesse Hallad250842017-03-10 18:35:38 -080010218@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010219cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(
10220 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010221 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010222 u32* pSurfaceFormatCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010223 VkSurfaceFormatKHR* pSurfaceFormats) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010224 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010225
10226 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010227 pSurfaceFormatCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010228 surfaceFormats := pSurfaceFormats[0:count]
10229
10230 for i in (0 .. count) {
10231 surfaceFormat := ?
10232 surfaceFormats[i] = surfaceFormat
10233 }
10234
10235 return ?
10236}
10237
Jesse Hallad250842017-03-10 18:35:38 -080010238@extension("VK_KHR_surface") // 1
Jesse Hallb00daad2015-11-29 19:46:20 -080010239cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(
10240 VkPhysicalDevice physicalDevice,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010241 VkSurfaceKHR surface,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010242 u32* pPresentModeCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010243 VkPresentModeKHR* pPresentModes) {
Jesse Hallb00daad2015-11-29 19:46:20 -080010244 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Michael Lentine88594d72015-11-12 12:49:45 -080010245
10246 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010247 pPresentModeCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010248 presentModes := pPresentModes[0:count]
10249
10250 for i in (0 .. count) {
10251 presentMode := ?
10252 presentModes[i] = presentMode
10253 }
10254
10255 return ?
10256}
10257
Jesse Hallad250842017-03-10 18:35:38 -080010258@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010259cmd VkResult vkCreateSwapchainKHR(
10260 VkDevice device,
10261 const VkSwapchainCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010262 const VkAllocationCallbacks* pAllocator,
Michael Lentine88594d72015-11-12 12:49:45 -080010263 VkSwapchainKHR* pSwapchain) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010264 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR)
Michael Lentine88594d72015-11-12 12:49:45 -080010265 deviceObject := GetDevice(device)
10266
10267 swapchain := ?
10268 pSwapchain[0] = swapchain
10269 State.Swapchains[swapchain] = new!SwapchainObject(device: device)
10270
10271 return ?
10272}
10273
Jesse Hallad250842017-03-10 18:35:38 -080010274@extension("VK_KHR_swapchain") // 2
Jesse Hall1356b0d2015-11-23 17:24:58 -080010275cmd void vkDestroySwapchainKHR(
Michael Lentine88594d72015-11-12 12:49:45 -080010276 VkDevice device,
Jesse Hall0e74f002015-11-30 11:37:59 -080010277 VkSwapchainKHR swapchain,
10278 const VkAllocationCallbacks* pAllocator) {
Michael Lentine88594d72015-11-12 12:49:45 -080010279 deviceObject := GetDevice(device)
10280 swapchainObject := GetSwapchain(swapchain)
10281 assert(swapchainObject.device == device)
10282
10283 State.Swapchains[swapchain] = null
Michael Lentine88594d72015-11-12 12:49:45 -080010284}
10285
Jesse Hallad250842017-03-10 18:35:38 -080010286@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010287cmd VkResult vkGetSwapchainImagesKHR(
10288 VkDevice device,
10289 VkSwapchainKHR swapchain,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010290 u32* pSwapchainImageCount,
Michael Lentine88594d72015-11-12 12:49:45 -080010291 VkImage* pSwapchainImages) {
10292 deviceObject := GetDevice(device)
10293
10294 count := as!u32(?)
Jesse Hall03b6fe12015-11-24 12:44:21 -080010295 pSwapchainImageCount[0] = count
Michael Lentine88594d72015-11-12 12:49:45 -080010296 swapchainImages := pSwapchainImages[0:count]
10297
10298 for i in (0 .. count) {
10299 swapchainImage := ?
10300 swapchainImages[i] = swapchainImage
Jesse Hall1356b0d2015-11-23 17:24:58 -080010301 State.Images[swapchainImage] = new!ImageObject(device: device)
Michael Lentine88594d72015-11-12 12:49:45 -080010302 }
10303
10304 return ?
10305}
10306
Jesse Hallad250842017-03-10 18:35:38 -080010307@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010308cmd VkResult vkAcquireNextImageKHR(
10309 VkDevice device,
10310 VkSwapchainKHR swapchain,
10311 u64 timeout,
10312 VkSemaphore semaphore,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010313 VkFence fence,
Michael Lentine88594d72015-11-12 12:49:45 -080010314 u32* pImageIndex) {
10315 deviceObject := GetDevice(device)
10316 swapchainObject := GetSwapchain(swapchain)
10317
10318 imageIndex := ?
10319 pImageIndex[0] = imageIndex
10320
10321 return ?
10322}
10323
Jesse Hallad250842017-03-10 18:35:38 -080010324@extension("VK_KHR_swapchain") // 2
Michael Lentine88594d72015-11-12 12:49:45 -080010325cmd VkResult vkQueuePresentKHR(
10326 VkQueue queue,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010327 const VkPresentInfoKHR* pPresentInfo) {
Michael Lentine88594d72015-11-12 12:49:45 -080010328 queueObject := GetQueue(queue)
10329
10330 presentInfo := ?
10331 pPresentInfo[0] = presentInfo
10332
10333 return ?
10334}
10335
Ian Elliott28bd2c32017-10-13 09:21:12 -060010336@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010337@extension("VK_KHR_swapchain") // 2
10338cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR(
10339 VkDevice device,
10340 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) {
10341 return ?
10342}
10343
Ian Elliott28bd2c32017-10-13 09:21:12 -060010344@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010345@extension("VK_KHR_swapchain") // 2
10346cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR(
10347 VkDevice device,
10348 VkSurfaceKHR surface,
10349 VkDeviceGroupPresentModeFlagsKHR* pModes) {
10350 return ?
10351}
10352
Ian Elliott28bd2c32017-10-13 09:21:12 -060010353@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010354@extension("VK_KHR_swapchain") // 2
10355cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR(
10356 VkPhysicalDevice physicalDevice,
10357 VkSurfaceKHR surface,
10358 u32* pRectCount,
10359 VkRect2D* pRects) {
10360 return ?
10361}
10362
Ian Elliott28bd2c32017-10-13 09:21:12 -060010363@vulkan1_1
Daniel Koch09f7bf92017-10-05 00:26:58 -040010364@extension("VK_KHR_swapchain") // 2
10365cmd VkResult vkAcquireNextImage2KHR(
10366 VkDevice device,
10367 const VkAcquireNextImageInfoKHR* pAcquireInfo,
10368 u32* pImageIndex) {
10369 return ?
10370}
10371
Jesse Hallad250842017-03-10 18:35:38 -080010372@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010373cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR(
10374 VkPhysicalDevice physicalDevice,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010375 u32* pPropertyCount,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010376 VkDisplayPropertiesKHR* pProperties) {
10377 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10378 return ?
10379}
10380
Jesse Hallad250842017-03-10 18:35:38 -080010381@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010382cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
10383 VkPhysicalDevice physicalDevice,
10384 u32* pPropertyCount,
10385 VkDisplayPlanePropertiesKHR* pProperties) {
10386 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10387 return ?
10388}
10389
Jesse Hallad250842017-03-10 18:35:38 -080010390@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010391cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR(
10392 VkPhysicalDevice physicalDevice,
Jesse Hall3dd678a2016-01-08 21:52:01 -080010393 u32 planeIndex,
Jesse Hallf4ab2b12015-11-30 16:04:55 -080010394 u32* pDisplayCount,
10395 VkDisplayKHR* pDisplays) {
Jesse Halla6429252015-11-29 18:59:42 -080010396 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10397 return ?
10398}
10399
Jesse Hallad250842017-03-10 18:35:38 -080010400@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010401cmd VkResult vkGetDisplayModePropertiesKHR(
10402 VkPhysicalDevice physicalDevice,
10403 VkDisplayKHR display,
Jesse Hall03b6fe12015-11-24 12:44:21 -080010404 u32* pPropertyCount,
10405 VkDisplayModePropertiesKHR* pProperties) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010406 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10407 return ?
10408}
10409
Jesse Hallad250842017-03-10 18:35:38 -080010410@extension("VK_KHR_display") // 3
Jesse Hall1356b0d2015-11-23 17:24:58 -080010411cmd VkResult vkCreateDisplayModeKHR(
10412 VkPhysicalDevice physicalDevice,
10413 VkDisplayKHR display,
10414 const VkDisplayModeCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010415 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010416 VkDisplayModeKHR* pMode) {
10417 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10418 return ?
10419}
10420
Jesse Hallad250842017-03-10 18:35:38 -080010421@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010422cmd VkResult vkGetDisplayPlaneCapabilitiesKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010423 VkPhysicalDevice physicalDevice,
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010424 VkDisplayModeKHR mode,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010425 u32 planeIndex,
Jesse Halla6429252015-11-29 18:59:42 -080010426 VkDisplayPlaneCapabilitiesKHR* pCapabilities) {
Jesse Hall1356b0d2015-11-23 17:24:58 -080010427 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10428 return ?
10429}
10430
Jesse Hallad250842017-03-10 18:35:38 -080010431@extension("VK_KHR_display") // 3
Jesse Halla6429252015-11-29 18:59:42 -080010432cmd VkResult vkCreateDisplayPlaneSurfaceKHR(
10433 VkInstance instance,
10434 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010435 const VkAllocationCallbacks* pAllocator,
Jesse Halla6429252015-11-29 18:59:42 -080010436 VkSurfaceKHR* pSurface) {
10437 return ?
10438}
10439
Jesse Hallad250842017-03-10 18:35:38 -080010440@extension("VK_KHR_display_swapchain") // 4
Jesse Hall9ba8bc82015-11-30 16:22:16 -080010441cmd VkResult vkCreateSharedSwapchainsKHR(
10442 VkDevice device,
10443 u32 swapchainCount,
10444 const VkSwapchainCreateInfoKHR* pCreateInfos,
10445 const VkAllocationCallbacks* pAllocator,
10446 VkSwapchainKHR* pSwapchains) {
10447 return ?
10448}
10449
Jesse Hallad250842017-03-10 18:35:38 -080010450@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010451cmd VkResult vkCreateXlibSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010452 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010453 const VkXlibSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010454 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010455 VkSurfaceKHR* pSurface) {
10456 instanceObject := GetInstance(instance)
10457 return ?
10458}
10459
Jesse Hallad250842017-03-10 18:35:38 -080010460@extension("VK_KHR_xlib_surface") // 5
Jesse Halla6429252015-11-29 18:59:42 -080010461cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR(
10462 VkPhysicalDevice physicalDevice,
10463 u32 queueFamilyIndex,
10464 platform.Display* dpy,
Jesse Hall65ab5522015-11-30 00:07:16 -080010465 platform.VisualID visualID) {
Jesse Halla6429252015-11-29 18:59:42 -080010466 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10467 return ?
10468}
10469
Jesse Hallad250842017-03-10 18:35:38 -080010470@extension("VK_KHR_xcb_surface") // 6
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010471cmd VkResult vkCreateXcbSurfaceKHR(
Jesse Hall1356b0d2015-11-23 17:24:58 -080010472 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010473 const VkXcbSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010474 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010475 VkSurfaceKHR* pSurface) {
10476 instanceObject := GetInstance(instance)
10477 return ?
10478}
10479
Jesse Hallad250842017-03-10 18:35:38 -080010480@extension("VK_KHR_xcb_surface") // 6
Jesse Halla6429252015-11-29 18:59:42 -080010481cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR(
10482 VkPhysicalDevice physicalDevice,
10483 u32 queueFamilyIndex,
10484 platform.xcb_connection_t* connection,
10485 platform.xcb_visualid_t visual_id) {
10486 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10487 return ?
10488}
10489
Jesse Hallad250842017-03-10 18:35:38 -080010490@extension("VK_KHR_wayland_surface") // 7
Jesse Hall1356b0d2015-11-23 17:24:58 -080010491cmd VkResult vkCreateWaylandSurfaceKHR(
10492 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010493 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010494 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010495 VkSurfaceKHR* pSurface) {
10496 instanceObject := GetInstance(instance)
10497 return ?
10498}
10499
Jesse Hallad250842017-03-10 18:35:38 -080010500@extension("VK_KHR_wayland_surface") // 7
Jesse Halla6429252015-11-29 18:59:42 -080010501cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR(
10502 VkPhysicalDevice physicalDevice,
10503 u32 queueFamilyIndex,
10504 platform.wl_display* display) {
10505 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
10506 return ?
10507}
10508
Jesse Hallad250842017-03-10 18:35:38 -080010509@extension("VK_KHR_android_surface") // 9
Jesse Hall1356b0d2015-11-23 17:24:58 -080010510cmd VkResult vkCreateAndroidSurfaceKHR(
10511 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010512 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010513 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010514 VkSurfaceKHR* pSurface) {
10515 instanceObject := GetInstance(instance)
10516 return ?
10517}
10518
Jesse Hallad250842017-03-10 18:35:38 -080010519@extension("VK_KHR_win32_surface") // 10
Jesse Hall1356b0d2015-11-23 17:24:58 -080010520cmd VkResult vkCreateWin32SurfaceKHR(
10521 VkInstance instance,
Jesse Hallf9fa9a52016-01-08 16:08:51 -080010522 const VkWin32SurfaceCreateInfoKHR* pCreateInfo,
Jesse Hall0e74f002015-11-30 11:37:59 -080010523 const VkAllocationCallbacks* pAllocator,
Jesse Hall1356b0d2015-11-23 17:24:58 -080010524 VkSurfaceKHR* pSurface) {
10525 instanceObject := GetInstance(instance)
10526 return ?
10527}
10528
Jesse Hallad250842017-03-10 18:35:38 -080010529@extension("VK_KHR_win32_surface") // 10
Jesse Halla6429252015-11-29 18:59:42 -080010530cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR(
10531 VkPhysicalDevice physicalDevice,
10532 u32 queueFamilyIndex) {
Jesse Halle2948d82016-02-25 04:19:32 -080010533 physicalDeviceObject := GetPhysicalDevice(physicalDevice)
Jesse Halla6429252015-11-29 18:59:42 -080010534 return ?
10535}
10536
Jesse Hallad250842017-03-10 18:35:38 -080010537@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010538@optional
Chia-I Wub262ddc2016-03-22 07:38:20 +080010539cmd VkResult vkGetSwapchainGrallocUsageANDROID(
10540 VkDevice device,
10541 VkFormat format,
10542 VkImageUsageFlags imageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010543 s32* grallocUsage) {
Chia-I Wub262ddc2016-03-22 07:38:20 +080010544 return ?
10545}
10546
Jesse Hallad250842017-03-10 18:35:38 -080010547@extension("VK_ANDROID_native_buffer") // 11
Jesse Halld1abd742017-02-09 21:45:51 -080010548@optional
Chris Forbes8e4438b2016-12-07 16:26:49 +130010549cmd VkResult vkGetSwapchainGrallocUsage2ANDROID(
10550 VkDevice device,
10551 VkFormat format,
10552 VkImageUsageFlags imageUsage,
10553 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage,
Jesse Halld1abd742017-02-09 21:45:51 -080010554 u64* grallocConsumerUsage,
10555 u64* grallocProducerUsage) {
Chris Forbes8e4438b2016-12-07 16:26:49 +130010556 return ?
10557}
10558
Jesse Hallad250842017-03-10 18:35:38 -080010559@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010560cmd VkResult vkAcquireImageANDROID(
10561 VkDevice device,
10562 VkImage image,
10563 int nativeFenceFd,
10564 VkSemaphore semaphore,
10565 VkFence fence) {
10566 return ?
10567}
10568
Jesse Hallad250842017-03-10 18:35:38 -080010569@extension("VK_ANDROID_native_buffer") // 11
Chia-I Wub262ddc2016-03-22 07:38:20 +080010570cmd VkResult vkQueueSignalReleaseImageANDROID(
10571 VkQueue queue,
10572 u32 waitSemaphoreCount,
10573 const VkSemaphore* pWaitSemaphores,
10574 VkImage image,
10575 int* pNativeFenceFd) {
10576 return ?
10577}
10578
Jesse Hallad250842017-03-10 18:35:38 -080010579@extension("VK_EXT_debug_report") // 12
10580@external type void* PFN_vkDebugReportCallbackEXT
10581@extension("VK_EXT_debug_report") // 12
10582@pfn cmd VkBool32 vkDebugReportCallbackEXT(
10583 VkDebugReportFlagsEXT flags,
10584 VkDebugReportObjectTypeEXT objectType,
10585 u64 object,
10586 platform.size_t location,
10587 s32 messageCode,
10588 const char* pLayerPrefix,
10589 const char* pMessage,
10590 void* pUserData) {
10591 return ?
10592}
10593
10594@extension("VK_EXT_debug_report") // 12
10595cmd VkResult vkCreateDebugReportCallbackEXT(
10596 VkInstance instance,
10597 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
10598 const VkAllocationCallbacks* pAllocator,
10599 VkDebugReportCallbackEXT* pCallback) {
10600 return ?
10601}
10602
10603@extension("VK_EXT_debug_report") // 12
10604cmd void vkDestroyDebugReportCallbackEXT(
10605 VkInstance instance,
10606 VkDebugReportCallbackEXT callback,
10607 const VkAllocationCallbacks* pAllocator) {
10608}
10609
10610@extension("VK_EXT_debug_report") // 12
10611cmd void vkDebugReportMessageEXT(
10612 VkInstance instance,
10613 VkDebugReportFlagsEXT flags,
10614 VkDebugReportObjectTypeEXT objectType,
10615 u64 object,
10616 platform.size_t location,
10617 s32 messageCode,
10618 const char* pLayerPrefix,
10619 const char* pMessage) {
10620}
10621
10622@extension("VK_EXT_debug_marker") // 23
10623cmd VkResult vkDebugMarkerSetObjectTagEXT(
10624 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010625 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010626 return ?
10627}
10628
10629@extension("VK_EXT_debug_marker") // 23
10630cmd VkResult vkDebugMarkerSetObjectNameEXT(
10631 VkDevice device,
Jesse Hall77726222017-09-19 14:49:27 -050010632 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010633 return ?
10634}
10635
10636@extension("VK_EXT_debug_marker") // 23
10637cmd void vkCmdDebugMarkerBeginEXT(
10638 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010639 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010640}
10641
10642@extension("VK_EXT_debug_marker") // 23
10643cmd void vkCmdDebugMarkerEndEXT(
10644 VkCommandBuffer commandBuffer) {
10645}
10646
10647@extension("VK_EXT_debug_marker") // 23
10648cmd void vkCmdDebugMarkerInsertEXT(
10649 VkCommandBuffer commandBuffer,
Jesse Hall77726222017-09-19 14:49:27 -050010650 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010651}
10652
Jesse Hallf47e8f82018-10-27 23:41:45 -070010653@extension("VK_EXT_transform_feedback") // 29
10654cmd void vkCmdBindTransformFeedbackBuffersEXT(
10655 VkCommandBuffer commandBuffer,
10656 u32 firstBinding,
10657 u32 bindingCount,
10658 const VkBuffer* pBuffers,
10659 const VkDeviceSize* pOffsets,
10660 const VkDeviceSize* pSizes) {
10661}
10662
10663@extension("VK_EXT_transform_feedback") // 29
10664cmd void vkCmdBeginTransformFeedbackEXT(
10665 VkCommandBuffer commandBuffer,
10666 u32 firstCounterBuffer,
10667 u32 counterBufferCount,
10668 const VkBuffer* pCounterBuffers,
10669 const VkDeviceSize* pCounterBufferOffsets) {
10670}
10671
10672@extension("VK_EXT_transform_feedback") // 29
10673cmd void vkCmdEndTransformFeedbackEXT(
10674 VkCommandBuffer commandBuffer,
10675 u32 firstCounterBuffer,
10676 u32 counterBufferCount,
10677 const VkBuffer* pCounterBuffers,
10678 const VkDeviceSize* pCounterBufferOffsets) {
10679}
10680
10681@extension("VK_EXT_transform_feedback") // 29
10682cmd void vkCmdBeginQueryIndexedEXT(
10683 VkCommandBuffer commandBuffer,
10684 VkQueryPool queryPool,
10685 u32 query,
10686 VkQueryControlFlags flags,
10687 u32 index) {
10688}
10689
10690@extension("VK_EXT_transform_feedback") // 29
10691cmd void vkCmdEndQueryIndexedEXT(
10692 VkCommandBuffer commandBuffer,
10693 VkQueryPool queryPool,
10694 u32 query,
10695 u32 index) {
10696}
10697
10698@extension("VK_EXT_transform_feedback") // 29
10699cmd void vkCmdDrawIndirectByteCountEXT(
10700 VkCommandBuffer commandBuffer,
10701 u32 instanceCount,
10702 u32 firstInstance,
10703 VkBuffer counterBuffer,
10704 VkDeviceSize counterBufferOffset,
10705 u32 counterOffset,
10706 u32 vertexStride) {
10707}
10708
Jesse Hallad250842017-03-10 18:35:38 -080010709@extension("VK_AMD_draw_indirect_count") // 34
10710cmd void vkCmdDrawIndirectCountAMD(
10711 VkCommandBuffer commandBuffer,
10712 VkBuffer buffer,
10713 VkDeviceSize offset,
10714 VkBuffer countBuffer,
10715 VkDeviceSize countBufferOffset,
10716 u32 maxDrawCount,
10717 u32 stride) {
10718}
10719
10720@extension("VK_AMD_draw_indirect_count") // 34
10721cmd void vkCmdDrawIndexedIndirectCountAMD(
10722 VkCommandBuffer commandBuffer,
10723 VkBuffer buffer,
10724 VkDeviceSize offset,
10725 VkBuffer countBuffer,
10726 VkDeviceSize countBufferOffset,
10727 u32 maxDrawCount,
10728 u32 stride) {
10729}
10730
Jesse Hall8c954d32018-01-17 22:06:20 -080010731@extension("VK_AMD_shader_info") // 43
10732cmd VkResult vkGetShaderInfoAMD(
10733 VkDevice device,
10734 VkPipeline pipeline,
10735 VkShaderStageFlagBits shaderStage,
10736 VkShaderInfoTypeAMD infoType,
10737 platform.size_t* pInfoSize,
10738 void* pInfo) {
10739 return ?
10740}
10741
Jesse Hallad250842017-03-10 18:35:38 -080010742@extension("VK_NV_external_memory_capabilities") // 56
10743cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
10744 VkPhysicalDevice physicalDevice,
10745 VkFormat format,
10746 VkImageType type,
10747 VkImageTiling tiling,
10748 VkImageUsageFlags usage,
10749 VkImageCreateFlags flags,
10750 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
10751 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) {
10752 return ?
10753}
10754
10755@extension("VK_NV_external_memory_win32") // 58
10756cmd VkResult vkGetMemoryWin32HandleNV(
10757 VkDevice device,
10758 VkDeviceMemory memory,
10759 VkExternalMemoryHandleTypeFlagsNV handleType,
10760 platform.HANDLE* pHandle) {
10761 return ?
10762}
10763
10764@extension("VK_KHR_get_physical_device_properties2") // 60
10765cmd void vkGetPhysicalDeviceFeatures2KHR(
10766 VkPhysicalDevice physicalDevice,
10767 VkPhysicalDeviceFeatures2KHR* pFeatures) {
10768}
10769
10770@extension("VK_KHR_get_physical_device_properties2") // 60
10771cmd void vkGetPhysicalDeviceProperties2KHR(
10772 VkPhysicalDevice physicalDevice,
10773 VkPhysicalDeviceProperties2KHR* pProperties) {
10774}
10775
10776@extension("VK_KHR_get_physical_device_properties2") // 60
10777cmd void vkGetPhysicalDeviceFormatProperties2KHR(
10778 VkPhysicalDevice physicalDevice,
10779 VkFormat format,
10780 VkFormatProperties2KHR* pFormatProperties) {
10781}
10782
10783@extension("VK_KHR_get_physical_device_properties2") // 60
10784cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR(
10785 VkPhysicalDevice physicalDevice,
10786 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo,
10787 VkImageFormatProperties2KHR* pImageFormatProperties) {
10788 return ?
10789}
10790
10791@extension("VK_KHR_get_physical_device_properties2") // 60
10792cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10793 VkPhysicalDevice physicalDevice,
10794 u32* pQueueFamilyPropertyCount,
10795 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) {
10796}
10797
10798@extension("VK_KHR_get_physical_device_properties2") // 60
10799cmd void vkGetPhysicalDeviceMemoryProperties2KHR(
10800 VkPhysicalDevice physicalDevice,
10801 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) {
10802}
10803
10804@extension("VK_KHR_get_physical_device_properties2") // 60
10805cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10806 VkPhysicalDevice physicalDevice,
10807 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo,
10808 u32* pPropertyCount,
10809 VkSparseImageFormatProperties2KHR* pProperties) {
10810}
10811
Daniel Koch09f7bf92017-10-05 00:26:58 -040010812@extension("VK_KHR_device_group") // 61
10813cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010814 VkDevice device,
10815 u32 heapIndex,
10816 u32 localDeviceIndex,
10817 u32 remoteDeviceIndex,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010818 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) {
Jesse Hallad250842017-03-10 18:35:38 -080010819}
10820
Daniel Koch09f7bf92017-10-05 00:26:58 -040010821@extension("VK_KHR_device_group") // 61
10822cmd void vkCmdSetDeviceMaskKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010823 VkCommandBuffer commandBuffer,
10824 u32 deviceMask) {
10825}
10826
Jesse Hallad250842017-03-10 18:35:38 -080010827
Daniel Koch09f7bf92017-10-05 00:26:58 -040010828@extension("VK_KHR_device_group") // 61
10829cmd void vkCmdDispatchBaseKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010830 VkCommandBuffer commandBuffer,
10831 u32 baseGroupX,
10832 u32 baseGroupY,
10833 u32 baseGroupZ,
10834 u32 groupCountX,
10835 u32 groupCountY,
10836 u32 groupCountZ) {
10837}
10838
Jesse Hallad250842017-03-10 18:35:38 -080010839@extension("VK_NN_vi_surface") // 63
10840cmd VkResult vkCreateViSurfaceNN(
10841 VkInstance instance,
10842 const VkViSurfaceCreateInfoNN* pCreateInfo,
10843 const VkAllocationCallbacks* pAllocator,
10844 VkSurfaceKHR* pSurface) {
10845 return ?
10846}
10847
10848@extension("VK_KHR_maintenance1") // 70
10849cmd void vkTrimCommandPoolKHR(
10850 VkDevice device,
10851 VkCommandPool commandPool,
10852 VkCommandPoolTrimFlagsKHR flags) {
10853}
10854
Daniel Koch09f7bf92017-10-05 00:26:58 -040010855@extension("VK_KHR_device_group_creation") // 71
10856@threadSafety("system")
10857cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010858 VkInstance instance,
10859 u32* pPhysicalDeviceGroupCount,
Daniel Koch09f7bf92017-10-05 00:26:58 -040010860 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) {
10861 instanceObject := GetInstance(instance)
10862
10863 physicalDeviceGroupCount := as!u32(?)
10864 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount
10865 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount]
10866
10867 for i in (0 .. physicalDeviceGroupCount) {
10868 physicalDevice := ?
10869 physicalDevices[i] = physicalDevice
10870 if !(physicalDevice in State.PhysicalDevices) {
10871 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance)
10872 }
10873 }
10874
Jesse Hallad250842017-03-10 18:35:38 -080010875 return ?
10876}
10877
Jesse Hall9492f992017-08-28 12:10:06 -070010878@extension("VK_KHR_external_memory_capabilities") // 72
10879cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010880 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010881 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo,
10882 VkExternalBufferPropertiesKHR* pExternalBufferProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010883}
10884
Jesse Hall9492f992017-08-28 12:10:06 -070010885@extension("VK_KHR_external_memory_win32") // 74
10886cmd VkResult vkGetMemoryWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010887 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010888 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010889 platform.HANDLE* pHandle) {
10890 return ?
10891}
10892
Jesse Hall9492f992017-08-28 12:10:06 -070010893@extension("VK_KHR_external_memory_win32") // 74
10894cmd VkResult vkGetMemoryWin32HandlePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010895 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010896 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010897 platform.HANDLE handle,
Jesse Hall9492f992017-08-28 12:10:06 -070010898 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010899 return ?
10900}
10901
Jesse Hall9492f992017-08-28 12:10:06 -070010902@extension("VK_KHR_external_memory_fd") // 75
10903cmd VkResult vkGetMemoryFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010904 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010905 const VkMemoryGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010906 s32* pFd) {
10907 return ?
10908}
10909
Jesse Hall9492f992017-08-28 12:10:06 -070010910@extension("VK_KHR_external_memory_fd") // 75
10911cmd VkResult vkGetMemoryFdPropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010912 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010913 VkExternalMemoryHandleTypeFlagBitsKHR handleType,
Jesse Hallad250842017-03-10 18:35:38 -080010914 s32 fd,
Jesse Hall9492f992017-08-28 12:10:06 -070010915 VkMemoryFdPropertiesKHR* pMemoryFdProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010916 return ?
10917}
10918
Jesse Hall9492f992017-08-28 12:10:06 -070010919@extension("VK_KHR_external_semaphore_capabilities") // 77
10920cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010921 VkPhysicalDevice physicalDevice,
Jesse Hall9492f992017-08-28 12:10:06 -070010922 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo,
10923 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) {
Jesse Hallad250842017-03-10 18:35:38 -080010924}
10925
Jesse Hall9492f992017-08-28 12:10:06 -070010926@extension("VK_KHR_external_semaphore_win32") // 79
10927cmd VkResult vkImportSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010928 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010929 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010930 return ?
10931}
10932
Jesse Hall9492f992017-08-28 12:10:06 -070010933@extension("VK_KHR_external_semaphore_win32") // 79
10934cmd VkResult vkGetSemaphoreWin32HandleKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010935 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010936 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010937 platform.HANDLE* pHandle) {
10938 return ?
10939}
10940
Jesse Hall9492f992017-08-28 12:10:06 -070010941@extension("VK_KHR_external_semaphore_fd") // 80
10942cmd VkResult vkImportSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010943 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010944 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) {
Jesse Hallad250842017-03-10 18:35:38 -080010945 return ?
10946}
10947
Jesse Hall9492f992017-08-28 12:10:06 -070010948@extension("VK_KHR_external_semaphore_fd") // 80
10949cmd VkResult vkGetSemaphoreFdKHR(
Jesse Hallad250842017-03-10 18:35:38 -080010950 VkDevice device,
Jesse Hall9492f992017-08-28 12:10:06 -070010951 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
Jesse Hallad250842017-03-10 18:35:38 -080010952 s32* pFd) {
10953 return ?
10954}
10955
10956@extension("VK_KHR_push_descriptor") // 81
10957cmd void vkCmdPushDescriptorSetKHR(
10958 VkCommandBuffer commandBuffer,
10959 VkPipelineBindPoint pipelineBindPoint,
10960 VkPipelineLayout layout,
10961 u32 set,
10962 u32 descriptorWriteCount,
10963 const VkWriteDescriptorSet* pDescriptorWrites) {
10964}
10965
Jesse Halla13a3cf2018-07-09 15:51:52 -070010966@extension("VK_EXT_conditional_rendering") // 82
10967cmd void vkCmdBeginConditionalRenderingEXT(
10968 VkCommandBuffer commandBuffer,
10969 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) {
10970}
10971
10972@extension("VK_EXT_conditional_rendering") // 82
10973cmd void vkCmdEndConditionalRenderingEXT(
10974 VkCommandBuffer commandBuffer) {
10975}
10976
Jesse Hallad250842017-03-10 18:35:38 -080010977@extension("VK_KHR_descriptor_update_template") // 86
10978cmd VkResult vkCreateDescriptorUpdateTemplateKHR(
10979 VkDevice device,
10980 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo,
10981 const VkAllocationCallbacks* pAllocator,
10982 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) {
10983 return ?
10984}
10985
10986@extension("VK_KHR_descriptor_update_template") // 86
10987cmd void vkDestroyDescriptorUpdateTemplateKHR(
10988 VkDevice device,
10989 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10990 const VkAllocationCallbacks* pAllocator) {
10991}
10992
10993@extension("VK_KHR_descriptor_update_template") // 86
10994cmd void vkUpdateDescriptorSetWithTemplateKHR(
10995 VkDevice device,
10996 VkDescriptorSet descriptorSet,
10997 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
10998 const void* pData) {
10999}
11000
11001@extension("VK_KHR_descriptor_update_template") // 86
11002cmd void vkCmdPushDescriptorSetWithTemplateKHR(
11003 VkCommandBuffer commandBuffer,
11004 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate,
11005 VkPipelineLayout layout,
11006 u32 set,
11007 const void* pData) {
11008}
11009
11010@extension("VK_NVX_device_generated_commands") // 87
11011cmd void vkCmdProcessCommandsNVX(
11012 VkCommandBuffer commandBuffer,
11013 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) {
11014}
11015
11016@extension("VK_NVX_device_generated_commands") // 87
11017cmd void vkCmdReserveSpaceForCommandsNVX(
11018 VkCommandBuffer commandBuffer,
11019 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) {
11020}
11021
11022@extension("VK_NVX_device_generated_commands") // 87
11023cmd VkResult vkCreateIndirectCommandsLayoutNVX(
11024 VkDevice device,
11025 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo,
11026 const VkAllocationCallbacks* pAllocator,
11027 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) {
11028 return ?
11029}
11030
11031@extension("VK_NVX_device_generated_commands") // 87
11032cmd void vkDestroyIndirectCommandsLayoutNVX(
11033 VkDevice device,
11034 VkIndirectCommandsLayoutNVX indirectCommandsLayout,
11035 const VkAllocationCallbacks* pAllocator) {
11036}
11037
11038@extension("VK_NVX_device_generated_commands") // 87
11039cmd VkResult vkCreateObjectTableNVX(
11040 VkDevice device,
11041 const VkObjectTableCreateInfoNVX* pCreateInfo,
11042 const VkAllocationCallbacks* pAllocator,
11043 VkObjectTableNVX* pObjectTable) {
11044 return ?
11045}
11046
11047@extension("VK_NVX_device_generated_commands") // 87
11048cmd void vkDestroyObjectTableNVX(
11049 VkDevice device,
11050 VkObjectTableNVX objectTable,
11051 const VkAllocationCallbacks* pAllocator) {
11052}
11053
11054@extension("VK_NVX_device_generated_commands") // 87
11055cmd VkResult vkRegisterObjectsNVX(
11056 VkDevice device,
11057 VkObjectTableNVX objectTable,
11058 u32 objectCount,
11059 const VkObjectTableEntryNVX* const* ppObjectTableEntries,
11060 const u32* pObjectIndices) {
11061 return ?
11062}
11063
11064@extension("VK_NVX_device_generated_commands") // 87
11065cmd VkResult vkUnregisterObjectsNVX(
11066 VkDevice device,
11067 VkObjectTableNVX objectTable,
11068 u32 objectCount,
11069 const VkObjectEntryTypeNVX* pObjectEntryTypes,
11070 const u32* pObjectIndices) {
11071 return ?
11072}
11073
11074@extension("VK_NVX_device_generated_commands") // 87
11075cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX(
11076 VkPhysicalDevice physicalDevice,
11077 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures,
11078 VkDeviceGeneratedCommandsLimitsNVX* pLimits) {
11079}
11080
11081@extension("VK_NV_clip_space_w_scaling") // 88
11082cmd void vkCmdSetViewportWScalingNV(
11083 VkCommandBuffer commandBuffer,
11084 u32 firstViewport,
11085 u32 viewportCount,
11086 const VkViewportWScalingNV* pViewportWScalings) {
11087}
11088
11089@extension("VK_EXT_direct_mode_display") // 89
11090cmd VkResult vkReleaseDisplayEXT(
11091 VkPhysicalDevice physicalDevice,
11092 VkDisplayKHR display) {
11093 return ?
11094}
11095
11096@extension("VK_EXT_acquire_xlib_display") // 90
11097cmd VkResult vkAcquireXlibDisplayEXT(
11098 VkPhysicalDevice physicalDevice,
11099 platform.Display* dpy,
11100 VkDisplayKHR display) {
11101 return ?
11102}
11103
11104@extension("VK_EXT_acquire_xlib_display") // 90
11105cmd VkResult vkGetRandROutputDisplayEXT(
11106 VkPhysicalDevice physicalDevice,
11107 platform.Display* dpy,
11108 platform.RROutput rrOutput,
11109 VkDisplayKHR* pDisplay) {
11110 return ?
11111}
11112
11113@extension("VK_EXT_display_surface_counter") // 91
11114cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT(
11115 VkPhysicalDevice physicalDevice,
11116 VkSurfaceKHR surface,
11117 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) {
11118 return ?
11119}
11120
11121@extension("VK_EXT_display_control") // 92
11122cmd VkResult vkDisplayPowerControlEXT(
11123 VkDevice device,
11124 VkDisplayKHR display,
11125 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) {
11126 return ?
11127}
11128
11129@extension("VK_EXT_display_control") // 92
11130cmd VkResult vkRegisterDeviceEventEXT(
11131 VkDevice device,
11132 const VkDeviceEventInfoEXT* pDeviceEventInfo,
11133 const VkAllocationCallbacks* pAllocator,
11134 VkFence* pFence) {
11135 return ?
11136}
11137
11138@extension("VK_EXT_display_control") // 92
11139cmd VkResult vkRegisterDisplayEventEXT(
11140 VkDevice device,
11141 VkDisplayKHR display,
11142 const VkDisplayEventInfoEXT* pDisplayEventInfo,
11143 const VkAllocationCallbacks* pAllocator,
11144 VkFence* pFence) {
11145 return ?
11146}
11147
11148@extension("VK_EXT_display_control") // 92
11149cmd VkResult vkGetSwapchainCounterEXT(
11150 VkDevice device,
11151 VkSwapchainKHR swapchain,
11152 VkSurfaceCounterFlagBitsEXT counter,
11153 u64* pCounterValue) {
11154 return ?
11155}
11156
11157@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011158cmd VkResult vkGetRefreshCycleDurationGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011159 VkDevice device,
11160 VkSwapchainKHR swapchain,
11161 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011162 deviceObject := GetDevice(device)
11163 swapchainObject := GetSwapchain(swapchain)
11164
11165 displayTimingProperties := ?
11166 pDisplayTimingProperties[0] = displayTimingProperties
11167
11168 return ?
11169}
11170
Jesse Hallad250842017-03-10 18:35:38 -080011171@extension("VK_GOOGLE_display_timing") // 93
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011172cmd VkResult vkGetPastPresentationTimingGOOGLE(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011173 VkDevice device,
11174 VkSwapchainKHR swapchain,
11175 u32* pPresentationTimingCount,
11176 VkPastPresentationTimingGOOGLE* pPresentationTimings) {
Ian Elliott4c8bb2a2016-12-29 11:07:26 -070011177 return ?
11178}
11179
Jesse Hallad250842017-03-10 18:35:38 -080011180@extension("VK_EXT_discard_rectangles") // 100
11181cmd void vkCmdSetDiscardRectangleEXT(
Jesse Hall26763382016-05-20 07:13:52 -070011182 VkCommandBuffer commandBuffer,
Jesse Hallad250842017-03-10 18:35:38 -080011183 u32 firstDiscardRectangle,
11184 u32 discardRectangleCount,
11185 const VkRect2D* pDiscardRectangles) {
Jesse Hall26763382016-05-20 07:13:52 -070011186}
11187
Jesse Hallad250842017-03-10 18:35:38 -080011188@extension("VK_EXT_hdr_metadata") // 106
Jesse Hall889cd9a2017-02-25 22:12:23 -080011189cmd void vkSetHdrMetadataEXT(
Jesse Hallfdc8ab32017-03-10 21:01:57 -080011190 VkDevice device,
11191 u32 swapchainCount,
11192 const VkSwapchainKHR* pSwapchains,
11193 const VkHdrMetadataEXT* pMetadata) {
Jesse Hall889cd9a2017-02-25 22:12:23 -080011194}
11195
Jesse Halla13a3cf2018-07-09 15:51:52 -070011196@extension("VK_KHR_create_renderpass2") // 110
11197cmd VkResult vkCreateRenderPass2KHR(
11198 VkDevice device,
11199 const VkRenderPassCreateInfo2KHR* pCreateInfo,
11200 const VkAllocationCallbacks* pAllocator,
11201 VkRenderPass* pRenderPass) {
11202 return ?
11203}
11204
11205@extension("VK_KHR_create_renderpass2") // 110
11206cmd void vkCmdBeginRenderPass2KHR(
11207 VkCommandBuffer commandBuffer,
11208 const VkRenderPassBeginInfo* pRenderPassBegin,
11209 const VkSubpassBeginInfoKHR* pSubpassBeginInfo) {
11210}
11211
11212@extension("VK_KHR_create_renderpass2") // 110
11213cmd void vkCmdNextSubpass2KHR(
11214 VkCommandBuffer commandBuffer,
11215 const VkSubpassBeginInfoKHR* pSubpassBeginInfo,
11216 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11217}
11218
11219@extension("VK_KHR_create_renderpass2") // 110
11220cmd void vkCmdEndRenderPass2KHR(
11221 VkCommandBuffer commandBuffer,
11222 const VkSubpassEndInfoKHR* pSubpassEndInfo) {
11223}
11224
Jesse Hallad250842017-03-10 18:35:38 -080011225@extension("VK_KHR_shared_presentable_image") // 112
Chris Forbes2e12cb82017-01-18 11:45:17 +130011226cmd VkResult vkGetSwapchainStatusKHR(
11227 VkDevice device,
11228 VkSwapchainKHR swapchain) {
11229 return ?
11230}
11231
Jesse Hall9492f992017-08-28 12:10:06 -070011232@extension("VK_KHR_external_fence_capabilities") // 113
11233cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR(
11234 VkPhysicalDevice physicalDevice,
11235 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo,
11236 VkExternalFencePropertiesKHR* pExternalFenceProperties) {
11237}
11238
11239@extension("VK_KHR_external_fence_win32") // 115
11240cmd VkResult vkImportFenceWin32HandleKHR(
11241 VkDevice device,
11242 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) {
11243 return ?
11244}
11245
11246@extension("VK_KHR_external_fence_win32") // 115
11247cmd VkResult vkGetFenceWin32HandleKHR(
11248 VkDevice device,
11249 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo,
11250 platform.HANDLE* pHandle) {
11251 return ?
11252}
11253
11254@extension("VK_KHR_external_fence_fd") // 116
11255cmd VkResult vkImportFenceFdKHR(
11256 VkDevice device,
11257 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) {
11258 return ?
11259}
11260
11261@extension("VK_KHR_external_fence_fd") // 116
11262cmd VkResult vkGetFenceFdKHR(
11263 VkDevice device,
11264 const VkFenceGetFdInfoKHR* pGetFdInfo,
11265 int* pFd) {
11266 return ?
11267}
11268
Jesse Hall05556b12017-05-18 17:40:25 -070011269@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011270cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR(
11271 VkPhysicalDevice physicalDevice,
11272 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11273 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) {
11274 return ?
11275}
11276
Jesse Hall05556b12017-05-18 17:40:25 -070011277@extension("VK_KHR_get_surface_capabilities2") // 120
Chris Forbese2d3ee12017-03-16 16:10:15 +130011278cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR(
11279 VkPhysicalDevice physicalDevice,
11280 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11281 u32* pSurfaceFormatCount,
11282 VkSurfaceFormat2KHR* pSurfaceFormats) {
11283 return ?
11284}
11285
Jesse Hall54f8d132018-04-18 08:16:59 -070011286@extension("VK_KHR_display_properties2") // 122
11287cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR(
11288 VkPhysicalDevice physicalDevice,
11289 u32* pPropertyCount,
11290 VkDisplayProperties2KHR* pProperties) {
11291 return ?
11292}
11293
11294@extension("VK_KHR_display_properties2") // 122
11295cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
11296 VkPhysicalDevice physicalDevice,
11297 u32* pPropertyCount,
11298 VkDisplayPlaneProperties2KHR* pProperties) {
11299 return ?
11300}
11301
11302@extension("VK_KHR_display_properties2") // 122
11303cmd VkResult vkGetDisplayModeProperties2KHR(
11304 VkPhysicalDevice physicalDevice,
11305 VkDisplayKHR display,
11306 u32* pPropertyCount,
11307 VkDisplayModeProperties2KHR* pProperties) {
11308 return ?
11309}
11310
11311@extension("VK_KHR_display_properties2") // 122
11312cmd VkResult vkGetDisplayPlaneCapabilities2KHR(
11313 VkPhysicalDevice physicalDevice,
11314 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
11315 VkDisplayPlaneCapabilities2KHR* pCapabilities) {
11316 return ?
11317}
11318
Jesse Hallad250842017-03-10 18:35:38 -080011319@extension("VK_MVK_ios_surface") // 123
11320cmd VkResult vkCreateIOSSurfaceMVK(
11321 VkInstance instance,
11322 const VkIOSSurfaceCreateInfoMVK* pCreateInfo,
11323 const VkAllocationCallbacks* pAllocator,
11324 VkSurfaceKHR* pSurface) {
11325 return ?
11326}
11327
11328@extension("VK_MVK_macos_surface") // 124
11329cmd VkResult vkCreateMacOSSurfaceMVK(
11330 VkInstance instance,
11331 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo,
11332 const VkAllocationCallbacks* pAllocator,
11333 VkSurfaceKHR* pSurface) {
11334 return ?
11335}
11336
Jesse Hall8c954d32018-01-17 22:06:20 -080011337@extension("VK_EXT_debug_utils") // 129
11338@external type void* PFN_vkDebugUtilsMessengerCallbackEXT
11339@extension("VK_EXT_debug_utils") // 129
11340@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT(
11341 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11342 VkDebugUtilsMessageTypeFlagsEXT messageType,
11343 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
11344 void* pUserData) {
11345 return ?
11346}
11347
11348@extension("VK_EXT_debug_utils") // 129
11349cmd VkResult vkSetDebugUtilsObjectNameEXT(
11350 VkDevice device,
11351 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) {
11352 return ?
11353}
Jesse Hall72e6a132018-04-06 13:00:44 -070011354
Jesse Hall8c954d32018-01-17 22:06:20 -080011355@extension("VK_EXT_debug_utils") // 129
11356cmd VkResult vkSetDebugUtilsObjectTagEXT(
11357 VkDevice device,
11358 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) {
11359 return ?
11360}
Jesse Hall72e6a132018-04-06 13:00:44 -070011361
Jesse Hall8c954d32018-01-17 22:06:20 -080011362@extension("VK_EXT_debug_utils") // 129
11363cmd void vkQueueBeginDebugUtilsLabelEXT(
11364 VkQueue queue,
11365 const VkDebugUtilsLabelEXT* pLabelInfo) {
11366}
Jesse Hall72e6a132018-04-06 13:00:44 -070011367
Jesse Hall8c954d32018-01-17 22:06:20 -080011368@extension("VK_EXT_debug_utils") // 129
11369cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) {
11370}
Jesse Hall72e6a132018-04-06 13:00:44 -070011371
Jesse Hall8c954d32018-01-17 22:06:20 -080011372@extension("VK_EXT_debug_utils") // 129
11373cmd void vkQueueInsertDebugUtilsLabelEXT(
11374 VkQueue queue,
11375 const VkDebugUtilsLabelEXT* pLabelInfo) {
11376}
Jesse Hall72e6a132018-04-06 13:00:44 -070011377
Jesse Hall8c954d32018-01-17 22:06:20 -080011378@extension("VK_EXT_debug_utils") // 129
11379cmd void vkCmdBeginDebugUtilsLabelEXT(
11380 VkCommandBuffer commandBuffer,
11381 const VkDebugUtilsLabelEXT* pLabelInfo) {
11382}
Jesse Hall72e6a132018-04-06 13:00:44 -070011383
Jesse Hall8c954d32018-01-17 22:06:20 -080011384@extension("VK_EXT_debug_utils") // 129
11385cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) {
11386}
11387
11388@extension("VK_EXT_debug_utils") // 129
11389cmd void vkCmdInsertDebugUtilsLabelEXT(
11390 VkCommandBuffer commandBuffer,
11391 const VkDebugUtilsLabelEXT* pLabelInfo) {
11392}
11393
11394@extension("VK_EXT_debug_utils") // 129
11395cmd VkResult vkCreateDebugUtilsMessengerEXT(
11396 VkInstance instance,
11397 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
11398 const VkAllocationCallbacks* pAllocator,
11399 VkDebugUtilsMessengerEXT* pMessenger) {
11400 return ?
11401}
11402
11403@extension("VK_EXT_debug_utils") // 129
11404cmd void vkDestroyDebugUtilsMessengerEXT(
11405 VkInstance instance,
11406 VkDebugUtilsMessengerEXT messenger,
11407 const VkAllocationCallbacks* pAllocator) {
11408}
11409
11410@extension("VK_EXT_debug_utils") // 129
11411cmd void vkSubmitDebugUtilsMessageEXT(
11412 VkInstance instance,
11413 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
11414 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
11415 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) {
11416}
11417
Jesse Hall36215a92018-01-18 15:04:37 -080011418@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11419@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11420cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID(
11421 VkDevice device,
11422 const platform.AHardwareBuffer* buffer,
11423 VkAndroidHardwareBufferPropertiesANDROID* pProperties) {
11424 return ?
11425}
11426
11427@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130
11428@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does
11429cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID(
11430 VkDevice device,
11431 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
11432 platform.AHardwareBuffer** pBuffer) {
11433 return ?
11434}
11435
Jesse Hall77726222017-09-19 14:49:27 -050011436@extension("VK_EXT_sample_locations") // 144
11437cmd void vkCmdSetSampleLocationsEXT(
11438 VkCommandBuffer commandBuffer,
11439 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) {
11440}
11441
11442@extension("VK_EXT_sample_locations") // 144
11443cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT(
11444 VkPhysicalDevice physicalDevice,
11445 VkSampleCountFlagBits samples,
11446 VkMultisamplePropertiesEXT* pMultisampleProperties) {
11447}
11448
Jesse Hall9492f992017-08-28 12:10:06 -070011449@extension("VK_KHR_get_memory_requirements2") // 147
11450cmd void vkGetImageMemoryRequirements2KHR(
11451 VkDevice device,
11452 const VkImageMemoryRequirementsInfo2KHR* pInfo,
11453 VkMemoryRequirements2KHR* pMemoryRequirements) {
11454}
11455
11456@extension("VK_KHR_get_memory_requirements2") // 147
11457cmd void vkGetBufferMemoryRequirements2KHR(
11458 VkDevice device,
11459 const VkBufferMemoryRequirementsInfo2KHR* pInfo,
11460 VkMemoryRequirements2KHR* pMemoryRequirements) {
11461}
11462
11463@extension("VK_KHR_get_memory_requirements2") // 147
11464cmd void vkGetImageSparseMemoryRequirements2KHR(
11465 VkDevice device,
11466 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo,
11467 u32* pSparseMemoryRequirementCount,
11468 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) {
11469}
11470
Jesse Hall076f95d2017-09-20 11:34:47 -070011471@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11472cmd VkResult vkCreateSamplerYcbcrConversionKHR(
11473 VkDevice device,
11474 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo,
11475 const VkAllocationCallbacks* pAllocator,
11476 VkSamplerYcbcrConversionKHR* pYcbcrConversion) {
11477 return ?
11478}
11479
11480@extension("VK_KHR_sampler_ycbcr_conversion") // 157
11481cmd void vkDestroySamplerYcbcrConversionKHR(
11482 VkDevice device,
11483 VkSamplerYcbcrConversionKHR ycbcrConversion,
11484 const VkAllocationCallbacks* pAllocator) {
11485}
11486
11487@extension("VK_KHR_bind_memory2") // 158
11488cmd VkResult vkBindBufferMemory2KHR(
11489 VkDevice device,
11490 u32 bindInfoCount,
11491 const VkBindBufferMemoryInfoKHR* pBindInfos) {
11492 return ?
11493}
11494
11495@extension("VK_KHR_bind_memory2") // 158
11496cmd VkResult vkBindImageMemory2KHR(
11497 VkDevice device,
11498 u32 bindInfoCount,
11499 const VkBindImageMemoryInfoKHR* pBindInfos) {
11500 return ?
11501}
11502
Jesse Hallf47e8f82018-10-27 23:41:45 -070011503@extension("VK_EXT_image_drm_format_modifier") // 159
11504cmd VkResult vkGetImageDrmFormatModifierPropertiesEXT(
11505 VkDevice device,
11506 VkImage image,
11507 VkImageDrmFormatModifierPropertiesEXT* pProperties) {
11508 return ?
11509}
11510
Jesse Hall77726222017-09-19 14:49:27 -050011511@extension("VK_EXT_validation_cache") // 161
11512cmd VkResult vkCreateValidationCacheEXT(
11513 VkDevice device,
11514 const VkValidationCacheCreateInfoEXT* pCreateInfo,
11515 const VkAllocationCallbacks* pAllocator,
11516 VkValidationCacheEXT* pValidationCache) {
11517 return ?
11518}
11519
11520@extension("VK_EXT_validation_cache") // 161
11521cmd void vkDestroyValidationCacheEXT(
11522 VkDevice device,
11523 VkValidationCacheEXT validationCache,
11524 const VkAllocationCallbacks* pAllocator) {
11525}
11526
11527@extension("VK_EXT_validation_cache") // 161
11528cmd VkResult vkMergeValidationCachesEXT(
11529 VkDevice device,
11530 VkValidationCacheEXT dstCache,
11531 u32 srcCacheCount,
11532 const VkValidationCacheEXT* pSrcCaches) {
11533 return ?
11534}
11535
11536@extension("VK_EXT_validation_cache") // 161
11537cmd VkResult vkGetValidationCacheDataEXT(
11538 VkDevice device,
11539 VkValidationCacheEXT validationCache,
11540 platform.size_t* pDataSize,
11541 void* pData) {
11542 return ?
11543}
11544
Jesse Hallb5297192018-09-22 20:52:13 +020011545@extension("VK_NV_shading_rate_image") // 165
11546cmd void vkCmdBindShadingRateImageNV(
11547 VkCommandBuffer commandBuffer,
11548 VkImageView imageView,
11549 VkImageLayout imageLayout) {
11550}
11551
11552@extension("VK_NV_shading_rate_image") // 165
11553cmd void vkCmdSetViewportShadingRatePaletteNV(
11554 VkCommandBuffer commandBuffer,
11555 u32 firstViewport,
11556 u32 viewportCount,
11557 const VkShadingRatePaletteNV* pShadingRatePalettes) {
11558}
11559
11560@extension("VK_NV_shading_rate_image") // 165
11561cmd void vkCmdSetCoarseSampleOrderNV(
11562 VkCommandBuffer commandBuffer,
11563 VkCoarseSampleOrderTypeNV sampleOrderType,
11564 u32 customSampleOrderCount,
11565 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) {
11566}
11567
Jesse Hallbeea46d2018-12-04 14:38:07 -080011568@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011569cmd VkResult vkCreateAccelerationStructureNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011570 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011571 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
Jesse Hallb5297192018-09-22 20:52:13 +020011572 const VkAllocationCallbacks* pAllocator,
Jesse Halla363a8e2018-11-05 21:18:00 -070011573 VkAccelerationStructureNV* pAccelerationStructure) {
Jesse Hallb5297192018-09-22 20:52:13 +020011574 return ?
11575}
11576
Jesse Hallbeea46d2018-12-04 14:38:07 -080011577@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011578cmd void vkDestroyAccelerationStructureNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011579 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011580 VkAccelerationStructureNV accelerationStructure,
Jesse Hallb5297192018-09-22 20:52:13 +020011581 const VkAllocationCallbacks* pAllocator) {
11582}
11583
Jesse Hallbeea46d2018-12-04 14:38:07 -080011584@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011585cmd void vkGetAccelerationStructureMemoryRequirementsNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011586 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011587 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
Jesse Hallb5297192018-09-22 20:52:13 +020011588 VkMemoryRequirements2KHR* pMemoryRequirements) {
11589}
11590
Jesse Hallbeea46d2018-12-04 14:38:07 -080011591@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011592cmd VkResult vkBindAccelerationStructureMemoryNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011593 VkDevice device,
11594 u32 bindInfoCount,
Jesse Halla363a8e2018-11-05 21:18:00 -070011595 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) {
Jesse Hallb5297192018-09-22 20:52:13 +020011596 return ?
11597}
11598
Jesse Hallbeea46d2018-12-04 14:38:07 -080011599@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011600cmd void vkCmdBuildAccelerationStructureNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011601 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011602 const VkAccelerationStructureInfoNV* pInfo,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011603 VkBuffer instanceData,
11604 VkDeviceSize instanceOffset,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011605 VkBool32 update,
Jesse Halla363a8e2018-11-05 21:18:00 -070011606 VkAccelerationStructureNV dst,
11607 VkAccelerationStructureNV src,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011608 VkBuffer scratch,
11609 VkDeviceSize scratchOffset) {
Jesse Hallb5297192018-09-22 20:52:13 +020011610}
11611
Jesse Hallbeea46d2018-12-04 14:38:07 -080011612@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011613cmd void vkCmdCopyAccelerationStructureNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011614 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011615 VkAccelerationStructureNV dst,
11616 VkAccelerationStructureNV src,
11617 VkCopyAccelerationStructureModeNV mode) {
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 void vkCmdTraceRaysNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011622 VkCommandBuffer commandBuffer,
11623 VkBuffer raygenShaderBindingTableBuffer,
11624 VkDeviceSize raygenShaderBindingOffset,
11625 VkBuffer missShaderBindingTableBuffer,
11626 VkDeviceSize missShaderBindingOffset,
11627 VkDeviceSize missShaderBindingStride,
11628 VkBuffer hitShaderBindingTableBuffer,
11629 VkDeviceSize hitShaderBindingOffset,
11630 VkDeviceSize hitShaderBindingStride,
Jesse Halla363a8e2018-11-05 21:18:00 -070011631 VkBuffer callableShaderBindingTableBuffer,
11632 VkDeviceSize callableShaderBindingOffset,
11633 VkDeviceSize callableShaderBindingStride,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011634 u32 width,
Jesse Halla363a8e2018-11-05 21:18:00 -070011635 u32 height,
11636 u32 depth) {
Jesse Hallb5297192018-09-22 20:52:13 +020011637}
11638
Jesse Hallbeea46d2018-12-04 14:38:07 -080011639@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011640cmd VkResult vkCreateRaytracingPipelinesNV(
Jesse Hallb5297192018-09-22 20:52:13 +020011641 VkDevice device,
11642 VkPipelineCache pipelineCache,
11643 u32 createInfoCount,
Jesse Halla363a8e2018-11-05 21:18:00 -070011644 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
Jesse Hallb5297192018-09-22 20:52:13 +020011645 const VkAllocationCallbacks* pAllocator,
11646 VkPipeline* pPipelines) {
11647 return ?
11648}
11649
Jesse Hallbeea46d2018-12-04 14:38:07 -080011650@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011651cmd VkResult vkGetRaytracingShaderHandlesNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011652 VkDevice device,
11653 VkPipeline pipeline,
11654 u32 firstGroup,
11655 u32 groupCount,
11656 platform.size_t dataSize,
11657 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011658 return ?
11659}
11660
Jesse Hallbeea46d2018-12-04 14:38:07 -080011661@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011662cmd VkResult vkGetAccelerationStructureHandleNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011663 VkDevice device,
Jesse Halla363a8e2018-11-05 21:18:00 -070011664 VkAccelerationStructureNV accelerationStructure,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011665 platform.size_t dataSize,
11666 void* pData) {
Jesse Hallb5297192018-09-22 20:52:13 +020011667 return ?
11668}
11669
Jesse Hallbeea46d2018-12-04 14:38:07 -080011670@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011671cmd void vkCmdWriteAccelerationStructurePropertiesNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011672 VkCommandBuffer commandBuffer,
Jesse Halla363a8e2018-11-05 21:18:00 -070011673 u32 accelerationStructureCount,
11674 const VkAccelerationStructureNV* pAccelerationStructures,
Jesse Hall2e6853c2018-10-02 14:05:37 -070011675 VkQueryType queryType,
11676 VkQueryPool queryPool,
Jesse Halla363a8e2018-11-05 21:18:00 -070011677 u32 firstQuery) {
Jesse Hallb5297192018-09-22 20:52:13 +020011678}
11679
Jesse Hallbeea46d2018-12-04 14:38:07 -080011680@extension("VK_NV_ray_tracing") // 166
Jesse Halla363a8e2018-11-05 21:18:00 -070011681cmd VkResult vkCompileDeferredNV(
Jesse Hall2e6853c2018-10-02 14:05:37 -070011682 VkDevice device,
11683 VkPipeline pipeline,
11684 u32 shader) {
Jesse Hallb5297192018-09-22 20:52:13 +020011685 return ?
11686}
11687
Daniel Koch09f7bf92017-10-05 00:26:58 -040011688@extension("VK_KHR_maintenance3") // 169
11689cmd void vkGetDescriptorSetLayoutSupportKHR(
11690 VkDevice device,
11691 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11692 VkDescriptorSetLayoutSupportKHR* pSupport) {
11693}
11694
Jesse Hall54f8d132018-04-18 08:16:59 -070011695@extension("VK_KHR_draw_indirect_count") // 170
11696cmd void vkCmdDrawIndirectCountKHR(
11697 VkCommandBuffer commandBuffer,
11698 VkBuffer buffer,
11699 VkDeviceSize offset,
11700 VkBuffer countBuffer,
11701 VkDeviceSize countBufferOffset,
11702 u32 maxDrawCount,
11703 u32 stride) {
11704}
11705
11706@extension("VK_KHR_draw_indirect_count") // 170
11707cmd void vkCmdDrawIndexedIndirectCountKHR(
11708 VkCommandBuffer commandBuffer,
11709 VkBuffer buffer,
11710 VkDeviceSize offset,
11711 VkBuffer countBuffer,
11712 VkDeviceSize countBufferOffset,
11713 u32 maxDrawCount,
11714 u32 stride) {
11715}
11716
Jesse Hall8c954d32018-01-17 22:06:20 -080011717@extension("VK_EXT_external_memory_host") // 179
11718cmd VkResult vkGetMemoryHostPointerPropertiesEXT(
11719 VkDevice device,
11720 VkExternalMemoryHandleTypeFlagBits handleType,
11721 const void* pHostPointer,
11722 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) {
11723 return ?
11724}
11725
Jesse Hall72e6a132018-04-06 13:00:44 -070011726@extension("VK_AMD_buffer_marker") // 180
11727cmd void vkCmdWriteBufferMarkerAMD(
11728 VkCommandBuffer commandBuffer,
11729 VkPipelineStageFlagBits pipelineStage,
11730 VkBuffer dstBuffer,
11731 VkDeviceSize dstOffset,
11732 u32 marker) {
11733}
11734
Jesse Hallf47e8f82018-10-27 23:41:45 -070011735@extension("VK_EXT_calibrated_timestamps") // 185
11736cmd VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
11737 VkPhysicalDevice physicalDevice,
11738 u32* pTimeDomainCount,
11739 VkTimeDomainEXT* pTimeDomains) {
11740 return ?
11741}
11742
11743@extension("VK_EXT_calibrated_timestamps") // 185
11744cmd VkResult vkGetCalibratedTimestampsEXT(
11745 VkDevice device,
11746 u32 timestampCount,
11747 const VkCalibratedTimestampInfoEXT* pTimestampInfos,
11748 u64* pTimestamps,
11749 u64* pMaxDeviation) {
11750 return ?
11751}
11752
Jesse Hallb5297192018-09-22 20:52:13 +020011753@extension("VK_NV_mesh_shader") // 203
11754cmd void vkCmdDrawMeshTasksNV(
11755 VkCommandBuffer commandBuffer,
11756 u32 taskCount,
11757 u32 firstTask) {
11758}
11759
11760@extension("VK_NV_mesh_shader") // 203
11761cmd void vkCmdDrawMeshTasksIndirectNV(
11762 VkCommandBuffer commandBuffer,
11763 VkBuffer buffer,
11764 VkDeviceSize offset,
11765 u32 drawCount,
11766 u32 stride) {
11767}
11768
11769@extension("VK_NV_mesh_shader") // 203
11770cmd void vkCmdDrawMeshTasksIndirectCountNV(
11771 VkCommandBuffer commandBuffer,
11772 VkBuffer buffer,
11773 VkDeviceSize offset,
11774 VkBuffer countBuffer,
11775 VkDeviceSize countBufferOffset,
11776 u32 maxDrawCount,
11777 u32 stride) {
11778}
11779
11780@extension("VK_NV_scissor_exclusive") // 206
11781cmd void vkCmdSetExclusiveScissorNV(
11782 VkCommandBuffer commandBuffer,
11783 u32 firstExclusiveScissor,
11784 u32 exclusiveScissorCount,
11785 const VkRect2D* pExclusiveScissors) {
11786}
11787
Jesse Hall115df0c2018-07-30 12:00:59 -070011788@extension("VK_NV_device_diagnostic_checkpoints") // 207
11789cmd void vkCmdSetCheckpointNV(
11790 VkCommandBuffer commandBuffer,
11791 const void* pCheckpointMarker) {
11792}
11793
11794@extension("VK_NV_device_diagnostic_checkpoints") // 207
11795cmd void vkGetQueueCheckpointDataNV(
11796 VkQueue queue,
11797 u32* pCheckpointDataCount,
11798 VkCheckpointDataNV* pCheckpointData) {
11799}
11800
Jesse Hall497c46f2018-10-08 12:52:48 -070011801@extension("VK_FUCHSIA_imagepipe_surface") // 215
11802cmd VkResult vkCreateImagePipeSurfaceFUCHSIA(
11803 VkInstance instance,
11804 const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo,
11805 const VkAllocationCallbacks* pAllocator,
11806 VkSurfaceKHR* pSurface) {
11807 return ?
11808}
11809
Jesse Hall115df0c2018-07-30 12:00:59 -070011810
Jesse Halld27f6aa2015-08-15 17:58:48 -070011811////////////////
11812// Validation //
11813////////////////
11814
11815extern void validate(string layerName, bool condition, string message)
11816
11817
11818/////////////////////////////
11819// Internal State Tracking //
11820/////////////////////////////
11821
11822StateObject State
11823
11824@internal class StateObject {
11825 // Dispatchable objects.
11826 map!(VkInstance, ref!InstanceObject) Instances
11827 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices
11828 map!(VkDevice, ref!DeviceObject) Devices
11829 map!(VkQueue, ref!QueueObject) Queues
Jesse Hall3fbc8562015-11-29 22:10:52 -080011830 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011831
11832 // Non-dispatchable objects.
11833 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories
11834 map!(VkBuffer, ref!BufferObject) Buffers
11835 map!(VkBufferView, ref!BufferViewObject) BufferViews
11836 map!(VkImage, ref!ImageObject) Images
11837 map!(VkImageView, ref!ImageViewObject) ImageViews
Jesse Halld27f6aa2015-08-15 17:58:48 -070011838 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules
Jesse Halld27f6aa2015-08-15 17:58:48 -070011839 map!(VkPipeline, ref!PipelineObject) Pipelines
11840 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts
11841 map!(VkSampler, ref!SamplerObject) Samplers
11842 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets
11843 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts
11844 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools
Jesse Halld27f6aa2015-08-15 17:58:48 -070011845 map!(VkFence, ref!FenceObject) Fences
11846 map!(VkSemaphore, ref!SemaphoreObject) Semaphores
11847 map!(VkEvent, ref!EventObject) Events
11848 map!(VkQueryPool, ref!QueryPoolObject) QueryPools
11849 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers
11850 map!(VkRenderPass, ref!RenderPassObject) RenderPasses
11851 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches
Jesse Hall3fbc8562015-11-29 22:10:52 -080011852 map!(VkCommandPool, ref!CommandPoolObject) CommandPools
Jesse Hall1356b0d2015-11-23 17:24:58 -080011853 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces
Michael Lentine88594d72015-11-12 12:49:45 -080011854 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains
Jesse Halld27f6aa2015-08-15 17:58:48 -070011855}
11856
11857@internal class InstanceObject {
11858}
11859
11860@internal class PhysicalDeviceObject {
11861 VkInstance instance
11862}
11863
11864@internal class DeviceObject {
11865 VkPhysicalDevice physicalDevice
11866}
11867
11868@internal class QueueObject {
11869 VkDevice device
11870 VkQueueFlags flags
11871}
11872
Jesse Hall3fbc8562015-11-29 22:10:52 -080011873@internal class CommandBufferObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011874 VkDevice device
11875 map!(u64, VkDeviceMemory) boundObjects
11876 VkQueueFlags queueFlags
11877}
11878
11879@internal class DeviceMemoryObject {
Jesse Hall3fbc8562015-11-29 22:10:52 -080011880 VkDevice device
11881 VkDeviceSize allocationSize
11882 map!(u64, VkDeviceSize) boundObjects
11883 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers
Jesse Halld27f6aa2015-08-15 17:58:48 -070011884}
11885
11886@internal class BufferObject {
11887 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011888 VkDeviceMemory memory
11889 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011890}
11891
11892@internal class BufferViewObject {
11893 VkDevice device
11894 VkBuffer buffer
11895}
11896
11897@internal class ImageObject {
11898 VkDevice device
Jesse Hall3fbc8562015-11-29 22:10:52 -080011899 VkDeviceMemory memory
11900 VkDeviceSize memoryOffset
Jesse Halld27f6aa2015-08-15 17:58:48 -070011901}
11902
11903@internal class ImageViewObject {
11904 VkDevice device
11905 VkImage image
11906}
11907
Jesse Halld27f6aa2015-08-15 17:58:48 -070011908@internal class ShaderObject {
11909 VkDevice device
11910}
11911
11912@internal class ShaderModuleObject {
11913 VkDevice device
11914}
11915
11916@internal class PipelineObject {
11917 VkDevice device
11918}
11919
11920@internal class PipelineLayoutObject {
11921 VkDevice device
11922}
11923
11924@internal class SamplerObject {
11925 VkDevice device
11926}
11927
11928@internal class DescriptorSetObject {
11929 VkDevice device
11930}
11931
11932@internal class DescriptorSetLayoutObject {
11933 VkDevice device
11934}
11935
11936@internal class DescriptorPoolObject {
11937 VkDevice device
11938}
11939
Jesse Halld27f6aa2015-08-15 17:58:48 -070011940@internal class FenceObject {
11941 VkDevice device
11942 bool signaled
11943}
11944
11945@internal class SemaphoreObject {
11946 VkDevice device
11947}
11948
11949@internal class EventObject {
11950 VkDevice device
11951}
11952
11953@internal class QueryPoolObject {
11954 VkDevice device
11955}
11956
11957@internal class FramebufferObject {
11958 VkDevice device
11959}
11960
11961@internal class RenderPassObject {
11962 VkDevice device
11963}
11964
11965@internal class PipelineCacheObject {
11966 VkDevice device
11967}
11968
Jesse Hall3fbc8562015-11-29 22:10:52 -080011969@internal class CommandPoolObject {
Jesse Halld27f6aa2015-08-15 17:58:48 -070011970 VkDevice device
11971}
11972
Jesse Hall1356b0d2015-11-23 17:24:58 -080011973@internal class SurfaceObject {
11974 VkInstance instance
11975}
11976
Michael Lentine88594d72015-11-12 12:49:45 -080011977@internal class SwapchainObject {
11978 VkDevice device
11979}
11980
Jesse Halld27f6aa2015-08-15 17:58:48 -070011981macro ref!InstanceObject GetInstance(VkInstance instance) {
11982 assert(instance in State.Instances)
11983 return State.Instances[instance]
11984}
11985
11986macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) {
11987 assert(physicalDevice in State.PhysicalDevices)
11988 return State.PhysicalDevices[physicalDevice]
11989}
11990
11991macro ref!DeviceObject GetDevice(VkDevice device) {
11992 assert(device in State.Devices)
11993 return State.Devices[device]
11994}
11995
11996macro ref!QueueObject GetQueue(VkQueue queue) {
11997 assert(queue in State.Queues)
11998 return State.Queues[queue]
11999}
12000
Jesse Hall3fbc8562015-11-29 22:10:52 -080012001macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) {
12002 assert(commandBuffer in State.CommandBuffers)
12003 return State.CommandBuffers[commandBuffer]
Jesse Halld27f6aa2015-08-15 17:58:48 -070012004}
12005
Jesse Hall3fbc8562015-11-29 22:10:52 -080012006macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) {
12007 assert(memory in State.DeviceMemories)
12008 return State.DeviceMemories[memory]
Jesse Halld27f6aa2015-08-15 17:58:48 -070012009}
12010
12011macro ref!BufferObject GetBuffer(VkBuffer buffer) {
12012 assert(buffer in State.Buffers)
12013 return State.Buffers[buffer]
12014}
12015
12016macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) {
12017 assert(bufferView in State.BufferViews)
12018 return State.BufferViews[bufferView]
12019}
12020
12021macro ref!ImageObject GetImage(VkImage image) {
12022 assert(image in State.Images)
12023 return State.Images[image]
12024}
12025
12026macro ref!ImageViewObject GetImageView(VkImageView imageView) {
12027 assert(imageView in State.ImageViews)
12028 return State.ImageViews[imageView]
12029}
12030
Jesse Halld27f6aa2015-08-15 17:58:48 -070012031macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) {
12032 assert(shaderModule in State.ShaderModules)
12033 return State.ShaderModules[shaderModule]
12034}
12035
12036macro ref!PipelineObject GetPipeline(VkPipeline pipeline) {
12037 assert(pipeline in State.Pipelines)
12038 return State.Pipelines[pipeline]
12039}
12040
12041macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) {
12042 assert(pipelineLayout in State.PipelineLayouts)
12043 return State.PipelineLayouts[pipelineLayout]
12044}
12045
12046macro ref!SamplerObject GetSampler(VkSampler sampler) {
12047 assert(sampler in State.Samplers)
12048 return State.Samplers[sampler]
12049}
12050
12051macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) {
12052 assert(descriptorSet in State.DescriptorSets)
12053 return State.DescriptorSets[descriptorSet]
12054}
12055
12056macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) {
12057 assert(descriptorSetLayout in State.DescriptorSetLayouts)
12058 return State.DescriptorSetLayouts[descriptorSetLayout]
12059}
12060
12061macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) {
12062 assert(descriptorPool in State.DescriptorPools)
12063 return State.DescriptorPools[descriptorPool]
12064}
12065
Jesse Halld27f6aa2015-08-15 17:58:48 -070012066macro ref!FenceObject GetFence(VkFence fence) {
12067 assert(fence in State.Fences)
12068 return State.Fences[fence]
12069}
12070
12071macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) {
12072 assert(semaphore in State.Semaphores)
12073 return State.Semaphores[semaphore]
12074}
12075
12076macro ref!EventObject GetEvent(VkEvent event) {
12077 assert(event in State.Events)
12078 return State.Events[event]
12079}
12080
12081macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) {
12082 assert(queryPool in State.QueryPools)
12083 return State.QueryPools[queryPool]
12084}
12085
12086macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) {
12087 assert(framebuffer in State.Framebuffers)
12088 return State.Framebuffers[framebuffer]
12089}
12090
12091macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) {
12092 assert(renderPass in State.RenderPasses)
12093 return State.RenderPasses[renderPass]
12094}
12095
12096macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) {
12097 assert(pipelineCache in State.PipelineCaches)
12098 return State.PipelineCaches[pipelineCache]
12099}
12100
Jesse Hall3fbc8562015-11-29 22:10:52 -080012101macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) {
12102 assert(commandPool in State.CommandPools)
12103 return State.CommandPools[commandPool]
Jesse Hallf09c6b12015-08-15 19:54:28 -070012104}
Michael Lentine88594d72015-11-12 12:49:45 -080012105
Jesse Hall1356b0d2015-11-23 17:24:58 -080012106macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) {
12107 assert(surface in State.Surfaces)
12108 return State.Surfaces[surface]
12109}
12110
Michael Lentine88594d72015-11-12 12:49:45 -080012111macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) {
12112 assert(swapchain in State.Swapchains)
12113 return State.Swapchains[swapchain]
12114}
Jesse Halld8bade02015-11-24 10:24:18 -080012115
12116macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) {
12117 return as!VkQueueFlags(as!u32(flags) | as!u32(bit))
12118}