1// 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) 29define VERSION_MAJOR 1 30define VERSION_MINOR 1 31define VERSION_PATCH 68 32 33// API limits 34define 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. 40@vulkan1_1 41define VK_MAX_DEVICE_GROUP_SIZE 32 42@vulkan1_1 43define VK_LUID_SIZE 8 44@vulkan1_1 45define VK_QUEUE_FAMILY_EXTERNAL -2 46@extension("VK_EXT_queue_family_foreign") 47define VK_QUEUE_FAMILY_FOREIGN_EXT -3 48 49// API keywords 50define VK_TRUE 1 51define VK_FALSE 0 52 53// API keyword, but needs special handling by some templates 54define NULL_HANDLE 0 55 56// 1 57@extension("VK_KHR_surface") define VK_KHR_SURFACE_SPEC_VERSION 25 58@extension("VK_KHR_surface") define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" 59 60// 2 61@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 62@extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" 63 64// 3 65@extension("VK_KHR_display") define VK_KHR_DISPLAY_SPEC_VERSION 21 66@extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" 67 68// 4 69@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9 70@extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" 71 72// 5 73@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6 74@extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_NAME "VK_KHR_xlib_surface" 75 76// 6 77@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_SPEC_VERSION 6 78@extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_NAME "VK_KHR_xcb_surface" 79 80// 7 81@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 82@extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_NAME "VK_KHR_wayland_surface" 83 84// 8 85@extension("VK_KHR_mir_surface") define VK_KHR_MIR_SURFACE_SPEC_VERSION 4 86@extension("VK_KHR_mir_surface") define VK_KHR_MIR_SURFACE_NAME "VK_KHR_mir_surface" 87 88// 9 89@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 90@extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_NAME "VK_KHR_android_surface" 91 92// 10 93@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 94@extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_NAME "VK_KHR_win32_surface" 95 96// 11 97@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 7 98@extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_NAME "VK_ANDROID_native_buffer" 99 100// 12 101@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 102@extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_NAME "VK_EXT_debug_report" 103 104// 13 105@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_SPEC_VERSION 1 106@extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_NAME "VK_NV_glsl_shader" 107 108// 14 109@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1 110@extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_NAME "VK_EXT_depth_range_unrestricted" 111 112// 15 113@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1 114@extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_NAME "VK_KHR_sampler_mirror_clamp_to_edge" 115 116// 16 117@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1 118@extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_NAME "VK_IMG_filter_cubic" 119 120// 19 121@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1 122@extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_NAME "VK_AMD_rasterization_order" 123 124// 21 125@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1 126@extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax" 127 128// 22 129@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1 130@extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter" 131 132// 23 133@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4 134@extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_NAME "VK_EXT_debug_marker" 135 136// 26 137@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_SPEC_VERSION 1 138@extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader" 139 140// 27 141@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1 142@extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation" 143 144// 28 145@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1 146@extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc" 147 148// 34 149@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 150@extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" 151 152// 36 153@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1 154@extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height" 155 156// 37 157@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1 158@extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float" 159 160// 38 161@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1 162@extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot" 163 164// 42 165@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 166@extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" 167 168// 43 169@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_SPEC_VERSION 1 170@extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" 171 172// 47 173@extension("VK_AMD_shader_image_load_store_lod") define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 174@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" 175 176// 54 177@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_SPEC_VERSION 1 178@extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" 179 180// 56 181@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 182@extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities" 183 184// 57 185@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1 186@extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory" 187 188// 58 189@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 190@extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" 191 192// 59 193@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1 194@extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" 195 196// 60 197@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1 198@extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" 199 200// 61 201@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3 202@extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" 203 204// 62 205@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1 206@extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" 207 208// 63 209@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_SPEC_VERSION 1 210@extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface" 211 212// 64 213@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 214@extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" 215 216// 65 217@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1 218@extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot" 219 220// 66 221@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1 222@extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" 223 224// 70 225@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_SPEC_VERSION 1 226@extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" 227 228// 71 229@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1 230@extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation" 231 232// 72 233@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 234@extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" 235 236// 73 237@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 238@extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" 239 240// 74 241@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 242@extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" 243 244// 75 245@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 246@extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" 247 248// 76 249@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 250@extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" 251 252// 77 253@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 254@extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" 255 256// 78 257@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 258@extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" 259 260// 79 261@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 262@extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" 263 264// 80 265@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 266@extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" 267 268// 81 269@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2 270@extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" 271 272// 84 273@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 274@extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" 275 276// 85 277@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 278@extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" 279 280// 86 281@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 282@extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" 283 284// 87 285@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 286@extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands" 287 288// 88 289@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 290@extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" 291 292// 89 293@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 294@extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" 295 296// 90 297@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1 298@extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display" 299 300// 91 301@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 302@extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" 303 304// 92 305@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 306@extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control" 307 308// 93 309@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 310@extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" 311 312// 95 313@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 314@extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" 315 316// 96 317@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1 318@extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough" 319 320// 97 321@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1 322@extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2" 323 324// 98 325@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 326@extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" 327 328// 99 329@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1 330@extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle" 331 332// 100 333@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1 334@extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" 335 336// 102 337@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 338@extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" 339 340// 105 341@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3 342@extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" 343 344// 106 345@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1 346@extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" 347 348// 112 349@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 350@extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" 351 352// 113 353@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 354@extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" 355 356// 114 357@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 358@extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" 359 360// 115 361@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 362@extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" 363 364// 116 365@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 366@extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" 367 368// 118 369@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 370@extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" 371 372// 120 373@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 374@extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" 375 376// 121 377@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 378@extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" 379 380// 123 381@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1 382@extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" 383 384// 124 385@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1 386@extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" 387 388// 126 389@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 390@extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" 391 392// 127 393@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 394@extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" 395 396// 128 397@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 398@extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" 399 400// 128 401@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1 402@extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" 403 404// 130 405@extension("VK_ANDROID_external_memory_android_hardware_buffer") define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 2 406@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" 407 408// 131 409@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1 410@extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" 411 412// 132 413@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1 414@extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class" 415 416// 133 417@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1 418@extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" 419 420// 137 421@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1 422@extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples" 423 424// 138 425@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1 426@extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" 427 428// 141 429@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 430@extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" 431 432// 144 433@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 434@extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" 435 436// 145 437@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1 438@extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout" 439 440// 147 441@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1 442@extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" 443 444// 148 445@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 446@extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" 447 448// 149 449@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 450@extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" 451 452// 150 453@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 454@extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" 455 456// 153 457@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 458@extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" 459 460// 154 461@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1 462@extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" 463 464// 156 465@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 466@extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" 467 468// 157 469@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1 470@extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" 471 472// 158 473@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1 474@extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2" 475 476// 161 477@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 478@extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" 479 480// 165 481@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1 482@extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" 483 484// 169 485@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1 486@extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3" 487 488// 175 489@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1 490@extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" 491 492// 179 493@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 494@extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" 495 496///////////// 497// Types // 498///////////// 499 500type u32 VkBool32 501type u32 VkFlags 502type u64 VkDeviceSize 503type u32 VkSampleMask 504 505/// Dispatchable handle types. 506@dispatchHandle type u64 VkInstance 507@dispatchHandle type u64 VkPhysicalDevice 508@dispatchHandle type u64 VkDevice 509@dispatchHandle type u64 VkQueue 510@dispatchHandle type u64 VkCommandBuffer 511 512/// Non dispatchable handle types. 513@nonDispatchHandle type u64 VkDeviceMemory 514@nonDispatchHandle type u64 VkCommandPool 515@nonDispatchHandle type u64 VkBuffer 516@nonDispatchHandle type u64 VkBufferView 517@nonDispatchHandle type u64 VkImage 518@nonDispatchHandle type u64 VkImageView 519@nonDispatchHandle type u64 VkShaderModule 520@nonDispatchHandle type u64 VkPipeline 521@nonDispatchHandle type u64 VkPipelineLayout 522@nonDispatchHandle type u64 VkSampler 523@nonDispatchHandle type u64 VkDescriptorSet 524@nonDispatchHandle type u64 VkDescriptorSetLayout 525@nonDispatchHandle type u64 VkDescriptorPool 526@nonDispatchHandle type u64 VkFence 527@nonDispatchHandle type u64 VkSemaphore 528@nonDispatchHandle type u64 VkEvent 529@nonDispatchHandle type u64 VkQueryPool 530@nonDispatchHandle type u64 VkFramebuffer 531@nonDispatchHandle type u64 VkRenderPass 532@nonDispatchHandle type u64 VkPipelineCache 533 534@vulkan1_1 535@nonDispatchHandle type u64 VkSamplerYcbcrConversion 536@nonDispatchHandle type u64 VkDescriptorUpdateTemplate 537 538// 1 539@extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR 540 541// 2 542@extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR 543 544// 3 545@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR 546@extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR 547 548// 12 549@extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT 550 551// 86 552@extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR 553 554// 87 555@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX 556@extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX 557 558// 129 559@extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT 560 561// 157 562@extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR 563 564// 161 565@extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT 566 567///////////// 568// Enums // 569///////////// 570 571enum VkImageLayout { 572 VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation) 573 VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access 574 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write 575 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write 576 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access 577 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 0x00000005, /// Optimal layout when image is used for read only shader access 578 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations 579 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 0x00000007, /// Optimal layout when image is used only as destination of transfer operations 580 VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU 581 582 //@vulkan1_1 583 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, 584 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, 585 586 //@extension("VK_KHR_swapchain") // 2 587 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, 588 589 //@extension("VK_KHR_shared_presentable_image") // 112 590 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, 591 592 //@extension("VK_KHR_maintenance2") // 118 593 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000, 594 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001, 595} 596 597enum VkAttachmentLoadOp { 598 VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000, 599 VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001, 600 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002, 601} 602 603enum VkAttachmentStoreOp { 604 VK_ATTACHMENT_STORE_OP_STORE = 0x00000000, 605 VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001, 606} 607 608enum VkImageType { 609 VK_IMAGE_TYPE_1D = 0x00000000, 610 VK_IMAGE_TYPE_2D = 0x00000001, 611 VK_IMAGE_TYPE_3D = 0x00000002, 612} 613 614enum VkImageTiling { 615 VK_IMAGE_TILING_OPTIMAL = 0x00000000, 616 VK_IMAGE_TILING_LINEAR = 0x00000001, 617} 618 619enum VkImageViewType { 620 VK_IMAGE_VIEW_TYPE_1D = 0x00000000, 621 VK_IMAGE_VIEW_TYPE_2D = 0x00000001, 622 VK_IMAGE_VIEW_TYPE_3D = 0x00000002, 623 VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003, 624 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004, 625 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005, 626 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006, 627} 628 629enum VkCommandBufferLevel { 630 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000, 631 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001, 632} 633 634enum VkComponentSwizzle { 635 VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000, 636 VK_COMPONENT_SWIZZLE_ZERO = 0x00000001, 637 VK_COMPONENT_SWIZZLE_ONE = 0x00000002, 638 VK_COMPONENT_SWIZZLE_R = 0x00000003, 639 VK_COMPONENT_SWIZZLE_G = 0x00000004, 640 VK_COMPONENT_SWIZZLE_B = 0x00000005, 641 VK_COMPONENT_SWIZZLE_A = 0x00000006, 642} 643 644enum VkDescriptorType { 645 VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000, 646 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001, 647 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002, 648 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003, 649 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004, 650 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005, 651 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006, 652 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007, 653 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008, 654 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009, 655 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a, 656} 657 658enum VkQueryType { 659 VK_QUERY_TYPE_OCCLUSION = 0x00000000, 660 VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional 661 VK_QUERY_TYPE_TIMESTAMP = 0x00000002, 662} 663 664enum VkBorderColor { 665 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000, 666 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001, 667 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002, 668 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003, 669 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004, 670 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005, 671} 672 673enum VkPipelineBindPoint { 674 VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000, 675 VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001, 676} 677 678enum VkPrimitiveTopology { 679 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000, 680 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001, 681 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002, 682 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003, 683 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004, 684 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005, 685 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006, 686 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007, 687 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008, 688 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009, 689 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a, 690} 691 692enum VkSharingMode { 693 VK_SHARING_MODE_EXCLUSIVE = 0x00000000, 694 VK_SHARING_MODE_CONCURRENT = 0x00000001, 695} 696 697enum VkIndexType { 698 VK_INDEX_TYPE_UINT16 = 0x00000000, 699 VK_INDEX_TYPE_UINT32 = 0x00000001, 700} 701 702enum VkFilter { 703 VK_FILTER_NEAREST = 0x00000000, 704 VK_FILTER_LINEAR = 0x00000001, 705 706 //@extension("VK_IMG_filter_cubic") // 16 707 VK_FILTER_CUBIC_IMG = 1000015000, 708} 709 710enum VkSamplerMipmapMode { 711 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level 712 VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels 713} 714 715enum VkSamplerAddressMode { 716 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000, 717 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001, 718 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002, 719 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003, 720 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004, 721} 722 723enum VkCompareOp { 724 VK_COMPARE_OP_NEVER = 0x00000000, 725 VK_COMPARE_OP_LESS = 0x00000001, 726 VK_COMPARE_OP_EQUAL = 0x00000002, 727 VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003, 728 VK_COMPARE_OP_GREATER = 0x00000004, 729 VK_COMPARE_OP_NOT_EQUAL = 0x00000005, 730 VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006, 731 VK_COMPARE_OP_ALWAYS = 0x00000007, 732} 733 734enum VkPolygonMode { 735 VK_POLYGON_MODE_FILL = 0x00000000, 736 VK_POLYGON_MODE_LINE = 0x00000001, 737 VK_POLYGON_MODE_POINT = 0x00000002, 738 739 //@extension("VK_NV_fill_rectangle") // 154 740 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, 741} 742 743enum VkFrontFace { 744 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000, 745 VK_FRONT_FACE_CLOCKWISE = 0x00000001, 746} 747 748enum VkBlendFactor { 749 VK_BLEND_FACTOR_ZERO = 0x00000000, 750 VK_BLEND_FACTOR_ONE = 0x00000001, 751 VK_BLEND_FACTOR_SRC_COLOR = 0x00000002, 752 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003, 753 VK_BLEND_FACTOR_DST_COLOR = 0x00000004, 754 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005, 755 VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006, 756 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007, 757 VK_BLEND_FACTOR_DST_ALPHA = 0x00000008, 758 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009, 759 VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a, 760 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b, 761 VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c, 762 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d, 763 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e, 764 VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f, 765 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010, 766 VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011, 767 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012, 768} 769 770enum VkBlendOp { 771 VK_BLEND_OP_ADD = 0x00000000, 772 VK_BLEND_OP_SUBTRACT = 0x00000001, 773 VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002, 774 VK_BLEND_OP_MIN = 0x00000003, 775 VK_BLEND_OP_MAX = 0x00000004, 776 777 //@extension("VK_EXT_blend_operation_advanced") // 149 778 VK_BLEND_OP_ZERO_EXT = 1000148000, 779 VK_BLEND_OP_SRC_EXT = 1000148001, 780 VK_BLEND_OP_DST_EXT = 1000148002, 781 VK_BLEND_OP_SRC_OVER_EXT = 1000148003, 782 VK_BLEND_OP_DST_OVER_EXT = 1000148004, 783 VK_BLEND_OP_SRC_IN_EXT = 1000148005, 784 VK_BLEND_OP_DST_IN_EXT = 1000148006, 785 VK_BLEND_OP_SRC_OUT_EXT = 1000148007, 786 VK_BLEND_OP_DST_OUT_EXT = 1000148008, 787 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009, 788 VK_BLEND_OP_DST_ATOP_EXT = 1000148010, 789 VK_BLEND_OP_XOR_EXT = 1000148011, 790 VK_BLEND_OP_MULTIPLY_EXT = 1000148012, 791 VK_BLEND_OP_SCREEN_EXT = 1000148013, 792 VK_BLEND_OP_OVERLAY_EXT = 1000148014, 793 VK_BLEND_OP_DARKEN_EXT = 1000148015, 794 VK_BLEND_OP_LIGHTEN_EXT = 1000148016, 795 VK_BLEND_OP_COLORDODGE_EXT = 1000148017, 796 VK_BLEND_OP_COLORBURN_EXT = 1000148018, 797 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019, 798 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020, 799 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021, 800 VK_BLEND_OP_EXCLUSION_EXT = 1000148022, 801 VK_BLEND_OP_INVERT_EXT = 1000148023, 802 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024, 803 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025, 804 VK_BLEND_OP_LINEARBURN_EXT = 1000148026, 805 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, 806 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028, 807 VK_BLEND_OP_PINLIGHT_EXT = 1000148029, 808 VK_BLEND_OP_HARDMIX_EXT = 1000148030, 809 VK_BLEND_OP_HSL_HUE_EXT = 1000148031, 810 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032, 811 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033, 812 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, 813 VK_BLEND_OP_PLUS_EXT = 1000148035, 814 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, 815 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, 816 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038, 817 VK_BLEND_OP_MINUS_EXT = 1000148039, 818 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, 819 VK_BLEND_OP_CONTRAST_EXT = 1000148041, 820 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042, 821 VK_BLEND_OP_RED_EXT = 1000148043, 822 VK_BLEND_OP_GREEN_EXT = 1000148044, 823 VK_BLEND_OP_BLUE_EXT = 1000148045, 824} 825 826enum VkStencilOp { 827 VK_STENCIL_OP_KEEP = 0x00000000, 828 VK_STENCIL_OP_ZERO = 0x00000001, 829 VK_STENCIL_OP_REPLACE = 0x00000002, 830 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003, 831 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004, 832 VK_STENCIL_OP_INVERT = 0x00000005, 833 VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006, 834 VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007, 835} 836 837enum VkLogicOp { 838 VK_LOGIC_OP_CLEAR = 0x00000000, 839 VK_LOGIC_OP_AND = 0x00000001, 840 VK_LOGIC_OP_AND_REVERSE = 0x00000002, 841 VK_LOGIC_OP_COPY = 0x00000003, 842 VK_LOGIC_OP_AND_INVERTED = 0x00000004, 843 VK_LOGIC_OP_NO_OP = 0x00000005, 844 VK_LOGIC_OP_XOR = 0x00000006, 845 VK_LOGIC_OP_OR = 0x00000007, 846 VK_LOGIC_OP_NOR = 0x00000008, 847 VK_LOGIC_OP_EQUIVALENT = 0x00000009, 848 VK_LOGIC_OP_INVERT = 0x0000000a, 849 VK_LOGIC_OP_OR_REVERSE = 0x0000000b, 850 VK_LOGIC_OP_COPY_INVERTED = 0x0000000c, 851 VK_LOGIC_OP_OR_INVERTED = 0x0000000d, 852 VK_LOGIC_OP_NAND = 0x0000000e, 853 VK_LOGIC_OP_SET = 0x0000000f, 854} 855 856enum VkSystemAllocationScope { 857 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000, 858 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001, 859 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002, 860 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003, 861 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004, 862} 863 864enum VkInternalAllocationType { 865 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000, 866} 867 868enum VkPhysicalDeviceType { 869 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000, 870 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001, 871 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002, 872 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003, 873 VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004, 874} 875 876enum VkVertexInputRate { 877 VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000, 878 VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001, 879} 880 881/// Vulkan format definitions 882enum VkFormat { 883 VK_FORMAT_UNDEFINED = 0, 884 VK_FORMAT_R4G4_UNORM_PACK8 = 1, 885 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2, 886 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3, 887 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4, 888 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5, 889 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6, 890 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7, 891 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8, 892 VK_FORMAT_R8_UNORM = 9, 893 VK_FORMAT_R8_SNORM = 10, 894 VK_FORMAT_R8_USCALED = 11, 895 VK_FORMAT_R8_SSCALED = 12, 896 VK_FORMAT_R8_UINT = 13, 897 VK_FORMAT_R8_SINT = 14, 898 VK_FORMAT_R8_SRGB = 15, 899 VK_FORMAT_R8G8_UNORM = 16, 900 VK_FORMAT_R8G8_SNORM = 17, 901 VK_FORMAT_R8G8_USCALED = 18, 902 VK_FORMAT_R8G8_SSCALED = 19, 903 VK_FORMAT_R8G8_UINT = 20, 904 VK_FORMAT_R8G8_SINT = 21, 905 VK_FORMAT_R8G8_SRGB = 22, 906 VK_FORMAT_R8G8B8_UNORM = 23, 907 VK_FORMAT_R8G8B8_SNORM = 24, 908 VK_FORMAT_R8G8B8_USCALED = 25, 909 VK_FORMAT_R8G8B8_SSCALED = 26, 910 VK_FORMAT_R8G8B8_UINT = 27, 911 VK_FORMAT_R8G8B8_SINT = 28, 912 VK_FORMAT_R8G8B8_SRGB = 29, 913 VK_FORMAT_B8G8R8_UNORM = 30, 914 VK_FORMAT_B8G8R8_SNORM = 31, 915 VK_FORMAT_B8G8R8_USCALED = 32, 916 VK_FORMAT_B8G8R8_SSCALED = 33, 917 VK_FORMAT_B8G8R8_UINT = 34, 918 VK_FORMAT_B8G8R8_SINT = 35, 919 VK_FORMAT_B8G8R8_SRGB = 36, 920 VK_FORMAT_R8G8B8A8_UNORM = 37, 921 VK_FORMAT_R8G8B8A8_SNORM = 38, 922 VK_FORMAT_R8G8B8A8_USCALED = 39, 923 VK_FORMAT_R8G8B8A8_SSCALED = 40, 924 VK_FORMAT_R8G8B8A8_UINT = 41, 925 VK_FORMAT_R8G8B8A8_SINT = 42, 926 VK_FORMAT_R8G8B8A8_SRGB = 43, 927 VK_FORMAT_B8G8R8A8_UNORM = 44, 928 VK_FORMAT_B8G8R8A8_SNORM = 45, 929 VK_FORMAT_B8G8R8A8_USCALED = 46, 930 VK_FORMAT_B8G8R8A8_SSCALED = 47, 931 VK_FORMAT_B8G8R8A8_UINT = 48, 932 VK_FORMAT_B8G8R8A8_SINT = 49, 933 VK_FORMAT_B8G8R8A8_SRGB = 50, 934 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51, 935 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52, 936 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53, 937 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54, 938 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55, 939 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56, 940 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57, 941 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58, 942 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59, 943 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60, 944 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61, 945 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62, 946 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63, 947 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64, 948 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65, 949 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66, 950 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67, 951 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68, 952 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69, 953 VK_FORMAT_R16_UNORM = 70, 954 VK_FORMAT_R16_SNORM = 71, 955 VK_FORMAT_R16_USCALED = 72, 956 VK_FORMAT_R16_SSCALED = 73, 957 VK_FORMAT_R16_UINT = 74, 958 VK_FORMAT_R16_SINT = 75, 959 VK_FORMAT_R16_SFLOAT = 76, 960 VK_FORMAT_R16G16_UNORM = 77, 961 VK_FORMAT_R16G16_SNORM = 78, 962 VK_FORMAT_R16G16_USCALED = 79, 963 VK_FORMAT_R16G16_SSCALED = 80, 964 VK_FORMAT_R16G16_UINT = 81, 965 VK_FORMAT_R16G16_SINT = 82, 966 VK_FORMAT_R16G16_SFLOAT = 83, 967 VK_FORMAT_R16G16B16_UNORM = 84, 968 VK_FORMAT_R16G16B16_SNORM = 85, 969 VK_FORMAT_R16G16B16_USCALED = 86, 970 VK_FORMAT_R16G16B16_SSCALED = 87, 971 VK_FORMAT_R16G16B16_UINT = 88, 972 VK_FORMAT_R16G16B16_SINT = 89, 973 VK_FORMAT_R16G16B16_SFLOAT = 90, 974 VK_FORMAT_R16G16B16A16_UNORM = 91, 975 VK_FORMAT_R16G16B16A16_SNORM = 92, 976 VK_FORMAT_R16G16B16A16_USCALED = 93, 977 VK_FORMAT_R16G16B16A16_SSCALED = 94, 978 VK_FORMAT_R16G16B16A16_UINT = 95, 979 VK_FORMAT_R16G16B16A16_SINT = 96, 980 VK_FORMAT_R16G16B16A16_SFLOAT = 97, 981 VK_FORMAT_R32_UINT = 98, 982 VK_FORMAT_R32_SINT = 99, 983 VK_FORMAT_R32_SFLOAT = 100, 984 VK_FORMAT_R32G32_UINT = 101, 985 VK_FORMAT_R32G32_SINT = 102, 986 VK_FORMAT_R32G32_SFLOAT = 103, 987 VK_FORMAT_R32G32B32_UINT = 104, 988 VK_FORMAT_R32G32B32_SINT = 105, 989 VK_FORMAT_R32G32B32_SFLOAT = 106, 990 VK_FORMAT_R32G32B32A32_UINT = 107, 991 VK_FORMAT_R32G32B32A32_SINT = 108, 992 VK_FORMAT_R32G32B32A32_SFLOAT = 109, 993 VK_FORMAT_R64_UINT = 110, 994 VK_FORMAT_R64_SINT = 111, 995 VK_FORMAT_R64_SFLOAT = 112, 996 VK_FORMAT_R64G64_UINT = 113, 997 VK_FORMAT_R64G64_SINT = 114, 998 VK_FORMAT_R64G64_SFLOAT = 115, 999 VK_FORMAT_R64G64B64_UINT = 116, 1000 VK_FORMAT_R64G64B64_SINT = 117, 1001 VK_FORMAT_R64G64B64_SFLOAT = 118, 1002 VK_FORMAT_R64G64B64A64_UINT = 119, 1003 VK_FORMAT_R64G64B64A64_SINT = 120, 1004 VK_FORMAT_R64G64B64A64_SFLOAT = 121, 1005 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122, 1006 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123, 1007 VK_FORMAT_D16_UNORM = 124, 1008 VK_FORMAT_X8_D24_UNORM_PACK32 = 125, 1009 VK_FORMAT_D32_SFLOAT = 126, 1010 VK_FORMAT_S8_UINT = 127, 1011 VK_FORMAT_D16_UNORM_S8_UINT = 128, 1012 VK_FORMAT_D24_UNORM_S8_UINT = 129, 1013 VK_FORMAT_D32_SFLOAT_S8_UINT = 130, 1014 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131, 1015 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132, 1016 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133, 1017 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134, 1018 VK_FORMAT_BC2_UNORM_BLOCK = 135, 1019 VK_FORMAT_BC2_SRGB_BLOCK = 136, 1020 VK_FORMAT_BC3_UNORM_BLOCK = 137, 1021 VK_FORMAT_BC3_SRGB_BLOCK = 138, 1022 VK_FORMAT_BC4_UNORM_BLOCK = 139, 1023 VK_FORMAT_BC4_SNORM_BLOCK = 140, 1024 VK_FORMAT_BC5_UNORM_BLOCK = 141, 1025 VK_FORMAT_BC5_SNORM_BLOCK = 142, 1026 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143, 1027 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144, 1028 VK_FORMAT_BC7_UNORM_BLOCK = 145, 1029 VK_FORMAT_BC7_SRGB_BLOCK = 146, 1030 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147, 1031 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148, 1032 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149, 1033 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150, 1034 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151, 1035 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152, 1036 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153, 1037 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154, 1038 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155, 1039 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156, 1040 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157, 1041 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158, 1042 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159, 1043 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160, 1044 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161, 1045 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162, 1046 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163, 1047 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164, 1048 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165, 1049 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166, 1050 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167, 1051 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168, 1052 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169, 1053 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170, 1054 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171, 1055 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172, 1056 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173, 1057 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174, 1058 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175, 1059 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176, 1060 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, 1061 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, 1062 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, 1063 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, 1064 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, 1065 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, 1066 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, 1067 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, 1068 1069 //@vulkan1_1 1070 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000, 1071 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001, 1072 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002, 1073 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003, 1074 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004, 1075 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005, 1076 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006, 1077 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007, 1078 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008, 1079 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009, 1080 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010, 1081 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011, 1082 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012, 1083 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013, 1084 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014, 1085 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015, 1086 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016, 1087 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017, 1088 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018, 1089 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019, 1090 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020, 1091 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021, 1092 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022, 1093 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023, 1094 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024, 1095 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025, 1096 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026, 1097 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027, 1098 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028, 1099 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029, 1100 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030, 1101 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, 1102 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, 1103 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, 1104 1105 //@extension("VK_IMG_format_pvrtc") // 28 1106 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, 1107 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, 1108 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, 1109 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003, 1110 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004, 1111 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, 1112 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, 1113 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, 1114 1115 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 1116 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000, 1117 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001, 1118 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002, 1119 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003, 1120 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004, 1121 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005, 1122 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006, 1123 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007, 1124 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008, 1125 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009, 1126 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010, 1127 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011, 1128 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012, 1129 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013, 1130 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014, 1131 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015, 1132 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016, 1133 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017, 1134 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018, 1135 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019, 1136 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020, 1137 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021, 1138 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022, 1139 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023, 1140 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024, 1141 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025, 1142 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026, 1143 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027, 1144 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028, 1145 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029, 1146 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030, 1147 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031, 1148 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032, 1149 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033, 1150} 1151 1152/// Structure type enumerant 1153enum VkStructureType { 1154 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0, 1155 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1, 1156 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2, 1157 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3, 1158 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4, 1159 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5, 1160 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6, 1161 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7, 1162 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8, 1163 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9, 1164 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10, 1165 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11, 1166 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12, 1167 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13, 1168 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14, 1169 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15, 1170 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16, 1171 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17, 1172 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18, 1173 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19, 1174 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20, 1175 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21, 1176 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22, 1177 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23, 1178 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24, 1179 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25, 1180 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26, 1181 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27, 1182 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28, 1183 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29, 1184 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30, 1185 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31, 1186 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32, 1187 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33, 1188 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34, 1189 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35, 1190 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36, 1191 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37, 1192 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38, 1193 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39, 1194 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40, 1195 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41, 1196 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42, 1197 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43, 1198 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44, 1199 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45, 1200 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46, 1201 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47, 1202 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48, 1203 1204 //@vulkan1_1 1205 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000, 1206 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000, 1207 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001, 1208 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000, 1209 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000, 1210 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001, 1211 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000, 1212 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003, 1213 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004, 1214 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005, 1215 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006, 1216 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013, 1217 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014, 1218 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000, 1219 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001, 1220 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000, 1221 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001, 1222 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002, 1223 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003, 1224 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004, 1225 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000, 1226 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001, 1227 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002, 1228 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003, 1229 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004, 1230 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005, 1231 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006, 1232 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007, 1233 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008, 1234 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000, 1235 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001, 1236 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002, 1237 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003, 1238 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, 1239 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, 1240 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, 1241 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000, 1242 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, 1243 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, 1244 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, 1245 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003, 1246 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000, 1247 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001, 1248 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002, 1249 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003, 1250 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004, 1251 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005, 1252 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000, 1253 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000, 1254 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001, 1255 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002, 1256 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003, 1257 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004, 1258 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000, 1259 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001, 1260 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002, 1261 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000, 1262 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001, 1263 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000, 1264 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000, 1265 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000, 1266 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, 1267 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, 1268 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, 1269 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000, 1270 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, 1271 1272 //@extension("VK_KHR_swapchain") // 2 1273 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, 1274 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, 1275 // added as interaction from VK_KHR_device_group / VK 1.1 1276 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008, 1277 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009, 1278 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010, 1279 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011, 1280 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012, 1281 1282 //@extension("VK_KHR_display") // 3 1283 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000, 1284 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001, 1285 1286 //@extension("VK_KHR_display_swapchain") // 4 1287 VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000, 1288 1289 //@extension("VK_KHR_xlib_surface") // 5 1290 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, 1291 1292 //@extension("VK_KHR_xcb_surface") // 6 1293 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000, 1294 1295 //@extension("VK_KHR_wayland_surface") // 7 1296 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, 1297 1298 //@extension("VK_KHR_mir_surface") // 8 1299 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000, 1300 1301 //@extension("VK_KHR_android_surface") // 9 1302 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, 1303 1304 //@extension("VK_KHR_win32_surface") // 10 1305 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, 1306 1307 //@extension("VK_ANDROID_native_buffer") // 11 1308 VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000, 1309 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001, 1310 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002, 1311 1312 //@extension("VK_EXT_debug_report") // 12 1313 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, 1314 1315 //@extension("VK_AMD_rasterization_order") // 19 1316 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000, 1317 1318 //@extension("VK_EXT_debug_marker") // 23 1319 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000, 1320 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001, 1321 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002, 1322 1323 //@extension("VK_NV_dedicated_allocation") // 27 1324 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, 1325 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, 1326 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, 1327 1328 //@extension("VK_AMD_texture_gather_bias_lod") // 42 1329 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, 1330 1331 //@extension("VK_KHR_multiview") // 54 1332 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000, 1333 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001, 1334 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002, 1335 1336 //@extension("VK_NV_external_memory") // 57 1337 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, 1338 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, 1339 1340 //@extension("VK_NV_external_memory_win32") // 58 1341 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000, 1342 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001, 1343 1344 //@extension("VK_NV_win32_keyed_mutex") // 59 1345 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, 1346 1347 //@extension("VK_KHR_get_physical_device_properties2") // 60 1348 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000, 1349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001, 1350 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002, 1351 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003, 1352 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004, 1353 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005, 1354 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006, 1355 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007, 1356 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008, 1357 1358 //@extension("VK_KHR_device_group") // 61 1359 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000, 1360 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003, 1361 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004, 1362 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005, 1363 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006, 1364 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, 1365 // tokens 08-12 are listed with VK_KHR_swapchain 1366 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013, 1367 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014, 1368 1369 //@extension("VK_EXT_validation_flags") // 62 1370 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, 1371 1372 //@extension("VK_NN_vi_surface") // 63 1373 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, 1374 1375 //@extension("VK_KHR_device_group_creation") // 71 1376 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000, 1377 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001, 1378 1379 //@extension("VK_KHR_external_memory_capabilities") // 72 1380 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000, 1381 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001, 1382 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002, 1383 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003, 1384 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004, 1385 1386 //@extension("VK_KHR_external_memory") // 73 1387 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000, 1388 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001, 1389 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002, 1390 1391 //@extension("VK_KHR_external_memory_win32") // 74 1392 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, 1393 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001, 1394 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002, 1395 1396 //@extension("VK_KHR_external_memory_fd") // 75 1397 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000, 1398 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001, 1399 1400 //@extension("VK_KHR_win32_keyed_mutex") // 76 1401 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000, 1402 1403 //@extension("VK_KHR_external_semaphore_capabilities") // 77 1404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000, 1405 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001, 1406 1407 //@extension("VK_KHR_external_semaphore") // 78 1408 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000, 1409 1410 //@extension("VK_KHR_external_semaphore_win32") // 79 1411 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000, 1412 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001, 1413 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002, 1414 1415 //@extension("VK_KHR_external_semaphore_fd") // 80 1416 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, 1417 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, 1418 1419 //@extension("VK_KHR_push_descriptor") // 81 1420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, 1421 1422 //@extension("VK_KHR_16bit_storage") // 84 1423 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000, 1424 1425 //@extension("VK_KHR_incremental_present") // 85 1426 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, 1427 1428 //@extension("VK_KHR_descriptor_update_template") // 86 1429 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000, 1430 1431 //@extension("VK_NVX_device_generated_commands") // 87 1432 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, 1433 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, 1434 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002, 1435 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003, 1436 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004, 1437 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005, 1438 1439 //@extension("VK_NV_clip_space_w_scaling") // 88 1440 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, 1441 1442 //@extension("VK_EXT_display_surface_counter") // 91 1443 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, 1444 1445 //@extension("VK_EXT_display_control") // 92 1446 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, 1447 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001, 1448 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002, 1449 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003, 1450 1451 //@extension("VK_GOOGLE_display_timing") // 93 1452 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000, 1453 1454 //@extension("VK_NVX_multiview_per_view_attributes") // 98 1455 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000, 1456 1457 //@extension("VK_NV_viewport_swizzle") // 99 1458 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000, 1459 1460 //@extension("VK_EXT_discard_rectangles") // 100 1461 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000, 1462 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, 1463 1464 //@extension("VK_EXT_conservative_rasterization") // 102 1465 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, 1466 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, 1467 1468 //@extension("VK_EXT_hdr_metadata") // 106 1469 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, 1470 1471 //@extension("VK_KHR_shared_presentable_image") // 112 1472 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, 1473 1474 //@extension("VK_KHR_external_fence_capabilities") // 113 1475 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000, 1476 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001, 1477 1478 //@extension("VK_KHR_external_fence") // 114 1479 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000, 1480 1481 //@extension("VK_KHR_external_fence_win32") // 115 1482 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000, 1483 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001, 1484 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, 1485 1486 //@extension("VK_KHR_external_fence_fd") // 117 1487 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, 1488 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, 1489 1490 //@extension("VK_KHR_maintenance2") // 118 1491 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000, 1492 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001, 1493 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002, 1494 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003, 1495 1496 //@extension("VK_KHR_get_surface_capabilities2") // 120 1497 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, 1498 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, 1499 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, 1500 1501 //@extension("VK_KHR_variable_pointers") // 121 1502 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000, 1503 1504 //@extension("VK_MVK_ios_surface") // 123 1505 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, 1506 1507 //@extension("VK_MVK_macos_surface") // 124 1508 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, 1509 1510 //@extension("VK_KHR_dedicated_allocation") // 128 1511 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000, 1512 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001, 1513 1514 //@extension("VK_EXT_debug_utils") // 129 1515 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000, 1516 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001, 1517 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002, 1518 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003, 1519 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004, 1520 1521 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 1522 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000, 1523 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001, 1524 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002, 1525 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003, 1526 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, 1527 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, 1528 1529 //@extension("VK_EXT_sampler_filter_minmax") // 131 1530 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000, 1531 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001, 1532 1533 //@extension("VK_EXT_sample_locations") // 144 1534 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, 1535 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, 1536 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, 1537 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003, 1538 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004, 1539 1540 //@extension("VK_KHR_get_memory_requirements2") // 147 1541 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000, 1542 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001, 1543 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002, 1544 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003, 1545 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004, 1546 1547 //@extension("VK_KHR_image_format_list") // 148 1548 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000, 1549 1550 //@extension("VK_EXT_blend_operation_advanced") // 149 1551 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000, 1552 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001, 1553 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, 1554 1555 //@extension("VK_NV_fragment_coverage_to_color") // 150 1556 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, 1557 1558 //@extension("VK_NV_framebuffer_mixed_samples") // 153 1559 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, 1560 1561 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 1562 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000, 1563 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001, 1564 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002, 1565 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003, 1566 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004, 1567 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005, 1568 1569 //@extension("VK_KHR_bind_memory2") // 158 1570 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000, 1571 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001, 1572 1573 //@extension("VK_EXT_validation_cache") // 161 1574 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, 1575 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, 1576 1577 //@extension("VK_KHR_maintenance3") // 169 1578 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000, 1579 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001, 1580 1581 //@extension("VK_EXT_global_priority") // 175 1582 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, 1583 1584 //@extension("VK_EXT_external_memory_host") // 179 1585 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, 1586 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, 1587 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, 1588} 1589 1590enum VkSubpassContents { 1591 VK_SUBPASS_CONTENTS_INLINE = 0x00000000, 1592 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001, 1593} 1594 1595enum VkPipelineCacheHeaderVersion { 1596 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, 1597} 1598 1599@lastUnused(-11) 1600/// Error and return codes 1601enum VkResult { 1602 // Return codes for successful operation execution (positive values) 1603 VK_SUCCESS = 0, 1604 VK_NOT_READY = 1, 1605 VK_TIMEOUT = 2, 1606 VK_EVENT_SET = 3, 1607 VK_EVENT_RESET = 4, 1608 VK_INCOMPLETE = 5, 1609 1610 //@extension("VK_KHR_swapchain") // 2 1611 VK_SUBOPTIMAL_KHR = 1000001003, 1612 1613 // Error codes (negative values) 1614 VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1 1615 VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2 1616 VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3 1617 VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4 1618 VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5 1619 VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6 1620 VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7 1621 VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8 1622 VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9 1623 VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10 1624 VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11 1625 VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12 1626 1627 //@vulkan1_1 1628 VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000 1629 VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003 1630 1631 //@extension("VK_KHR_surface") // 1 1632 VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000 1633 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001 1634 1635 //@extension("VK_KHR_swapchain") // 2 1636 VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004 1637 1638 //@extension("VK_KHR_display_swapchain") // 4 1639 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001 1640 1641 //@extension("VK_EXT_debug_report") // 12 1642 VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001 1643 1644 //@extension("VK_NV_glsl_shader") // 13 1645 VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000 1646 1647 //@extension("VK_KHR_maintenance1") // 70 1648 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000 1649 1650 //@extension("VK_EXT_global_priority") // 175 1651 VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001 1652 1653 //@extension("VK_KHR_external_memory") // 73 1654 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003 1655} 1656 1657enum VkDynamicState { 1658 VK_DYNAMIC_STATE_VIEWPORT = 0x00000000, 1659 VK_DYNAMIC_STATE_SCISSOR = 0x00000001, 1660 VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002, 1661 VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003, 1662 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004, 1663 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005, 1664 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006, 1665 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007, 1666 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008, 1667 1668 //@extension("VK_NV_clip_space_w_scaling") // 88 1669 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, 1670 1671 //@extension("VK_EXT_discard_rectangles") // 100 1672 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, 1673 1674 //@extension("VK_EXT_sample_locations") // 144 1675 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, 1676} 1677 1678enum VkObjectType { 1679 VK_OBJECT_TYPE_UNKNOWN = 0, 1680 VK_OBJECT_TYPE_INSTANCE = 1, 1681 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, 1682 VK_OBJECT_TYPE_DEVICE = 3, 1683 VK_OBJECT_TYPE_QUEUE = 4, 1684 VK_OBJECT_TYPE_SEMAPHORE = 5, 1685 VK_OBJECT_TYPE_COMMAND_BUFFER = 6, 1686 VK_OBJECT_TYPE_FENCE = 7, 1687 VK_OBJECT_TYPE_DEVICE_MEMORY = 8, 1688 VK_OBJECT_TYPE_BUFFER = 9, 1689 VK_OBJECT_TYPE_IMAGE = 10, 1690 VK_OBJECT_TYPE_EVENT = 11, 1691 VK_OBJECT_TYPE_QUERY_POOL = 12, 1692 VK_OBJECT_TYPE_BUFFER_VIEW = 13, 1693 VK_OBJECT_TYPE_IMAGE_VIEW = 14, 1694 VK_OBJECT_TYPE_SHADER_MODULE = 15, 1695 VK_OBJECT_TYPE_PIPELINE_CACHE = 16, 1696 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, 1697 VK_OBJECT_TYPE_RENDER_PASS = 18, 1698 VK_OBJECT_TYPE_PIPELINE = 19, 1699 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, 1700 VK_OBJECT_TYPE_SAMPLER = 21, 1701 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, 1702 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, 1703 VK_OBJECT_TYPE_FRAMEBUFFER = 24, 1704 VK_OBJECT_TYPE_COMMAND_POOL = 25, 1705 1706 //@vulkan1_1 1707 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, 1708 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, 1709 1710 //@extension("VK_KHR_surface") // 1 1711 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, 1712 1713 //@extension("VK_KHR_swapchain") // 2 1714 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, 1715 1716 //@extension("VK_KHR_display") // 3 1717 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, 1718 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, 1719 1720 //@extension("VK_KHR_debug_report") // 12 1721 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, 1722 1723 //@extension("VK_KHR_descriptor_update_template") // 86 1724 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000, 1725 1726 //@extension("VK_NVX_device_generated_commands") // 87 1727 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000, 1728 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, 1729 1730 //@extension("VK_EXT_debug_utils") // 129 1731 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, 1732 1733 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 1734 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000, 1735 1736 //@extension("VK_EXT_validation_cache") // 161 1737 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, 1738} 1739 1740 1741//@vulkan1_1 enums 1742 1743enum VkPointClippingBehavior { 1744 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, 1745 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, 1746} 1747 1748enum VkTessellationDomainOrigin { 1749 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0, 1750 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1, 1751} 1752 1753enum VkSamplerYcbcrModelConversion { 1754 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0, 1755 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1, 1756 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2, 1757 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3, 1758 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4, 1759} 1760 1761enum VkSamplerYcbcrRange { 1762 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0, 1763 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1, 1764} 1765 1766enum VkChromaLocation { 1767 VK_CHROMA_LOCATION_COSITED_EVEN = 0, 1768 VK_CHROMA_LOCATION_MIDPOINT = 1, 1769} 1770 1771enum VkDescriptorUpdateTemplateType { 1772 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0, 1773 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, 1774} 1775 1776@extension("VK_KHR_surface") // 1 1777enum VkPresentModeKHR { 1778 VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000, 1779 VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001, 1780 VK_PRESENT_MODE_FIFO_KHR = 0x00000002, 1781 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003, 1782 1783 //@extension("VK_KHR_shared_presentable_image") // 112 1784 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, 1785 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, 1786} 1787 1788@extension("VK_KHR_surface") // 1 1789enum VkColorSpaceKHR { 1790 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000, 1791 1792 //@extension("VK_EXT_swapchain_colorspace") // 105 1793 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, 1794 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, 1795 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003, 1796 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, 1797 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, 1798 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, 1799 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, 1800 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, 1801 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, 1802 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, 1803 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, 1804 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, 1805 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, 1806 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, 1807} 1808 1809@extension("VK_EXT_debug_report") // 12 1810enum VkDebugReportObjectTypeEXT { 1811 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0, 1812 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1, 1813 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2, 1814 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3, 1815 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4, 1816 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5, 1817 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6, 1818 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7, 1819 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8, 1820 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9, 1821 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10, 1822 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11, 1823 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12, 1824 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13, 1825 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14, 1826 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15, 1827 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16, 1828 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17, 1829 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18, 1830 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19, 1831 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20, 1832 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21, 1833 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22, 1834 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23, 1835 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24, 1836 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25, 1837 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26, 1838 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27, 1839 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28, 1840 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29, 1841 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30, 1842 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31, 1843 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32, 1844 1845 //extension("VK_EXT_validation_cache") // 161 1846 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33, 1847 1848 //extension("VK_KHR_descriptor_update_template") // 86 1849 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000, 1850 1851 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 1852 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000, 1853} 1854 1855@extension("VK_AMD_rasterization_order") // 19 1856enum VkRasterizationOrderAMD { 1857 VK_RASTERIZATION_ORDER_STRICT_AMD = 0, 1858 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, 1859} 1860 1861@extension("VK_AMD_shader_info") // 43 1862enum VkShaderInfoTypeAMD { 1863 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0, 1864 VK_SHADER_INFO_TYPE_BINARY_AMD = 1, 1865 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2, 1866} 1867 1868@extension("VK_EXT_validation_flags") // 62 1869enum VkValidationCheckEXT { 1870 VK_VALIDATION_CHECK_ALL_EXT = 0, 1871 VK_VALIDATION_CHECK_SHADERS_EXT = 1, 1872} 1873 1874@extension("VK_KHR_descriptor_update_template") // 86 1875enum VkDescriptorUpdateTemplateTypeKHR { 1876 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0, 1877 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, 1878} 1879 1880@extension("VK_NVX_device_generated_commands") // 87 1881enum VkIndirectCommandsTokenTypeNVX { 1882 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0, 1883 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1, 1884 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2, 1885 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3, 1886 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4, 1887 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5, 1888 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6, 1889 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7, 1890} 1891 1892@extension("VK_NVX_device_generated_commands") // 87 1893enum VkObjectEntryTypeNVX { 1894 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0, 1895 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1, 1896 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2, 1897 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3, 1898 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4, 1899} 1900 1901@extension("VK_EXT_display_control") // 92 1902enum VkDisplayPowerStateEXT { 1903 VK_DISPLAY_POWER_STATE_OFF_EXT = 0, 1904 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1, 1905 VK_DISPLAY_POWER_STATE_ON_EXT = 2, 1906} 1907 1908@extension("VK_EXT_display_control") // 92 1909enum VkDeviceEventTypeEXT { 1910 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, 1911} 1912 1913@extension("VK_EXT_display_control") // 92 1914enum VkDisplayEventTypeEXT { 1915 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0, 1916} 1917 1918@extension("VK_NV_viewport_swizzle") // 99 1919enum VkViewportCoordinateSwizzleNV { 1920 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0, 1921 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1, 1922 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2, 1923 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3, 1924 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4, 1925 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5, 1926 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6, 1927 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7, 1928} 1929 1930@extension("VK_EXT_discard_rectangles") // 100 1931enum VkDiscardRectangleModeEXT { 1932 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, 1933 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, 1934} 1935 1936@extension("VK_EXT_conservative_rasterization") // 102 1937enum VkConservativeRasterizationModeEXT { 1938 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, 1939 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, 1940 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2, 1941} 1942 1943@extension("VK_KHR_maintenance2") // 118 1944enum VkPointClippingBehaviorKHR { 1945 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0, 1946 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1, 1947} 1948 1949@extension("VK_KHR_maintenance2") // 118 1950enum VkTessellationDomainOriginKHR { 1951 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0, 1952 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1, 1953} 1954 1955@extension("VK_EXT_sampler_filter_minmax") // 131 1956enum VkSamplerReductionModeEXT { 1957 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0, 1958 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1, 1959 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2, 1960} 1961 1962@extension("VK_EXT_blend_operation_advanced") // 149 1963enum VkBlendOverlapEXT { 1964 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, 1965 VK_BLEND_OVERLAP_DISJOINT_EXT = 1, 1966 VK_BLEND_OVERLAP_CONJOINT_EXT = 2, 1967} 1968 1969@extension("VK_NV_framebuffer_mixed_samples") // 153 1970enum VkCoverageModulationModeNV { 1971 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0, 1972 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1, 1973 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2, 1974 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3, 1975} 1976 1977@extension("VK_KHR_sampler_ycbcr_conversion") // 157 1978enum VkSamplerYcbcrModelConversionKHR { 1979 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0, 1980 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1, 1981 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2, 1982 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3, 1983 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4, 1984} 1985 1986@extension("VK_KHR_sampler_ycbcr_conversion") // 157 1987enum VkSamplerYcbcrRangeKHR { 1988 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0, 1989 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1, 1990} 1991 1992@extension("VK_KHR_sampler_ycbcr_conversion") // 157 1993enum VkChromaLocationKHR { 1994 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0, 1995 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1, 1996} 1997 1998@extension("VK_EXT_validation_cache") // 161 1999enum VkValidationCacheHeaderVersionEXT { 2000 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, 2001} 2002 2003@extension("VK_EXT_global_priority") // 175 2004enum VkQueueGlobalPriorityEXT { 2005 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128, 2006 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256, 2007 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512, 2008 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024, 2009} 2010 2011///////////////// 2012// Bitfields // 2013///////////////// 2014 2015/// Queue capabilities 2016type VkFlags VkQueueFlags 2017bitfield VkQueueFlagBits { 2018 VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations 2019 VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations 2020 VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations 2021 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations 2022 2023 //@vulkan1_1 2024 VK_QUEUE_PROTECTED_BIT = 0x00000010, 2025} 2026 2027/// Memory properties passed into vkAllocMemory(). 2028type VkFlags VkMemoryPropertyFlags 2029bitfield VkMemoryPropertyFlagBits { 2030 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, 2031 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, 2032 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004, 2033 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, 2034 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, 2035 2036 //@vulkan1_1 2037 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, 2038} 2039 2040/// Memory heap flags 2041type VkFlags VkMemoryHeapFlags 2042bitfield VkMemoryHeapFlagBits { 2043 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, 2044 2045 //@vulkan1_1 2046 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, 2047 2048 //@extension("VK_KHR_device_group_creation") // 71 2049 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002, 2050} 2051 2052/// Access flags 2053type VkFlags VkAccessFlags 2054bitfield VkAccessFlagBits { 2055 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, 2056 VK_ACCESS_INDEX_READ_BIT = 0x00000002, 2057 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, 2058 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, 2059 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, 2060 VK_ACCESS_SHADER_READ_BIT = 0x00000020, 2061 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, 2062 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, 2063 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, 2064 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, 2065 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, 2066 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, 2067 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, 2068 VK_ACCESS_HOST_READ_BIT = 0x00002000, 2069 VK_ACCESS_HOST_WRITE_BIT = 0x00004000, 2070 VK_ACCESS_MEMORY_READ_BIT = 0x00008000, 2071 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, 2072 2073 //@extension("VK_NVX_device_generated_commands") // 87 2074 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, 2075 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, 2076 2077 //@extension("VK_EXT_blend_operation_advanced") // 149 2078 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, 2079} 2080 2081/// Buffer usage flags 2082type VkFlags VkBufferUsageFlags 2083bitfield VkBufferUsageFlagBits { 2084 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations 2085 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations 2086 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO 2087 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO 2088 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO 2089 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO 2090 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer) 2091 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO) 2092 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, /// Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer) 2093} 2094 2095/// Buffer creation flags 2096type VkFlags VkBufferCreateFlags 2097bitfield VkBufferCreateFlagBits { 2098 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing 2099 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency 2100 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, /// Buffer should support constent data access to physical memory blocks mapped into multiple locations of sparse buffers 2101 2102 //@vulkan1_1 2103 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, 2104} 2105 2106/// Shader stage flags 2107type VkFlags VkShaderStageFlags 2108bitfield VkShaderStageFlagBits { 2109 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001, 2110 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, 2111 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, 2112 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, 2113 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, 2114 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, 2115 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, 2116 2117 VK_SHADER_STAGE_ALL = 0x7FFFFFFF, 2118} 2119 2120/// Descriptor pool create flags 2121type VkFlags VkDescriptorPoolCreateFlags 2122bitfield VkDescriptorPoolCreateFlagBits { 2123 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, 2124} 2125 2126/// Descriptor pool reset flags 2127type VkFlags VkDescriptorPoolResetFlags 2128//bitfield VkDescriptorPoolResetFlagBits { 2129//} 2130 2131/// Image usage flags 2132type VkFlags VkImageUsageFlags 2133bitfield VkImageUsageFlagBits { 2134 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations 2135 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations 2136 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types) 2137 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type) 2138 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment 2139 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment 2140 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering 2141 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment 2142} 2143 2144/// Image creation flags 2145type VkFlags VkImageCreateFlags 2146bitfield VkImageCreateFlagBits { 2147 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing 2148 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency 2149 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, /// Image should support constent data access to physical memory blocks mapped into multiple locations of sparse images 2150 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image 2151 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, /// Allows creating image views with cube type from the created image 2152 2153 //@vulkan1_1 2154 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020, 2155 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040, 2156 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080, 2157 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, 2158 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, 2159 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400, 2160 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, 2161 2162 //@extension("VK_KHR_maintenance1") // 70 2163 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020, 2164 2165 //@extension("VK_KHR_device_group") // 61 2166 VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040, 2167 2168 //@extension("VK_KHR_maintenance2") // 118 2169 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080, 2170 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100, 2171 2172 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 2173 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200, 2174 2175 //@extension("VK_KHR_bind_memory2") // 158 2176 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400, 2177 2178 //@extension("VK_EXT_sample_locations") // 144 2179 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, 2180} 2181 2182/// Image view creation flags 2183type VkFlags VkImageViewCreateFlags 2184//bitfield VkImageViewCreateFlagBits { 2185//} 2186 2187/// Pipeline creation flags 2188type VkFlags VkPipelineCreateFlags 2189bitfield VkPipelineCreateFlagBits { 2190 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, 2191 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, 2192 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, 2193 2194 //@vulkan1_1 2195 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, 2196 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010, 2197 2198 //@extension("VK_KHR_device_group") // 61 2199 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008, 2200 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010, 2201} 2202 2203/// Color component flags 2204type VkFlags VkColorComponentFlags 2205bitfield VkColorComponentFlagBits { 2206 VK_COLOR_COMPONENT_R_BIT = 0x00000001, 2207 VK_COLOR_COMPONENT_G_BIT = 0x00000002, 2208 VK_COLOR_COMPONENT_B_BIT = 0x00000004, 2209 VK_COLOR_COMPONENT_A_BIT = 0x00000008, 2210} 2211 2212/// Fence creation flags 2213type VkFlags VkFenceCreateFlags 2214bitfield VkFenceCreateFlagBits { 2215 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001, 2216} 2217 2218/// Semaphore creation flags 2219type VkFlags VkSemaphoreCreateFlags 2220//bitfield VkSemaphoreCreateFlagBits { 2221//} 2222 2223/// Format capability flags 2224type VkFlags VkFormatFeatureFlags 2225bitfield VkFormatFeatureFlagBits { 2226 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types) 2227 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type) 2228 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images 2229 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs) 2230 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs) 2231 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers 2232 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs) 2233 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images 2234 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images 2235 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images 2236 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage 2237 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, /// Format can be used as the destination image of blits with vkCommandBlitImage 2238 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, 2239 2240 //@vulkan1_1 2241 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000, 2242 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000, 2243 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000, 2244 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000, 2245 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000, 2246 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000, 2247 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, 2248 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, 2249 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, 2250 2251 //@extension("VK_IMG_filter_cubic") // 16 2252 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, 2253 2254 //@extension("VK_KHR_maintenance1") // 70 2255 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000, 2256 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000, 2257 2258 //@extension("VK_EXT_sampler_filter_minmax") // 131 2259 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, 2260 2261 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 2262 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000, 2263 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000, 2264 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000, 2265 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000, 2266 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000, 2267 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000, 2268 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000, 2269} 2270 2271/// Query control flags 2272type VkFlags VkQueryControlFlags 2273bitfield VkQueryControlFlagBits { 2274 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001, 2275} 2276 2277/// Query result flags 2278type VkFlags VkQueryResultFlags 2279bitfield VkQueryResultFlagBits { 2280 VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values 2281 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy 2282 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written 2283 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available 2284} 2285 2286/// Shader module creation flags 2287type VkFlags VkShaderModuleCreateFlags 2288//bitfield VkShaderModuleCreateFlagBits { 2289//} 2290 2291/// Event creation flags 2292type VkFlags VkEventCreateFlags 2293//bitfield VkEventCreateFlagBits { 2294//} 2295 2296/// Command buffer usage flags 2297type VkFlags VkCommandBufferUsageFlags 2298bitfield VkCommandBufferUsageFlagBits { 2299 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, 2300 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, 2301 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, 2302} 2303 2304/// Pipeline statistics flags 2305type VkFlags VkQueryPipelineStatisticFlags 2306bitfield VkQueryPipelineStatisticFlagBits { 2307 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional 2308 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional 2309 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional 2310 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional 2311 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional 2312 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional 2313 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional 2314 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional 2315 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional 2316 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional 2317 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional 2318} 2319 2320/// Memory mapping flags 2321type VkFlags VkMemoryMapFlags 2322//bitfield VkMemoryMapFlagBits { 2323//} 2324 2325/// Bitfield of image aspects 2326type VkFlags VkImageAspectFlags 2327bitfield VkImageAspectFlagBits { 2328 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, 2329 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, 2330 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, 2331 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, 2332 2333 //@vulkan1_1 2334 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, 2335 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, 2336 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, 2337 2338 //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 2339 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010, 2340 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020, 2341 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040, 2342} 2343 2344/// Sparse memory bind flags 2345type VkFlags VkSparseMemoryBindFlags 2346bitfield VkSparseMemoryBindFlagBits { 2347 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, 2348} 2349 2350/// Sparse image memory requirements flags 2351type VkFlags VkSparseImageFormatFlags 2352bitfield VkSparseImageFormatFlagBits { 2353 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices 2354 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. 2355 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size 2356} 2357 2358/// Pipeline stages 2359type VkFlags VkPipelineStageFlags 2360bitfield VkPipelineStageFlagBits { 2361 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed 2362 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch 2363 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch 2364 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading 2365 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading 2366 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading 2367 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading 2368 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading 2369 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests 2370 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests 2371 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes 2372 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading 2373 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations 2374 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, 2375 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency 2376 2377 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline 2378 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands 2379 2380 //@extension("VK_NVX_device_generated_commands") // 87 2381 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, 2382} 2383 2384/// Render pass attachment description flags 2385type VkFlags VkAttachmentDescriptionFlags 2386bitfield VkAttachmentDescriptionFlagBits { 2387 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, /// The attachment may alias physical memory of another attachment in the same renderpass 2388} 2389 2390/// Subpass description flags 2391type VkFlags VkSubpassDescriptionFlags 2392bitfield VkSubpassDescriptionFlagBits { 2393 //@extension("VK_NVX_multiview_per_view_attributes") // 98 2394 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, 2395 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, 2396} 2397 2398/// Command pool creation flags 2399type VkFlags VkCommandPoolCreateFlags 2400bitfield VkCommandPoolCreateFlagBits { 2401 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime 2402 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually 2403 2404 //@vulkan1_1 2405 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004, 2406} 2407 2408/// Command pool reset flags 2409type VkFlags VkCommandPoolResetFlags 2410bitfield VkCommandPoolResetFlagBits { 2411 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool 2412} 2413 2414type VkFlags VkCommandBufferResetFlags 2415bitfield VkCommandBufferResetFlagBits { 2416 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer 2417} 2418 2419type VkFlags VkSampleCountFlags 2420bitfield VkSampleCountFlagBits { 2421 VK_SAMPLE_COUNT_1_BIT = 0x00000001, 2422 VK_SAMPLE_COUNT_2_BIT = 0x00000002, 2423 VK_SAMPLE_COUNT_4_BIT = 0x00000004, 2424 VK_SAMPLE_COUNT_8_BIT = 0x00000008, 2425 VK_SAMPLE_COUNT_16_BIT = 0x00000010, 2426 VK_SAMPLE_COUNT_32_BIT = 0x00000020, 2427 VK_SAMPLE_COUNT_64_BIT = 0x00000040, 2428} 2429 2430type VkFlags VkStencilFaceFlags 2431bitfield VkStencilFaceFlagBits { 2432 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face 2433 VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face 2434 VK_STENCIL_FRONT_AND_BACK = 0x00000003, 2435} 2436 2437/// Instance creation flags 2438type VkFlags VkInstanceCreateFlags 2439//bitfield VkInstanceCreateFlagBits { 2440//} 2441 2442/// Device creation flags 2443type VkFlags VkDeviceCreateFlags 2444//bitfield VkDeviceCreateFlagBits { 2445//} 2446 2447/// Device queue creation flags 2448type VkFlags VkDeviceQueueCreateFlags 2449@vulkan1_1 2450bitfield VkDeviceQueueCreateFlagBits { 2451 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001, 2452} 2453 2454/// Query pool creation flags 2455type VkFlags VkQueryPoolCreateFlags 2456//bitfield VkQueryPoolCreateFlagBits { 2457//} 2458 2459/// Buffer view creation flags 2460type VkFlags VkBufferViewCreateFlags 2461//bitfield VkBufferViewCreateFlagBits { 2462//} 2463 2464/// Pipeline cache creation flags 2465type VkFlags VkPipelineCacheCreateFlags 2466//bitfield VkPipelineCacheCreateFlagBits { 2467//} 2468 2469/// Pipeline shader stage creation flags 2470type VkFlags VkPipelineShaderStageCreateFlags 2471//bitfield VkPipelineShaderStageCreateFlagBits { 2472//} 2473 2474/// Descriptor set layout creation flags 2475type VkFlags VkDescriptorSetLayoutCreateFlags 2476bitfield VkDescriptorSetLayoutCreateFlagBits { 2477 //@extension("VK_KHR_push_descriptor") // 81 2478 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, 2479} 2480 2481/// Pipeline vertex input state creation flags 2482type VkFlags VkPipelineVertexInputStateCreateFlags 2483//bitfield VkPipelineVertexInputStateCreateFlagBits { 2484//} 2485 2486/// Pipeline input assembly state creation flags 2487type VkFlags VkPipelineInputAssemblyStateCreateFlags 2488//bitfield VkPipelineInputAssemblyStateCreateFlagBits { 2489//} 2490 2491/// Tessellation state creation flags 2492type VkFlags VkPipelineTessellationStateCreateFlags 2493//bitfield VkPipelineTessellationStateCreateFlagBits { 2494//} 2495 2496/// Viewport state creation flags 2497type VkFlags VkPipelineViewportStateCreateFlags 2498//bitfield VkPipelineViewportStateCreateFlagBits { 2499//} 2500 2501/// Rasterization state creation flags 2502type VkFlags VkPipelineRasterizationStateCreateFlags 2503//bitfield VkPipelineRasterizationStateCreateFlagBits { 2504//} 2505 2506/// Multisample state creation flags 2507type VkFlags VkPipelineMultisampleStateCreateFlags 2508//bitfield VkPipelineMultisampleStateCreateFlagBits { 2509//} 2510 2511/// Color blend state creation flags 2512type VkFlags VkPipelineColorBlendStateCreateFlags 2513//bitfield VkPipelineColorBlendStateCreateFlagBits { 2514//} 2515 2516/// Depth/stencil state creation flags 2517type VkFlags VkPipelineDepthStencilStateCreateFlags 2518//bitfield VkPipelineDepthStencilStateCreateFlagBits { 2519//} 2520 2521/// Dynamic state creation flags 2522type VkFlags VkPipelineDynamicStateCreateFlags 2523//bitfield VkPipelineDynamicStateCreateFlagBits { 2524//} 2525 2526/// Pipeline layout creation flags 2527type VkFlags VkPipelineLayoutCreateFlags 2528//bitfield VkPipelineLayoutCreateFlagBits { 2529//} 2530 2531/// Sampler creation flags 2532type VkFlags VkSamplerCreateFlags 2533//bitfield VkSamplerCreateFlagBits { 2534//} 2535 2536/// Render pass creation flags 2537type VkFlags VkRenderPassCreateFlags 2538//bitfield VkRenderPassCreateFlagBits { 2539//} 2540 2541/// Framebuffer creation flags 2542type VkFlags VkFramebufferCreateFlags 2543//bitfield VkFramebufferCreateFlagBits { 2544//} 2545 2546/// Dependency flags 2547type VkFlags VkDependencyFlags 2548bitfield VkDependencyFlagBits { 2549 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, 2550 2551 //@vulkan1_1 2552 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, 2553 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, 2554 2555 //@extension("VK_KHR_multiview") // 54 2556 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002, 2557 2558 //@extension("VK_KHR_device_group") // 61 2559 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004, 2560} 2561 2562/// Cull mode flags 2563type VkFlags VkCullModeFlags 2564bitfield VkCullModeFlagBits { 2565 VK_CULL_MODE_NONE = 0x00000000, 2566 VK_CULL_MODE_FRONT_BIT = 0x00000001, 2567 VK_CULL_MODE_BACK_BIT = 0x00000002, 2568 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003, 2569} 2570 2571//@vulkan1_1 flags 2572 2573/// Subgroup feature flags 2574type VkFlags VkSubgroupFeatureFlags 2575bitfield VkSubgroupFeatureFlagBits { 2576 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001, 2577 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002, 2578 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004, 2579 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008, 2580 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010, 2581 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020, 2582 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040, 2583 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080, 2584} 2585 2586/// Peer memory feature flags 2587type VkFlags VkPeerMemoryFeatureFlags 2588bitfield VkPeerMemoryFeatureFlagBits { 2589 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001, 2590 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002, 2591 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004, 2592 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008, 2593} 2594 2595/// Memory allocation flags 2596type VkFlags VkMemoryAllocateFlags 2597bitfield VkMemoryAllocateFlagBits { 2598 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001, 2599} 2600 2601type VkFlags VkCommandPoolTrimFlags 2602//bitfield VkCommandPoolTrimFlagBits { 2603//} 2604 2605type VkFlags VkDescriptorUpdateTemplateCreateFlags 2606//bitfield VkDescriptorUpdateTemplateCreateFlagBits { 2607//} 2608 2609/// External memory handle type flags 2610type VkFlags VkExternalMemoryHandleTypeFlags 2611bitfield VkExternalMemoryHandleTypeFlagBits { 2612 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, 2613 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, 2614 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, 2615 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008, 2616 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010, 2617 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020, 2618 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040, 2619 2620 //@extension("VK_EXT_external_memory_host") // 179 2621 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, 2622 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, 2623 2624 //@extension("VK_EXT_external_memory_dma_buf") // 126 2625 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200, 2626 2627 //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 2628 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400, 2629} 2630 2631/// External memory feature flags 2632type VkFlags VkExternalMemoryFeatureFlags 2633bitfield VkExternalMemoryFeatureFlagBits { 2634 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001, 2635 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002, 2636 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004, 2637} 2638 2639/// External fence handle type flags 2640type VkFlags VkExternalFenceHandleTypeFlags 2641bitfield VkExternalFenceHandleTypeFlagBits { 2642 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, 2643 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, 2644 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, 2645 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008, 2646} 2647 2648/// External fence feature flags 2649type VkFlags VkExternalFenceFeatureFlags 2650bitfield VkExternalFenceFeatureFlagBits { 2651 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001, 2652 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002, 2653} 2654 2655/// Fence import flags 2656type VkFlags VkFenceImportFlags 2657bitfield VkFenceImportFlagBits { 2658 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001, 2659} 2660 2661/// Semaphore import flags 2662type VkFlags VkSemaphoreImportFlags 2663bitfield VkSemaphoreImportFlagBits { 2664 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001, 2665} 2666 2667/// External semaphore handle type flags 2668type VkFlags VkExternalSemaphoreHandleTypeFlags 2669bitfield VkExternalSemaphoreHandleTypeFlagBits { 2670 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, 2671 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, 2672 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, 2673 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008, 2674 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, 2675} 2676 2677/// External semaphore feature flags 2678type VkFlags VkExternalSemaphoreFeatureFlags 2679bitfield VkExternalSemaphoreFeatureFlagBits { 2680 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001, 2681 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002, 2682} 2683 2684@extension("VK_KHR_surface") // 1 2685type VkFlags VkSurfaceTransformFlagsKHR 2686@extension("VK_KHR_surface") // 1 2687bitfield VkSurfaceTransformFlagBitsKHR { 2688 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, 2689 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, 2690 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, 2691 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, 2692 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, 2693 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, 2694 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, 2695 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, 2696 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, 2697} 2698 2699@extension("VK_KHR_surface") // 1 2700type VkFlags VkCompositeAlphaFlagsKHR 2701@extension("VK_KHR_surface") // 1 2702bitfield VkCompositeAlphaFlagBitsKHR { 2703 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, 2704 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, 2705 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, 2706 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, 2707} 2708 2709@extension("VK_KHR_swapchain") // 2 2710type VkFlags VkSwapchainCreateFlagsKHR 2711@extension("VK_KHR_swapchain") // 2 2712bitfield VkSwapchainCreateFlagBitsKHR { 2713 //@vulkan1_1 2714 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, 2715 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, 2716} 2717 2718@vulkan1_1 2719@extension("VK_KHR_swapchain") // 2 2720type VkFlags VkDeviceGroupPresentModeFlagsKHR 2721@vulkan1_1 2722@extension("VK_KHR_swapchain") // 2 2723bitfield VkDeviceGroupPresentModeFlagBitsKHR { 2724 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001, 2725 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002, 2726 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004, 2727 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008, 2728} 2729 2730@extension("VK_KHR_display") // 3 2731type VkFlags VkDisplayPlaneAlphaFlagsKHR 2732@extension("VK_KHR_display") // 3 2733bitfield VkDisplayPlaneAlphaFlagBitsKHR { 2734 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, 2735 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, 2736 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004, 2737 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008, 2738} 2739 2740@extension("VK_KHR_display") // 3 2741type VkFlags VkDisplaySurfaceCreateFlagsKHR 2742//@extension("VK_KHR_display") // 3 2743//bitfield VkDisplaySurfaceCreateFlagBitsKHR { 2744//} 2745 2746@extension("VK_KHR_display") // 3 2747type VkFlags VkDisplayModeCreateFlagsKHR 2748//@extension("VK_KHR_display") // 3 2749//bitfield VkDisplayModeCreateFlagBitsKHR { 2750//} 2751 2752@extension("VK_KHR_xlib_surface") // 5 2753type VkFlags VkXlibSurfaceCreateFlagsKHR 2754//@extension("VK_KHR_xlib_surface") // 5 2755//bitfield VkXlibSurfaceCreateFlagBitsKHR { 2756//} 2757 2758@extension("VK_KHR_xcb_surface") // 6 2759type VkFlags VkXcbSurfaceCreateFlagsKHR 2760//@extension("VK_KHR_xcb_surface") // 6 2761//bitfield VkXcbSurfaceCreateFlagBitsKHR { 2762//} 2763 2764@extension("VK_KHR_wayland_surface") // 7 2765type VkFlags VkWaylandSurfaceCreateFlagsKHR 2766//@extension("VK_KHR_wayland_surface") // 7 2767//bitfield VkWaylandSurfaceCreateFlagBitsKHR { 2768//} 2769 2770@extension("VK_KHR_mir_surface") // 8 2771type VkFlags VkMirSurfaceCreateFlagsKHR 2772//@extension("VK_KHR_mir_surface") // 8 2773//bitfield VkMirSurfaceCreateFlagBitsKHR { 2774//} 2775 2776@extension("VK_KHR_android_surface") // 9 2777type VkFlags VkAndroidSurfaceCreateFlagsKHR 2778//@extension("VK_KHR_android_surface") // 9 2779//bitfield VkAndroidSurfaceCreateFlagBitsKHR { 2780//} 2781 2782@extension("VK_KHR_win32_surface") // 10 2783type VkFlags VkWin32SurfaceCreateFlagsKHR 2784//@extension("VK_KHR_win32_surface") // 10 2785//bitfield VkWin32SurfaceCreateFlagBitsKHR { 2786//} 2787 2788@extension("VK_ANDROID_native_buffer") // 11 2789type VkFlags VkSwapchainImageUsageFlagsANDROID 2790@extension("VK_ANDROID_native_buffer") // 11 2791bitfield VkSwapchainImageUsageFlagBitsANDROID { 2792 VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001, 2793} 2794 2795@extension("VK_EXT_debug_report") // 12 2796type VkFlags VkDebugReportFlagsEXT 2797@extension("VK_EXT_debug_report") // 12 2798bitfield VkDebugReportFlagBitsEXT { 2799 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, 2800 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002, 2801 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004, 2802 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008, 2803 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010, 2804} 2805 2806@extension("VK_NV_external_memory_capabilities") // 56 2807type VkFlags VkExternalMemoryHandleTypeFlagsNV 2808@extension("VK_NV_external_memory_capabilities") // 56 2809bitfield VkExternalMemoryHandleTypeFlagBitsNV { 2810 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001, 2811 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002, 2812 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004, 2813 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008, 2814} 2815 2816@extension("VK_NV_external_memory_capabilities") // 56 2817type VkFlags VkExternalMemoryFeatureFlagsNV 2818@extension("VK_NV_external_memory_capabilities") // 56 2819bitfield VkExternalMemoryFeatureFlagBitsNV { 2820 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001, 2821 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002, 2822 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004, 2823} 2824 2825@extension("VK_KHR_device_group") // 61 2826type VkFlags VkPeerMemoryFeatureFlagsKHR 2827@extension("VK_KHR_device_group") // 61 2828bitfield VkPeerMemoryFeatureFlagBitsKHR { 2829 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001, 2830 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002, 2831 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004, 2832 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008, 2833} 2834 2835@extension("VK_KHR_device_group") // 61 2836type VkFlags VkMemoryAllocateFlagsKHR 2837@extension("VK_KHR_device_group") // 61 2838bitfield VkMemoryAllocateFlagBitsKHR { 2839 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001, 2840} 2841 2842@extension("VK_NN_vi_surface") // 63 2843type VkFlags VkViSurfaceCreateFlagsNN 2844//@extension("VK_NN_vi_surface") // 63 2845//bitfield VkViSurfaceCreateFlagBitsNN { 2846//} 2847 2848@extension("VK_KHR_maintenance1") // 70 2849type VkFlags VkCommandPoolTrimFlagsKHR 2850//@extension("VK_KHR_maintenance1") // 70 2851//bitfield VkCommandPoolTrimFlagBitsKHR { 2852//} 2853 2854@extension("VK_KHR_external_memory_capabilities") // 72 2855type VkFlags VkExternalMemoryHandleTypeFlagsKHR 2856@extension("VK_KHR_external_memory_capabilities") // 72 2857bitfield VkExternalMemoryHandleTypeFlagBitsKHR { 2858 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, 2859 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, 2860 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, 2861 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008, 2862 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010, 2863 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020, 2864 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040, 2865} 2866 2867@extension("VK_KHR_external_memory_capabilities") // 72 2868type VkFlags VkExternalMemoryFeatureFlagsKHR 2869@extension("VK_KHR_external_memory_capabilities") // 72 2870bitfield VkExternalMemoryFeatureFlagBitsKHR { 2871 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001, 2872 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002, 2873 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004, 2874} 2875 2876@extension("VK_KHR_external_semaphore_capabilities") // 77 2877type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR 2878@extension("VK_KHR_external_semaphore_capabilities") // 77 2879bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR { 2880 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001 2881 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002 2882 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004 2883 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008 2884 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010 2885} 2886 2887@extension("VK_KHR_external_semaphore_capabilities") // 77 2888type VkFlags VkExternalSemaphoreFeatureFlagsKHR 2889@extension("VK_KHR_external_semaphore_capabilities") // 77 2890bitfield VkExternalSemaphoreFeatureFlagBitsKHR { 2891 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001, 2892 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002, 2893} 2894 2895@extension("VK_KHR_external_semaphore") // 78 2896type VkFlags VkSemaphoreImportFlagsKHR 2897@extension("VK_KHR_external_semaphore") // 78 2898bitfield VkSemaphoreImportFlagBitsKHR { 2899 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001, 2900} 2901 2902@extension("VK_KHR_descriptor_update_template") // 86 2903type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR 2904//@extension("VK_KHR_descriptor_update_template") // 86 2905//bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR { 2906//} 2907 2908@extension("VK_NVX_device_generated_commands") // 87 2909type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX 2910@extension("VK_NVX_device_generated_commands") // 87 2911bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX { 2912 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001, 2913 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002, 2914 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004, 2915 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008, 2916} 2917 2918@extension("VK_NVX_device_generated_commands") // 87 2919type VkFlags VkObjectEntryUsageFlagsNVX 2920@extension("VK_NVX_device_generated_commands") // 87 2921bitfield VkObjectEntryUsageFlagBitsNVX { 2922 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001, 2923 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002, 2924} 2925 2926@extension("VK_EXT_display_surface_counter") // 91 2927type VkFlags VkSurfaceCounterFlagsEXT 2928@extension("VK_EXT_display_surface_counter") // 91 2929bitfield VkSurfaceCounterFlagBitsEXT { 2930 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001, 2931} 2932 2933@extension("VK_NV_viewport_swizzle") // 99 2934type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV 2935//@extension("VK_NV_viewport_swizzle") // 99 2936//bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV { 2937//} 2938 2939@extension("VK_EXT_discard_rectangles") // 100 2940type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT 2941//@extension("VK_EXT_discard_rectangles") // 100 2942//bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT { 2943//} 2944 2945@extension("VK_EXT_conservative_rasterization") // 102 2946type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT 2947//@extension("VK_EXT_conservative_rasterization") // 102 2948//bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT { 2949//} 2950 2951@extension("VK_KHR_external_fence_capabilities") // 113 2952type VkFlags VkExternalFenceHandleTypeFlagsKHR 2953@extension("VK_KHR_external_fence_capabilities") // 113 2954bitfield VkExternalFenceHandleTypeFlagBitsKHR { 2955 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, 2956 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, 2957 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, 2958 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008, 2959} 2960 2961@extension("VK_KHR_external_fence_capabilities") // 113 2962type VkFlags VkExternalFenceFeatureFlagsKHR 2963@extension("VK_KHR_external_fence_capabilities") // 113 2964bitfield VkExternalFenceFeatureFlagBitsKHR { 2965 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001, 2966 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002, 2967} 2968 2969@extension("VK_KHR_external_fence") // 114 2970type VkFlags VkFenceImportFlagsKHR 2971@extension("VK_KHR_external_fence") // 114 2972bitfield VkFenceImportFlagBitsKHR { 2973 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001, 2974} 2975 2976@extension("VK_MVK_ios_surface") // 123 2977type VkFlags VkIOSSurfaceCreateFlagsMVK 2978//@extension("VK_MVK_ios_surface") // 123 2979//bitfield VkIOSSurfaceCreateFlagBitsMVK { 2980//} 2981 2982@extension("VK_MVK_macos_surface") // 124 2983type VkFlags VkMacOSSurfaceCreateFlagsMVK 2984//@extension("VK_MVK_macos_surface") // 124 2985//bitfield VkMacOSSurfaceCreateFlagBitsMVK { 2986//} 2987 2988@extension("VK_EXT_debug_utils") // 129 2989type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT 2990//@extension("VK_EXT_debug_utils") // 129 2991//bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT { 2992//} 2993 2994@extension("VK_EXT_debug_utils") // 129 2995type VkFlags VkDebugUtilsMessengerCreateFlagsEXT 2996//@extension("VK_EXT_debug_utils") // 129 2997//bitfield VkDebugUtilsMessengerCreateFlagBitsEXT { 2998//} 2999 3000@extension("VK_EXT_debug_utils") // 129 3001type VkFlags VkDebugUtilsMessageSeverityFlagsEXT 3002@extension("VK_EXT_debug_utils") // 129 3003bitfield VkDebugUtilsMessageSeverityFlagBitsEXT { 3004 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001, 3005 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010, 3006 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100, 3007 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000, 3008} 3009 3010@extension("VK_EXT_debug_utils") // 129 3011type VkFlags VkDebugUtilsMessageTypeFlagsEXT 3012@extension("VK_EXT_debug_utils") // 129 3013bitfield VkDebugUtilsMessageTypeFlagBitsEXT { 3014 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001, 3015 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002, 3016 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004, 3017} 3018 3019@extension("VK_NV_fragment_coverage_to_color") // 150 3020type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV 3021@extension("VK_NV_fragment_coverage_to_color") // 150 3022//bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV { 3023//} 3024 3025@extension("VK_NV_framebuffer_mixed_samples") // 153 3026type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV 3027@extension("VK_NV_framebuffer_mixed_samples") // 153 3028//bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV { 3029//} 3030 3031@extension("VK_EXT_validation_cache") // 161 3032type VkFlags VkValidationCacheCreateFlagsEXT 3033@extension("VK_EXT_validation_cache") // 161 3034//bitfield VkValidationCacheCreateFlagBitsEXT { 3035//} 3036 3037////////////////// 3038// Structures // 3039////////////////// 3040 3041class VkOffset2D { 3042 s32 x 3043 s32 y 3044} 3045 3046class VkOffset3D { 3047 s32 x 3048 s32 y 3049 s32 z 3050} 3051 3052class VkExtent2D { 3053 u32 width 3054 u32 height 3055} 3056 3057class VkExtent3D { 3058 u32 width 3059 u32 height 3060 u32 depth 3061} 3062 3063class VkViewport { 3064 f32 x 3065 f32 y 3066 f32 width 3067 f32 height 3068 f32 minDepth 3069 f32 maxDepth 3070} 3071 3072class VkRect2D { 3073 VkOffset2D offset 3074 VkExtent2D extent 3075} 3076 3077class VkClearRect { 3078 VkRect2D rect 3079 u32 baseArrayLayer 3080 u32 layerCount 3081} 3082 3083class VkComponentMapping { 3084 VkComponentSwizzle r 3085 VkComponentSwizzle g 3086 VkComponentSwizzle b 3087 VkComponentSwizzle a 3088} 3089 3090class VkPhysicalDeviceProperties { 3091 u32 apiVersion 3092 u32 driverVersion 3093 u32 vendorID 3094 u32 deviceID 3095 VkPhysicalDeviceType deviceType 3096 char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName 3097 u8[VK_UUID_SIZE] pipelineCacheUUID 3098 VkPhysicalDeviceLimits limits 3099 VkPhysicalDeviceSparseProperties sparseProperties 3100} 3101 3102class VkExtensionProperties { 3103 char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name 3104 u32 specVersion /// version of the extension specification implemented 3105} 3106 3107class VkLayerProperties { 3108 char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name 3109 u32 specVersion /// version of the layer specification implemented 3110 u32 implementationVersion /// build or release version of the layer's library 3111 char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer 3112} 3113 3114class VkSubmitInfo { 3115 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO 3116 const void* pNext /// Next structure in chain 3117 u32 waitSemaphoreCount 3118 const VkSemaphore* pWaitSemaphores 3119 const VkPipelineStageFlags* pWaitDstStageMask 3120 u32 commandBufferCount 3121 const VkCommandBuffer* pCommandBuffers 3122 u32 signalSemaphoreCount 3123 const VkSemaphore* pSignalSemaphores 3124} 3125 3126class VkApplicationInfo { 3127 VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO 3128 const void* pNext /// Next structure in chain 3129 const char* pApplicationName 3130 u32 applicationVersion 3131 const char* pEngineName 3132 u32 engineVersion 3133 u32 apiVersion 3134} 3135 3136class VkAllocationCallbacks { 3137 void* pUserData 3138 PFN_vkAllocationFunction pfnAllocation 3139 PFN_vkReallocationFunction pfnReallocation 3140 PFN_vkFreeFunction pfnFree 3141 PFN_vkInternalAllocationNotification pfnInternalAllocation 3142 PFN_vkInternalFreeNotification pfnInternalFree 3143} 3144 3145class VkDeviceQueueCreateInfo { 3146 VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO 3147 const void* pNext /// Pointer to next structure 3148 VkDeviceQueueCreateFlags flags 3149 u32 queueFamilyIndex 3150 u32 queueCount 3151 const f32* pQueuePriorities 3152} 3153 3154class VkDeviceCreateInfo { 3155 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO 3156 const void* pNext /// Pointer to next structure 3157 VkDeviceCreateFlags flags 3158 u32 queueCreateInfoCount 3159 const VkDeviceQueueCreateInfo* pQueueCreateInfos 3160 u32 enabledLayerCount 3161 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled 3162 u32 enabledExtensionCount 3163 const char* const* ppEnabledExtensionNames 3164 const VkPhysicalDeviceFeatures* pEnabledFeatures 3165} 3166 3167class VkInstanceCreateInfo { 3168 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO 3169 const void* pNext /// Pointer to next structure 3170 VkInstanceCreateFlags flags 3171 const VkApplicationInfo* pApplicationInfo 3172 u32 enabledLayerCount 3173 const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled 3174 u32 enabledExtensionCount 3175 const char* const* ppEnabledExtensionNames /// Extension names to be enabled 3176} 3177 3178class VkQueueFamilyProperties { 3179 VkQueueFlags queueFlags /// Queue flags 3180 u32 queueCount 3181 u32 timestampValidBits 3182 VkExtent3D minImageTransferGranularity 3183} 3184 3185class VkPhysicalDeviceMemoryProperties { 3186 u32 memoryTypeCount 3187 VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes 3188 u32 memoryHeapCount 3189 VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps 3190} 3191 3192class VkMemoryAllocateInfo { 3193 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO 3194 const void* pNext /// Pointer to next structure 3195 VkDeviceSize allocationSize /// Size of memory allocation 3196 u32 memoryTypeIndex /// Index of the of the memory type to allocate from 3197} 3198 3199class VkMemoryRequirements { 3200 VkDeviceSize size /// Specified in bytes 3201 VkDeviceSize alignment /// Specified in bytes 3202 u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object 3203} 3204 3205class VkSparseImageFormatProperties { 3206 VkImageAspectFlagBits aspectMask 3207 VkExtent3D imageGranularity 3208 VkSparseImageFormatFlags flags 3209} 3210 3211class VkSparseImageMemoryRequirements { 3212 VkSparseImageFormatProperties formatProperties 3213 u32 imageMipTailFirstLod 3214 VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment 3215 VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment 3216 VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment 3217} 3218 3219class VkMemoryType { 3220 VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type 3221 u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from 3222} 3223 3224class VkMemoryHeap { 3225 VkDeviceSize size /// Available memory in the heap 3226 VkMemoryHeapFlags flags /// Flags for the heap 3227} 3228 3229class VkMappedMemoryRange { 3230 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE 3231 const void* pNext /// Pointer to next structure 3232 VkDeviceMemory memory /// Mapped memory object 3233 VkDeviceSize offset /// Offset within the mapped memory the range starts from 3234 VkDeviceSize size /// Size of the range within the mapped memory 3235} 3236 3237class VkFormatProperties { 3238 VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling 3239 VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling 3240 VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers 3241} 3242 3243class VkImageFormatProperties { 3244 VkExtent3D maxExtent /// max image dimensions for this resource type 3245 u32 maxMipLevels /// max number of mipmap levels for this resource type 3246 u32 maxArrayLayers /// max array layers for this resource type 3247 VkSampleCountFlags sampleCounts /// supported sample counts for this resource type 3248 VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type 3249} 3250 3251class VkDescriptorImageInfo { 3252 VkSampler sampler 3253 VkImageView imageView 3254 VkImageLayout imageLayout 3255} 3256 3257class VkDescriptorBufferInfo { 3258 VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC] 3259 VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set. 3260 VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update. 3261} 3262 3263class VkWriteDescriptorSet { 3264 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET 3265 const void* pNext /// Pointer to next structure 3266 VkDescriptorSet dstSet /// Destination descriptor set 3267 u32 dstBinding /// Binding within the destination descriptor set to write 3268 u32 dstArrayElement /// Array element within the destination binding to write 3269 u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>) 3270 VkDescriptorType descriptorType /// Descriptor type to write (determines which fields of the array pointed by <pDescriptors> are going to be used) 3271 const VkDescriptorImageInfo* pImageInfo 3272 const VkDescriptorBufferInfo* pBufferInfo 3273 const VkBufferView* pTexelBufferView 3274} 3275 3276class VkCopyDescriptorSet { 3277 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET 3278 const void* pNext /// Pointer to next structure 3279 VkDescriptorSet srcSet /// Source descriptor set 3280 u32 srcBinding /// Binding within the source descriptor set to copy from 3281 u32 srcArrayElement /// Array element within the source binding to copy from 3282 VkDescriptorSet dstSet /// Destination descriptor set 3283 u32 dstBinding /// Binding within the destination descriptor set to copy to 3284 u32 dstArrayElement /// Array element within the destination binding to copy to 3285 u32 descriptorCount /// Number of descriptors to copy 3286} 3287 3288class VkBufferCreateInfo { 3289 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO 3290 const void* pNext /// Pointer to next structure. 3291 VkBufferCreateFlags flags /// Buffer creation flags 3292 VkDeviceSize size /// Specified in bytes 3293 VkBufferUsageFlags usage /// Buffer usage flags 3294 VkSharingMode sharingMode 3295 u32 queueFamilyIndexCount 3296 const u32* pQueueFamilyIndices 3297} 3298 3299class VkBufferViewCreateInfo { 3300 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO 3301 const void* pNext /// Pointer to next structure. 3302 VkBufferViewCreateFlags flags 3303 VkBuffer buffer 3304 VkFormat format /// Optionally specifies format of elements 3305 VkDeviceSize offset /// Specified in bytes 3306 VkDeviceSize range /// View size specified in bytes 3307} 3308 3309class VkImageSubresource { 3310 VkImageAspectFlagBits aspectMask 3311 u32 mipLevel 3312 u32 arrayLayer 3313} 3314 3315class VkImageSubresourceRange { 3316 VkImageAspectFlags aspectMask 3317 u32 baseMipLevel 3318 u32 levelCount 3319 u32 baseArrayLayer 3320 u32 layerCount 3321} 3322 3323class VkMemoryBarrier { 3324 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER 3325 const void* pNext /// Pointer to next structure. 3326 VkAccessFlags srcAccessMask 3327 VkAccessFlags dstAccessMask 3328} 3329 3330class VkBufferMemoryBarrier { 3331 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER 3332 const void* pNext /// Pointer to next structure. 3333 VkAccessFlags srcAccessMask 3334 VkAccessFlags dstAccessMask 3335 u32 srcQueueFamilyIndex /// Queue family to transition ownership from 3336 u32 dstQueueFamilyIndex /// Queue family to transition ownership to 3337 VkBuffer buffer /// Buffer to sync 3338 VkDeviceSize offset /// Offset within the buffer to sync 3339 VkDeviceSize size /// Amount of bytes to sync 3340} 3341 3342class VkImageMemoryBarrier { 3343 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER 3344 const void* pNext /// Pointer to next structure. 3345 VkAccessFlags srcAccessMask 3346 VkAccessFlags dstAccessMask 3347 VkImageLayout oldLayout /// Current layout of the image 3348 VkImageLayout newLayout /// New layout to transition the image to 3349 u32 srcQueueFamilyIndex /// Queue family to transition ownership from 3350 u32 dstQueueFamilyIndex /// Queue family to transition ownership to 3351 VkImage image /// Image to sync 3352 VkImageSubresourceRange subresourceRange /// Subresource range to sync 3353} 3354 3355class VkImageCreateInfo { 3356 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO 3357 const void* pNext /// Pointer to next structure. 3358 VkImageCreateFlags flags /// Image creation flags 3359 VkImageType imageType 3360 VkFormat format 3361 VkExtent3D extent 3362 u32 mipLevels 3363 u32 arrayLayers 3364 VkSampleCountFlagBits samples 3365 VkImageTiling tiling 3366 VkImageUsageFlags usage /// Image usage flags 3367 VkSharingMode sharingMode /// Cross-queue-family sharing mode 3368 u32 queueFamilyIndexCount /// Number of queue families to share across 3369 const u32* pQueueFamilyIndices /// Array of queue family indices to share across 3370 VkImageLayout initialLayout /// Initial image layout for all subresources 3371} 3372 3373class VkSubresourceLayout { 3374 VkDeviceSize offset /// Specified in bytes 3375 VkDeviceSize size /// Specified in bytes 3376 VkDeviceSize rowPitch /// Specified in bytes 3377 VkDeviceSize arrayPitch /// Specified in bytes 3378 VkDeviceSize depthPitch /// Specified in bytes 3379} 3380 3381class VkImageViewCreateInfo { 3382 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO 3383 const void* pNext /// Pointer to next structure 3384 VkImageViewCreateFlags flags 3385 VkImage image 3386 VkImageViewType viewType 3387 VkFormat format 3388 VkComponentMapping components 3389 VkImageSubresourceRange subresourceRange 3390} 3391 3392class VkBufferCopy { 3393 VkDeviceSize srcOffset /// Specified in bytes 3394 VkDeviceSize dstOffset /// Specified in bytes 3395 VkDeviceSize size /// Specified in bytes 3396} 3397 3398class VkSparseMemoryBind { 3399 VkDeviceSize resourceOffset /// Specified in bytes 3400 VkDeviceSize size /// Specified in bytes 3401 VkDeviceMemory memory 3402 VkDeviceSize memoryOffset /// Specified in bytes 3403 VkSparseMemoryBindFlags flags 3404} 3405 3406class VkSparseImageMemoryBind { 3407 VkImageSubresource subresource 3408 VkOffset3D offset 3409 VkExtent3D extent 3410 VkDeviceMemory memory 3411 VkDeviceSize memoryOffset /// Specified in bytes 3412 VkSparseMemoryBindFlags flags 3413} 3414 3415class VkSparseBufferMemoryBindInfo { 3416 VkBuffer buffer 3417 u32 bindCount 3418 const VkSparseMemoryBind* pBinds 3419} 3420 3421class VkSparseImageOpaqueMemoryBindInfo { 3422 VkImage image 3423 u32 bindCount 3424 const VkSparseMemoryBind* pBinds 3425} 3426 3427class VkSparseImageMemoryBindInfo { 3428 VkImage image 3429 u32 bindCount 3430 const VkSparseMemoryBind* pBinds 3431} 3432 3433class VkBindSparseInfo { 3434 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO 3435 const void* pNext 3436 u32 waitSemaphoreCount 3437 const VkSemaphore* pWaitSemaphores 3438 u32 numBufferBinds 3439 const VkSparseBufferMemoryBindInfo* pBufferBinds 3440 u32 numImageOpaqueBinds 3441 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds 3442 u32 numImageBinds 3443 const VkSparseImageMemoryBindInfo* pImageBinds 3444 u32 signalSemaphoreCount 3445 const VkSemaphore* pSignalSemaphores 3446} 3447 3448class VkImageSubresourceLayers { 3449 VkImageAspectFlags aspectMask 3450 u32 mipLevel 3451 u32 baseArrayLayer 3452 u32 layerCount 3453} 3454 3455class VkImageCopy { 3456 VkImageSubresourceLayers srcSubresource 3457 VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images 3458 VkImageSubresourceLayers dstSubresource 3459 VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images 3460 VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images 3461} 3462 3463class VkImageBlit { 3464 VkImageSubresourceLayers srcSubresource 3465 VkOffset3D[2] srcOffsets 3466 VkImageSubresourceLayers dstSubresource 3467 VkOffset3D[2] dstOffsets 3468} 3469 3470class VkBufferImageCopy { 3471 VkDeviceSize bufferOffset /// Specified in bytes 3472 u32 bufferRowLength /// Specified in texels 3473 u32 bufferImageHeight 3474 VkImageSubresourceLayers imageSubresource 3475 VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images 3476 VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images 3477} 3478 3479class VkImageResolve { 3480 VkImageSubresourceLayers srcSubresource 3481 VkOffset3D srcOffset 3482 VkImageSubresourceLayers dstSubresource 3483 VkOffset3D dstOffset 3484 VkExtent3D extent 3485} 3486 3487class VkShaderModuleCreateInfo { 3488 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO 3489 const void* pNext /// Pointer to next structure 3490 VkShaderModuleCreateFlags flags /// Reserved 3491 platform.size_t codeSize /// Specified in bytes 3492 const u32* pCode /// Binary code of size codeSize 3493} 3494 3495class VkDescriptorSetLayoutBinding { 3496 u32 binding 3497 VkDescriptorType descriptorType /// Type of the descriptors in this binding 3498 u32 descriptorCount /// Number of descriptors in this binding 3499 VkShaderStageFlags stageFlags /// Shader stages this binding is visible to 3500 const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements) 3501} 3502 3503class VkDescriptorSetLayoutCreateInfo { 3504 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO 3505 const void* pNext /// Pointer to next structure 3506 VkDescriptorSetLayoutCreateFlags flags 3507 u32 bindingCount /// Number of bindings in the descriptor set layout 3508 const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings 3509} 3510 3511class VkDescriptorPoolSize { 3512 VkDescriptorType type 3513 u32 descriptorCount 3514} 3515 3516class VkDescriptorPoolCreateInfo { 3517 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO 3518 const void* pNext /// Pointer to next structure 3519 VkDescriptorPoolCreateFlags flags 3520 u32 maxSets 3521 u32 poolSizeCount 3522 const VkDescriptorPoolSize* pPoolSizes 3523} 3524 3525class VkDescriptorSetAllocateInfo { 3526 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO 3527 const void* pNext /// Pointer to next structure 3528 VkDescriptorPool descriptorPool 3529 u32 setCount 3530 const VkDescriptorSetLayout* pSetLayouts 3531} 3532 3533class VkSpecializationMapEntry { 3534 u32 constantID /// The SpecConstant ID specified in the BIL 3535 u32 offset /// Offset of the value in the data block 3536 platform.size_t size /// Size in bytes of the SpecConstant 3537} 3538 3539class VkSpecializationInfo { 3540 u32 mapEntryCount /// Number of entries in the map 3541 const VkSpecializationMapEntry* pMapEntries /// Array of map entries 3542 platform.size_t dataSize /// Size in bytes of pData 3543 const void* pData /// Pointer to SpecConstant data 3544} 3545 3546class VkPipelineShaderStageCreateInfo { 3547 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO 3548 const void* pNext /// Pointer to next structure 3549 VkPipelineShaderStageCreateFlags flags 3550 VkShaderStageFlagBits stage 3551 VkShaderModule module 3552 const char* pName 3553 const VkSpecializationInfo* pSpecializationInfo 3554} 3555 3556class VkComputePipelineCreateInfo { 3557 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO 3558 const void* pNext /// Pointer to next structure 3559 VkPipelineCreateFlags flags /// Pipeline creation flags 3560 VkPipelineShaderStageCreateInfo stage 3561 VkPipelineLayout layout /// Interface layout of the pipeline 3562 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 3563 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 3564} 3565 3566class VkVertexInputBindingDescription { 3567 u32 binding /// Vertex buffer binding id 3568 u32 stride /// Distance between vertices in bytes (0 = no advancement) 3569 VkVertexInputRate inputRate /// Rate at which binding is incremented 3570} 3571 3572class VkVertexInputAttributeDescription { 3573 u32 location /// location of the shader vertex attrib 3574 u32 binding /// Vertex buffer binding id 3575 VkFormat format /// format of source data 3576 u32 offset /// Offset of first element in bytes from base of vertex 3577} 3578 3579class VkPipelineVertexInputStateCreateInfo { 3580 VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO 3581 const void* pNext /// Pointer to next structure 3582 VkPipelineVertexInputStateCreateFlags flags 3583 u32 vertexBindingDescriptionCount /// number of bindings 3584 const VkVertexInputBindingDescription* pVertexBindingDescriptions 3585 u32 vertexAttributeDescriptionCount /// number of attributes 3586 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions 3587} 3588 3589class VkPipelineInputAssemblyStateCreateInfo { 3590 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO 3591 const void* pNext /// Pointer to next structure 3592 VkPipelineInputAssemblyStateCreateFlags flags 3593 VkPrimitiveTopology topology 3594 VkBool32 primitiveRestartEnable 3595} 3596 3597class VkPipelineTessellationStateCreateInfo { 3598 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO 3599 const void* pNext /// Pointer to next structure 3600 VkPipelineTessellationStateCreateFlags flags 3601 u32 patchControlPoints 3602} 3603 3604class VkPipelineViewportStateCreateInfo { 3605 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO 3606 const void* pNext /// Pointer to next structure 3607 VkPipelineViewportStateCreateFlags flags 3608 u32 viewportCount 3609 const VkViewport* pViewports 3610 u32 scissorCount 3611 const VkRect2D* pScissors 3612} 3613 3614class VkPipelineRasterizationStateCreateInfo { 3615 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO 3616 const void* pNext /// Pointer to next structure 3617 VkPipelineRasterizationStateCreateFlags flags 3618 VkBool32 depthClampEnable 3619 VkBool32 rasterizerDiscardEnable 3620 VkPolygonMode polygonMode /// optional (GL45) 3621 VkCullModeFlags cullMode 3622 VkFrontFace frontFace 3623 VkBool32 depthBiasEnable 3624 f32 depthBiasConstantFactor 3625 f32 depthBiasClamp 3626 f32 depthBiasSlopeFactor 3627 f32 lineWidth 3628} 3629 3630class VkPipelineMultisampleStateCreateInfo { 3631 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO 3632 const void* pNext /// Pointer to next structure 3633 VkPipelineMultisampleStateCreateFlags flags 3634 VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization 3635 VkBool32 sampleShadingEnable /// optional (GL45) 3636 f32 minSampleShading /// optional (GL45) 3637 const VkSampleMask* pSampleMask 3638 VkBool32 alphaToCoverageEnable 3639 VkBool32 alphaToOneEnable 3640} 3641 3642class VkPipelineColorBlendAttachmentState { 3643 VkBool32 blendEnable 3644 VkBlendFactor srcColorBlendFactor 3645 VkBlendFactor dstColorBlendFactor 3646 VkBlendOp colorBlendOp 3647 VkBlendFactor srcAlphaBlendFactor 3648 VkBlendFactor dstAlphaBlendFactor 3649 VkBlendOp alphaBlendOp 3650 VkColorComponentFlags colorWriteMask 3651} 3652 3653class VkPipelineColorBlendStateCreateInfo { 3654 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO 3655 const void* pNext /// Pointer to next structure 3656 VkPipelineColorBlendStateCreateFlags flags 3657 VkBool32 logicOpEnable 3658 VkLogicOp logicOp 3659 u32 attachmentCount /// # of pAttachments 3660 const VkPipelineColorBlendAttachmentState* pAttachments 3661 f32[4] blendConstants 3662} 3663 3664class VkStencilOpState { 3665 VkStencilOp failOp 3666 VkStencilOp passOp 3667 VkStencilOp depthFailOp 3668 VkCompareOp compareOp 3669 u32 compareMask 3670 u32 writeMask 3671 u32 reference 3672} 3673 3674class VkPipelineDepthStencilStateCreateInfo { 3675 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO 3676 const void* pNext /// Pointer to next structure 3677 VkPipelineDepthStencilStateCreateFlags flags 3678 VkBool32 depthTestEnable 3679 VkBool32 depthWriteEnable 3680 VkCompareOp depthCompareOp 3681 VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test) 3682 VkBool32 stencilTestEnable 3683 VkStencilOpState front 3684 VkStencilOpState back 3685 f32 minDepthBounds 3686 f32 maxDepthBounds 3687} 3688 3689class VkPipelineDynamicStateCreateInfo { 3690 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO 3691 const void* pNext /// Pointer to next structure 3692 VkPipelineDynamicStateCreateFlags flags 3693 u32 dynamicStateCount 3694 const VkDynamicState* pDynamicStates 3695} 3696 3697class VkGraphicsPipelineCreateInfo { 3698 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO 3699 const void* pNext /// Pointer to next structure 3700 VkPipelineCreateFlags flags /// Pipeline creation flags 3701 u32 stageCount 3702 const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage 3703 const VkPipelineVertexInputStateCreateInfo* pVertexInputState 3704 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState 3705 const VkPipelineTessellationStateCreateInfo* pTessellationState 3706 const VkPipelineViewportStateCreateInfo* pViewportState 3707 const VkPipelineRasterizationStateCreateInfo* pRasterizationState 3708 const VkPipelineMultisampleStateCreateInfo* pMultisampleState 3709 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState 3710 const VkPipelineColorBlendStateCreateInfo* pColorBlendState 3711 const VkPipelineDynamicStateCreateInfo* pDynamicState 3712 VkPipelineLayout layout /// Interface layout of the pipeline 3713 VkRenderPass renderPass 3714 u32 subpass 3715 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 3716 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 3717} 3718 3719class VkPipelineCacheCreateInfo { 3720 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO 3721 const void* pNext /// Pointer to next structure 3722 VkPipelineCacheCreateFlags flags 3723 platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes 3724 const void* pInitialData /// Initial data to populate cache 3725} 3726 3727class VkPushConstantRange { 3728 VkShaderStageFlags stageFlags /// Which stages use the range 3729 u32 offset /// Start of the range, in bytes 3730 u32 size /// Length of the range, in bytes 3731} 3732 3733class VkPipelineLayoutCreateInfo { 3734 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO 3735 const void* pNext /// Pointer to next structure 3736 VkPipelineLayoutCreateFlags flags 3737 u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline 3738 const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the 3739 u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline 3740 const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages 3741} 3742 3743class VkSamplerCreateInfo { 3744 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO 3745 const void* pNext /// Pointer to next structure 3746 VkSamplerCreateFlags flags 3747 VkFilter magFilter /// Filter mode for magnification 3748 VkFilter minFilter /// Filter mode for minifiation 3749 VkSamplerMipmapMode mipmapMode /// Mipmap selection mode 3750 VkSamplerAddressMode addressModeU 3751 VkSamplerAddressMode addressModeV 3752 VkSamplerAddressMode addressModeW 3753 f32 mipLodBias 3754 VkBool32 anisotropyEnable 3755 f32 maxAnisotropy 3756 VkBool32 compareEnable 3757 VkCompareOp compareOp 3758 f32 minLod 3759 f32 maxLod 3760 VkBorderColor borderColor 3761 VkBool32 unnormalizedCoordinates 3762} 3763 3764class VkCommandPoolCreateInfo { 3765 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO 3766 const void* pNext /// Pointer to next structure 3767 VkCommandPoolCreateFlags flags /// Command pool creation flags 3768 u32 queueFamilyIndex 3769} 3770 3771class VkCommandBufferAllocateInfo { 3772 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO 3773 const void* pNext /// Pointer to next structure 3774 VkCommandPool commandPool 3775 VkCommandBufferLevel level 3776 u32 commandBufferCount 3777} 3778 3779class VkCommandBufferInheritanceInfo { 3780 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO 3781 const void* pNext /// Pointer to next structure 3782 VkRenderPass renderPass /// Render pass for secondary command buffers 3783 u32 subpass 3784 VkFramebuffer framebuffer /// Framebuffer for secondary command buffers 3785 VkBool32 occlusionQueryEnable 3786 VkQueryControlFlags queryFlags 3787 VkQueryPipelineStatisticFlags pipelineStatistics 3788} 3789 3790class VkCommandBufferBeginInfo { 3791 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO 3792 const void* pNext /// Pointer to next structure 3793 VkCommandBufferUsageFlags flags /// Command buffer usage flags 3794 const VkCommandBufferInheritanceInfo* pInheritanceInfo 3795} 3796 3797class VkRenderPassBeginInfo { 3798 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO 3799 const void* pNext /// Pointer to next structure 3800 VkRenderPass renderPass 3801 VkFramebuffer framebuffer 3802 VkRect2D renderArea 3803 u32 clearValueCount 3804 const VkClearValue* pClearValues 3805} 3806 3807@union 3808/// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared. 3809class VkClearColorValue { 3810 f32[4] float32 3811 s32[4] int32 3812 u32[4] uint32 3813} 3814 3815class VkClearDepthStencilValue { 3816 f32 depth 3817 u32 stencil 3818} 3819 3820@union 3821/// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared. 3822class VkClearValue { 3823 VkClearColorValue color 3824 VkClearDepthStencilValue depthStencil 3825} 3826 3827class VkClearAttachment { 3828 VkImageAspectFlags aspectMask 3829 u32 colorAttachment 3830 VkClearValue clearValue 3831} 3832 3833class VkAttachmentDescription { 3834 VkAttachmentDescriptionFlags flags 3835 VkFormat format 3836 VkSampleCountFlagBits samples 3837 VkAttachmentLoadOp loadOp /// Load op for color or depth data 3838 VkAttachmentStoreOp storeOp /// Store op for color or depth data 3839 VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data 3840 VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data 3841 VkImageLayout initialLayout 3842 VkImageLayout finalLayout 3843} 3844 3845class VkAttachmentReference { 3846 u32 attachment 3847 VkImageLayout layout 3848} 3849 3850class VkSubpassDescription { 3851 VkSubpassDescriptionFlags flags 3852 VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now 3853 u32 inputAttachmentCount 3854 const VkAttachmentReference* pInputAttachments 3855 u32 colorAttachmentCount 3856 const VkAttachmentReference* pColorAttachments 3857 const VkAttachmentReference* pResolveAttachments 3858 const VkAttachmentReference* pDepthStencilAttachment 3859 u32 preserveAttachmentCount 3860 const u32* pPreserveAttachments 3861} 3862 3863class VkSubpassDependency { 3864 u32 srcSubpass 3865 u32 dstSubpass 3866 VkPipelineStageFlags srcStageMask 3867 VkPipelineStageFlags dstStageMask 3868 VkAccessFlags srcAccessMask 3869 VkAccessFlags dstAccessMask 3870 VkDependencyFlags dependencyFlags 3871} 3872 3873class VkRenderPassCreateInfo { 3874 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO 3875 const void* pNext /// Pointer to next structure 3876 VkRenderPassCreateFlags flags 3877 u32 attachmentCount 3878 const VkAttachmentDescription* pAttachments 3879 u32 subpassCount 3880 const VkSubpassDescription* pSubpasses 3881 u32 dependencyCount 3882 const VkSubpassDependency* pDependencies 3883} 3884 3885class VkEventCreateInfo { 3886 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO 3887 const void* pNext /// Pointer to next structure 3888 VkEventCreateFlags flags /// Event creation flags 3889} 3890 3891class VkFenceCreateInfo { 3892 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO 3893 const void* pNext /// Pointer to next structure 3894 VkFenceCreateFlags flags /// Fence creation flags 3895} 3896 3897class VkPhysicalDeviceFeatures { 3898 VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined 3899 VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls 3900 VkBool32 imageCubeArray /// image views which are arrays of cube maps 3901 VkBool32 independentBlend /// blending operations are controlled per-attachment 3902 VkBool32 geometryShader /// geometry stage 3903 VkBool32 tessellationShader /// tessellation control and evaluation stage 3904 VkBool32 sampleRateShading /// per-sample shading and interpolation 3905 VkBool32 dualSrcBlend /// blend operations which take two sources 3906 VkBool32 logicOp /// logic operations 3907 VkBool32 multiDrawIndirect /// multi draw indirect 3908 VkBool32 drawIndirectFirstInstance 3909 VkBool32 depthClamp /// depth clamping 3910 VkBool32 depthBiasClamp /// depth bias clamping 3911 VkBool32 fillModeNonSolid /// point and wireframe fill modes 3912 VkBool32 depthBounds /// depth bounds test 3913 VkBool32 wideLines /// lines with width greater than 1 3914 VkBool32 largePoints /// points with size greater than 1 3915 VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value 3916 VkBool32 multiViewport 3917 VkBool32 samplerAnisotropy 3918 VkBool32 textureCompressionETC2 /// ETC texture compression formats 3919 VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats 3920 VkBool32 textureCompressionBC /// BC1-7 texture compressed formats 3921 VkBool32 occlusionQueryPrecise 3922 VkBool32 pipelineStatisticsQuery /// pipeline statistics query 3923 VkBool32 vertexPipelineStoresAndAtomics 3924 VkBool32 fragmentStoresAndAtomics 3925 VkBool32 shaderTessellationAndGeometryPointSize 3926 VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets 3927 VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images 3928 VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images 3929 VkBool32 shaderStorageImageReadWithoutFormat 3930 VkBool32 shaderStorageImageWriteWithoutFormat 3931 VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices 3932 VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices 3933 VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices 3934 VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices 3935 VkBool32 shaderClipDistance /// clip distance in shaders 3936 VkBool32 shaderCullDistance /// cull distance in shaders 3937 VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders 3938 VkBool32 shaderInt64 /// 64-bit integers in shaders 3939 VkBool32 shaderInt16 /// 16-bit integers in shaders 3940 VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support) 3941 VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD 3942 VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level 3943 VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers 3944 VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images 3945 VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images 3946 VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples 3947 VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples 3948 VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples 3949 VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples 3950 VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in) 3951 VkBool32 variableMultisampleRate 3952 VkBool32 inheritedQueries 3953} 3954 3955class VkPhysicalDeviceLimits { 3956 /// resource maximum sizes 3957 u32 maxImageDimension1D /// max 1D image dimension 3958 u32 maxImageDimension2D /// max 2D image dimension 3959 u32 maxImageDimension3D /// max 3D image dimension 3960 u32 maxImageDimensionCube /// max cubemap image dimension 3961 u32 maxImageArrayLayers /// max layers for image arrays 3962 u32 maxTexelBufferElements 3963 u32 maxUniformBufferRange /// max uniform buffer size (bytes) 3964 u32 maxStorageBufferRange /// max storage buffer size (bytes) 3965 u32 maxPushConstantsSize /// max size of the push constants pool (bytes) 3966 /// memory limits 3967 u32 maxMemoryAllocationCount /// max number of device memory allocations supported 3968 u32 maxSamplerAllocationCount 3969 VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage 3970 VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes) 3971 /// descriptor set limits 3972 u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline 3973 u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set 3974 u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set 3975 u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set 3976 u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set 3977 u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set 3978 u32 maxPerStageDescriptorInputAttachments 3979 u32 maxPerStageResources 3980 u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set 3981 u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set 3982 u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set 3983 u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set 3984 u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set 3985 u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set 3986 u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set 3987 u32 maxDescriptorSetInputAttachments 3988 /// vertex stage limits 3989 u32 maxVertexInputAttributes /// max num of vertex input attribute slots 3990 u32 maxVertexInputBindings /// max num of vertex input binding slots 3991 u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset 3992 u32 maxVertexInputBindingStride /// max vertex input binding stride 3993 u32 maxVertexOutputComponents /// max num of output components written by vertex shader 3994 /// tessellation control stage limits 3995 u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator 3996 u32 maxTessellationPatchSize /// max patch size (vertices) 3997 u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS 3998 u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS 3999 u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS 4000 u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS 4001 u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES 4002 u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES 4003 /// geometry stage limits 4004 u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader 4005 u32 maxGeometryInputComponents /// max num of input components read in geometry stage 4006 u32 maxGeometryOutputComponents /// max num of output components written in geometry stage 4007 u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage 4008 u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage 4009 /// fragment stage limits 4010 u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage 4011 u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage 4012 u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending 4013 u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers 4014 /// compute stage limits 4015 u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes) 4016 u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z) 4017 u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group 4018 u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z) 4019 4020 u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y 4021 u32 subTexelPrecisionBits /// num bits of subtexel precision 4022 u32 mipmapPrecisionBits /// num bits of mipmap precision 4023 4024 u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices) 4025 u32 maxDrawIndirectCount 4026 4027 f32 maxSamplerLodBias /// max absolute sampler level of detail bias 4028 f32 maxSamplerAnisotropy /// max degree of sampler anisotropy 4029 4030 u32 maxViewports /// max number of active viewports 4031 u32[2] maxViewportDimensions /// max viewport dimensions (x,y) 4032 f32[2] viewportBoundsRange /// viewport bounds range (min,max) 4033 u32 viewportSubPixelBits /// num bits of subpixel precision for viewport 4034 4035 platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes) 4036 VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes) 4037 VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes) 4038 VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes) 4039 4040 s32 minTexelOffset /// min texel offset for OpTextureSampleOffset 4041 u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset 4042 s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset 4043 u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset 4044 f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset 4045 f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset 4046 u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset 4047 4048 u32 maxFramebufferWidth /// max width for a framebuffer 4049 u32 maxFramebufferHeight /// max height for a framebuffer 4050 u32 maxFramebufferLayers /// max layer count for a layered framebuffer 4051 VkSampleCountFlags framebufferColorSampleCounts 4052 VkSampleCountFlags framebufferDepthSampleCounts 4053 VkSampleCountFlags framebufferStencilSampleCounts 4054 VkSampleCountFlags framebufferNoAttachmentSampleCounts 4055 u32 maxColorAttachments /// max num of framebuffer color attachments 4056 4057 VkSampleCountFlags sampledImageColorSampleCounts 4058 VkSampleCountFlags sampledImageIntegerSampleCounts 4059 VkSampleCountFlags sampledImageDepthSampleCounts 4060 VkSampleCountFlags sampledImageStencilSampleCounts 4061 VkSampleCountFlags storageImageSampleCounts 4062 u32 maxSampleMaskWords /// max num of sample mask words 4063 VkBool32 timestampComputeAndGraphics 4064 4065 f32 timestampPeriod 4066 4067 u32 maxClipDistances /// max number of clip distances 4068 u32 maxCullDistances /// max number of cull distances 4069 u32 maxCombinedClipAndCullDistances /// max combined number of user clipping 4070 4071 u32 discreteQueuePriorities 4072 4073 f32[2] pointSizeRange /// range (min,max) of supported point sizes 4074 f32[2] lineWidthRange /// range (min,max) of supported line widths 4075 f32 pointSizeGranularity /// granularity of supported point sizes 4076 f32 lineWidthGranularity /// granularity of supported line widths 4077 VkBool32 strictLines 4078 VkBool32 standardSampleLocations 4079 4080 VkDeviceSize optimalBufferCopyOffsetAlignment 4081 VkDeviceSize optimalBufferCopyRowPitchAlignment 4082 VkDeviceSize nonCoherentAtomSize 4083} 4084 4085class VkPhysicalDeviceSparseProperties { 4086 VkBool32 residencyStandard2DBlockShape /// Sparse resources support: GPU will access all 2D (single sample) sparse resources using the standard block shapes (based on pixel format) 4087 VkBool32 residencyStandard2DMultisampleBlockShape /// Sparse resources support: GPU will access all 2D (multisample) sparse resources using the standard block shapes (based on pixel format) 4088 VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format) 4089 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 4090 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 4091} 4092 4093class VkSemaphoreCreateInfo { 4094 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO 4095 const void* pNext /// Pointer to next structure 4096 VkSemaphoreCreateFlags flags /// Semaphore creation flags 4097} 4098 4099class VkQueryPoolCreateInfo { 4100 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO 4101 const void* pNext /// Pointer to next structure 4102 VkQueryPoolCreateFlags flags 4103 VkQueryType queryType 4104 u32 queryCount 4105 VkQueryPipelineStatisticFlags pipelineStatistics /// Optional 4106} 4107 4108class VkFramebufferCreateInfo { 4109 VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO 4110 const void* pNext /// Pointer to next structure 4111 VkFramebufferCreateFlags flags 4112 VkRenderPass renderPass 4113 u32 attachmentCount 4114 const VkImageView* pAttachments 4115 u32 width 4116 u32 height 4117 u32 layers 4118} 4119 4120class VkDrawIndirectCommand { 4121 u32 vertexCount 4122 u32 instanceCount 4123 u32 firstVertex 4124 u32 firstInstance 4125} 4126 4127class VkDrawIndexedIndirectCommand { 4128 u32 indexCount 4129 u32 instanceCount 4130 u32 firstIndex 4131 s32 vertexOffset 4132 u32 firstInstance 4133} 4134 4135class VkDispatchIndirectCommand { 4136 u32 x 4137 u32 y 4138 u32 z 4139} 4140 4141//@vulkan1_1 structures 4142 4143class VkPhysicalDeviceSubgroupProperties { 4144 VkStructureType sType 4145 void* pNext 4146 u32 subgroupSize 4147 VkShaderStageFlags supportedStages 4148 VkSubgroupFeatureFlags supportedOperations 4149 VkBool32 quadOperationsInAllStages 4150} 4151 4152class VkBindBufferMemoryInfo { 4153 VkStructureType sType 4154 const void* pNext 4155 VkBuffer buffer 4156 VkDeviceMemory memory 4157 VkDeviceSize memoryOffset 4158} 4159 4160class VkBindImageMemoryInfo { 4161 VkStructureType sType 4162 const void* pNext 4163 VkImage image 4164 VkDeviceMemory memory 4165 VkDeviceSize memoryOffset 4166} 4167 4168class VkPhysicalDevice16BitStorageFeatures { 4169 VkStructureType sType 4170 void* pNext 4171 VkBool32 storageBuffer16BitAccess 4172 VkBool32 uniformAndStorageBuffer16BitAccess 4173 VkBool32 storagePushConstant16 4174 VkBool32 storageInputOutput16 4175} 4176 4177class VkMemoryDedicatedRequirements { 4178 VkStructureType sType 4179 void* pNext 4180 VkBool32 prefersDedicatedAllocation 4181 VkBool32 requiresDedicatedAllocation 4182} 4183 4184class VkMemoryDedicatedAllocateInfo { 4185 VkStructureType sType 4186 const void* pNext 4187 VkImage image 4188 VkBuffer buffer 4189} 4190 4191class VkMemoryAllocateFlagsInfo { 4192 VkStructureType sType 4193 const void* pNext 4194 VkMemoryAllocateFlags flags 4195 u32 deviceMask 4196} 4197 4198class VkDeviceGroupRenderPassBeginInfo { 4199 VkStructureType sType 4200 const void* pNext 4201 u32 deviceMask 4202 u32 deviceRenderAreaCount 4203 const VkRect2D* pDeviceRenderAreas 4204} 4205 4206class VkDeviceGroupCommandBufferBeginInfo { 4207 VkStructureType sType 4208 const void* pNext 4209 u32 deviceMask 4210} 4211 4212class VkDeviceGroupSubmitInfo { 4213 VkStructureType sType 4214 const void* pNext 4215 u32 waitSemaphoreCount 4216 const u32* pWaitSemaphoreDeviceIndices 4217 u32 commandBufferCount 4218 const u32* pCommandBufferDeviceMasks 4219 u32 signalSemaphoreCount 4220 const u32* pSignalSemaphoreDeviceIndices 4221} 4222 4223class VkDeviceGroupBindSparseInfo { 4224 VkStructureType sType 4225 const void* pNext 4226 u32 resourceDeviceIndex 4227 u32 memoryDeviceIndex 4228} 4229 4230class VkBindBufferMemoryDeviceGroupInfo { 4231 VkStructureType sType 4232 const void* pNext 4233 u32 deviceIndexCount 4234 const u32* pDeviceIndices 4235} 4236 4237class VkBindImageMemoryDeviceGroupInfo { 4238 VkStructureType sType 4239 const void* pNext 4240 u32 deviceIndexCount 4241 const u32* pDeviceIndices 4242 u32 splitInstanceBindRegionCount 4243 const VkRect2D* pSplitInstanceBindRegions 4244} 4245 4246class VkPhysicalDeviceGroupProperties { 4247 VkStructureType sType 4248 void* pNext 4249 u32 physicalDeviceCount 4250 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices 4251 VkBool32 subsetAllocation 4252} 4253 4254class VkDeviceGroupDeviceCreateInfo { 4255 VkStructureType sType 4256 const void* pNext 4257 u32 physicalDeviceCount 4258 const VkPhysicalDevice* pPhysicalDevices 4259} 4260 4261class VkBufferMemoryRequirementsInfo2 { 4262 VkStructureType sType 4263 const void* pNext 4264 VkBuffer buffer 4265} 4266 4267class VkImageMemoryRequirementsInfo2 { 4268 VkStructureType sType 4269 const void* pNext 4270 VkImage image 4271} 4272 4273class VkImageSparseMemoryRequirementsInfo2 { 4274 VkStructureType sType 4275 const void* pNext 4276 VkImage image 4277} 4278 4279class VkMemoryRequirements2 { 4280 VkStructureType sType 4281 void* pNext 4282 VkMemoryRequirements memoryRequirements 4283} 4284 4285class VkSparseImageMemoryRequirements2 { 4286 VkStructureType sType 4287 void* pNext 4288 VkSparseImageMemoryRequirements memoryRequirements 4289} 4290 4291class VkPhysicalDeviceFeatures2 { 4292 VkStructureType sType 4293 void* pNext 4294 VkPhysicalDeviceFeatures features 4295} 4296 4297class VkPhysicalDeviceProperties2 { 4298 VkStructureType sType 4299 void* pNext 4300 VkPhysicalDeviceProperties properties 4301} 4302 4303class VkFormatProperties2 { 4304 VkStructureType sType 4305 void* pNext 4306 VkFormatProperties formatProperties 4307} 4308 4309class VkImageFormatProperties2 { 4310 VkStructureType sType 4311 void* pNext 4312 VkImageFormatProperties imageFormatProperties 4313} 4314 4315class VkPhysicalDeviceImageFormatInfo2 { 4316 VkStructureType sType 4317 const void* pNext 4318 VkFormat format 4319 VkImageType type 4320 VkImageTiling tiling 4321 VkImageUsageFlags usage 4322 VkImageCreateFlags flags 4323} 4324 4325class VkQueueFamilyProperties2 { 4326 VkStructureType sType 4327 void* pNext 4328 VkQueueFamilyProperties queueFamilyProperties 4329} 4330 4331class VkPhysicalDeviceMemoryProperties2 { 4332 VkStructureType sType 4333 void* pNext 4334 VkPhysicalDeviceMemoryProperties memoryProperties 4335} 4336 4337class VkSparseImageFormatProperties2 { 4338 VkStructureType sType 4339 void* pNext 4340 VkSparseImageFormatProperties properties 4341} 4342 4343class VkPhysicalDeviceSparseImageFormatInfo2 { 4344 VkStructureType sType 4345 const void* pNext 4346 VkFormat format 4347 VkImageType type 4348 VkSampleCountFlagBits samples 4349 VkImageUsageFlags usage 4350 VkImageTiling tiling 4351} 4352 4353class VkPhysicalDevicePointClippingProperties { 4354 VkStructureType sType 4355 void* pNext 4356 VkPointClippingBehavior pointClippingBehavior 4357} 4358 4359class VkInputAttachmentAspectReference { 4360 u32 subpass 4361 u32 inputAttachmentIndex 4362 VkImageAspectFlags aspectMask 4363} 4364 4365class VkRenderPassInputAttachmentAspectCreateInfo { 4366 VkStructureType sType 4367 const void* pNext 4368 u32 aspectReferenceCount 4369 const VkInputAttachmentAspectReference* pAspectReferences 4370} 4371 4372class VkImageViewUsageCreateInfo { 4373 VkStructureType sType 4374 const void* pNext 4375 VkImageUsageFlags usage 4376} 4377 4378class VkPipelineTessellationDomainOriginStateCreateInfo { 4379 VkStructureType sType 4380 const void* pNext 4381 VkTessellationDomainOrigin domainOrigin 4382} 4383 4384class VkRenderPassMultiviewCreateInfo { 4385 VkStructureType sType 4386 const void* pNext 4387 u32 subpassCount 4388 const u32* pViewMasks 4389 u32 dependencyCount 4390 const s32* pViewOffsets 4391 u32 correlationMaskCount 4392 const u32* pCorrelationMasks 4393} 4394 4395class VkPhysicalDeviceMultiviewFeatures { 4396 VkStructureType sType 4397 void* pNext 4398 VkBool32 multiview 4399 VkBool32 multiviewGeometryShader 4400 VkBool32 multiviewTessellationShader 4401} 4402 4403class VkPhysicalDeviceMultiviewProperties { 4404 VkStructureType sType 4405 void* pNext 4406 u32 maxMultiviewViewCount 4407 u32 maxMultiviewInstanceIndex 4408} 4409 4410class VkPhysicalDeviceVariablePointerFeatures { 4411 VkStructureType sType 4412 void* pNext 4413 VkBool32 variablePointersStorageBuffer 4414 VkBool32 variablePointers 4415} 4416 4417class VkPhysicalDeviceProtectedMemoryFeatures { 4418 VkStructureType sType 4419 void* pNext 4420 VkBool32 protectedMemory 4421} 4422 4423class VkPhysicalDeviceProtectedMemoryProperties { 4424 VkStructureType sType 4425 void* pNext 4426 VkBool32 protectedNoFault 4427} 4428 4429class VkDeviceQueueInfo2 { 4430 VkStructureType sType 4431 const void* pNext 4432 VkDeviceQueueCreateFlags flags 4433 u32 queueFamilyIndex 4434 u32 queueIndex 4435} 4436 4437class VkProtectedSubmitInfo { 4438 VkStructureType sType 4439 const void* pNext 4440 VkBool32 protectedSubmit 4441} 4442 4443class VkSamplerYcbcrConversionCreateInfo { 4444 VkStructureType sType 4445 const void* pNext 4446 VkFormat format 4447 VkSamplerYcbcrModelConversion ycbcrModel 4448 VkSamplerYcbcrRange ycbcrRange 4449 VkComponentMapping components 4450 VkChromaLocation xChromaOffset 4451 VkChromaLocation yChromaOffset 4452 VkFilter chromaFilter 4453 VkBool32 forceExplicitReconstruction 4454} 4455 4456class VkSamplerYcbcrConversionInfo { 4457 VkStructureType sType 4458 const void* pNext 4459 VkSamplerYcbcrConversion conversion 4460} 4461 4462class VkBindImagePlaneMemoryInfo { 4463 VkStructureType sType 4464 const void* pNext 4465 VkImageAspectFlagBits planeAspect 4466} 4467 4468class VkImagePlaneMemoryRequirementsInfo { 4469 VkStructureType sType 4470 const void* pNext 4471 VkImageAspectFlagBits planeAspect 4472} 4473 4474class VkPhysicalDeviceSamplerYcbcrConversionFeatures { 4475 VkStructureType sType 4476 void* pNext 4477 VkBool32 samplerYcbcrConversion 4478} 4479 4480class VkSamplerYcbcrConversionImageFormatProperties { 4481 VkStructureType sType 4482 void* pNext 4483 u32 combinedImageSamplerDescriptorCount 4484} 4485 4486class VkDescriptorUpdateTemplateEntry { 4487 u32 dstBinding 4488 u32 dstArrayElement 4489 u32 descriptorCount 4490 VkDescriptorType descriptorType 4491 platform.size_t offset 4492 platform.size_t stride 4493} 4494 4495class VkDescriptorUpdateTemplateCreateInfo { 4496 VkStructureType sType 4497 void* pNext 4498 VkDescriptorUpdateTemplateCreateFlags flags 4499 u32 descriptorUpdateEntryCount 4500 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries 4501 VkDescriptorUpdateTemplateType templateType 4502 VkDescriptorSetLayout descriptorSetLayout 4503 VkPipelineBindPoint pipelineBindPoint 4504 VkPipelineLayout pipelineLayout 4505 u32 set 4506} 4507 4508class VkExternalMemoryProperties { 4509 VkExternalMemoryFeatureFlags externalMemoryFeatures 4510 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes 4511 VkExternalMemoryHandleTypeFlags compatibleHandleTypes 4512} 4513 4514class VkPhysicalDeviceExternalImageFormatInfo { 4515 VkStructureType sType 4516 const void* pNext 4517 VkExternalMemoryHandleTypeFlagBits handleType 4518} 4519 4520class VkExternalImageFormatProperties { 4521 VkStructureType sType 4522 void* pNext 4523 VkExternalMemoryProperties externalMemoryProperties 4524} 4525 4526class VkPhysicalDeviceExternalBufferInfo { 4527 VkStructureType sType 4528 const void* pNext 4529 VkBufferCreateFlags flags 4530 VkBufferUsageFlags usage 4531 VkExternalMemoryHandleTypeFlagBits handleType 4532} 4533 4534class VkExternalBufferProperties { 4535 VkStructureType sType 4536 void* pNext 4537 VkExternalMemoryProperties externalMemoryProperties 4538} 4539 4540class VkPhysicalDeviceIDProperties { 4541 VkStructureType sType 4542 void* pNext 4543 u8[VK_UUID_SIZE] deviceUUID 4544 u8[VK_UUID_SIZE] driverUUID 4545 u8[VK_LUID_SIZE] deviceLUID 4546 u32 deviceNodeMask 4547 VkBool32 deviceLUIDValid 4548} 4549 4550class VkExternalMemoryImageCreateInfo { 4551 VkStructureType sType 4552 const void* pNext 4553 VkExternalMemoryHandleTypeFlags handleTypes 4554} 4555 4556class VkExternalMemoryBufferCreateInfo { 4557 VkStructureType sType 4558 const void* pNext 4559 VkExternalMemoryHandleTypeFlags handleTypes 4560} 4561 4562class VkExportMemoryAllocateInfo { 4563 VkStructureType sType 4564 const void* pNext 4565 VkExternalMemoryHandleTypeFlags handleTypes 4566} 4567 4568class VkPhysicalDeviceExternalFenceInfo { 4569 VkStructureType sType 4570 const void* pNext 4571 VkExternalFenceHandleTypeFlagBits handleType 4572} 4573 4574class VkExternalFenceProperties { 4575 VkStructureType sType 4576 void* pNext 4577 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes 4578 VkExternalFenceHandleTypeFlags compatibleHandleTypes 4579 VkExternalFenceFeatureFlags externalFenceFeatures 4580} 4581 4582class VkExportFenceCreateInfo { 4583 VkStructureType sType 4584 const void* pNext 4585 VkExternalFenceHandleTypeFlags handleTypes 4586} 4587 4588class VkExportSemaphoreCreateInfo { 4589 VkStructureType sType 4590 const void* pNext 4591 VkExternalSemaphoreHandleTypeFlags handleTypes 4592} 4593 4594class VkPhysicalDeviceExternalSemaphoreInfo { 4595 VkStructureType sType 4596 const void* pNext 4597 VkExternalSemaphoreHandleTypeFlagBits handleType 4598} 4599 4600class VkExternalSemaphoreProperties { 4601 VkStructureType sType 4602 void* pNext 4603 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes 4604 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes 4605 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures 4606} 4607 4608class VkPhysicalDeviceMaintenance3Properties { 4609 VkStructureType sType 4610 void* pNext 4611 u32 maxPerSetDescriptors 4612 VkDeviceSize maxMemoryAllocationSize 4613} 4614 4615class VkDescriptorSetLayoutSupport { 4616 VkStructureType sType 4617 void* pNext 4618 VkBool32 supported 4619} 4620 4621class VkPhysicalDeviceShaderDrawParameterFeatures { 4622 VkStructureType sType 4623 void* pNext 4624 VkBool32 shaderDrawParameters 4625} 4626 4627 4628@extension("VK_KHR_surface") // 1 4629class VkSurfaceCapabilitiesKHR { 4630 u32 minImageCount 4631 u32 maxImageCount 4632 VkExtent2D currentExtent 4633 VkExtent2D minImageExtent 4634 VkExtent2D maxImageExtent 4635 u32 maxImageArrayLayers 4636 VkSurfaceTransformFlagsKHR supportedTransforms 4637 VkSurfaceTransformFlagBitsKHR currentTransform 4638 VkCompositeAlphaFlagsKHR supportedCompositeAlpha 4639 VkImageUsageFlags supportedUsageFlags 4640} 4641 4642@extension("VK_KHR_surface") // 1 4643class VkSurfaceFormatKHR { 4644 VkFormat format 4645 VkColorSpaceKHR colorSpace 4646} 4647 4648@extension("VK_KHR_swapchain") // 2 4649class VkSwapchainCreateInfoKHR { 4650 VkStructureType sType 4651 const void* pNext 4652 VkSwapchainCreateFlagsKHR flags 4653 VkSurfaceKHR surface 4654 u32 minImageCount 4655 VkFormat imageFormat 4656 VkColorSpaceKHR imageColorSpace 4657 VkExtent2D imageExtent 4658 u32 imageArrayLayers 4659 VkImageUsageFlags imageUsage 4660 VkSharingMode sharingMode 4661 u32 queueFamilyIndexCount 4662 const u32* pQueueFamilyIndices 4663 VkSurfaceTransformFlagBitsKHR preTransform 4664 VkCompositeAlphaFlagBitsKHR compositeAlpha 4665 VkPresentModeKHR presentMode 4666 VkBool32 clipped 4667 VkSwapchainKHR oldSwapchain 4668} 4669 4670@extension("VK_KHR_swapchain") // 2 4671class VkPresentInfoKHR { 4672 VkStructureType sType 4673 const void* pNext 4674 u32 waitSemaphoreCount 4675 const VkSemaphore* pWaitSemaphores 4676 u32 swapchainCount 4677 const VkSwapchainKHR* pSwapchains 4678 const u32* pImageIndices 4679 VkResult* pResults 4680} 4681 4682@vulkan1_1 4683@extension("VK_KHR_swapchain") // 2 4684class VkImageSwapchainCreateInfoKHR { 4685 VkStructureType sType 4686 const void* pNext 4687 VkSwapchainKHR swapchain 4688} 4689 4690@vulkan1_1 4691@extension("VK_KHR_swapchain") // 2 4692class VkBindImageMemorySwapchainInfoKHR { 4693 VkStructureType sType 4694 const void* pNext 4695 VkSwapchainKHR swapchain 4696 u32 imageIndex 4697} 4698 4699@vulkan1_1 4700@extension("VK_KHR_swapchain") // 2 4701class VkAcquireNextImageInfoKHR { 4702 VkStructureType sType 4703 const void* pNext 4704 VkSwapchainKHR swapchain 4705 u64 timeout 4706 VkSemaphore semaphore 4707 VkFence fence 4708 u32 deviceMask 4709} 4710 4711@vulkan1_1 4712@extension("VK_KHR_swapchain") // 2 4713class VkDeviceGroupPresentCapabilitiesKHR { 4714 VkStructureType sType 4715 const void* pNext 4716 u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask 4717 VkDeviceGroupPresentModeFlagsKHR modes 4718} 4719 4720@vulkan1_1 4721@extension("VK_KHR_swapchain") // 2 4722class VkDeviceGroupPresentInfoKHR { 4723 VkStructureType sType 4724 const void* pNext 4725 u32 swapchainCount 4726 const u32* pDeviceMasks 4727 VkDeviceGroupPresentModeFlagBitsKHR mode 4728} 4729 4730@vulkan1_1 4731@extension("VK_KHR_swapchain") // 2 4732class VkDeviceGroupSwapchainCreateInfoKHR { 4733 VkStructureType sType 4734 const void* pNext 4735 VkDeviceGroupPresentModeFlagsKHR modes 4736} 4737 4738@extension("VK_KHR_display") // 3 4739class VkDisplayPropertiesKHR { 4740 VkDisplayKHR display 4741 const char* displayName 4742 VkExtent2D physicalDimensions 4743 VkExtent2D physicalResolution 4744 VkSurfaceTransformFlagsKHR supportedTransforms 4745 VkBool32 planeReorderPossible 4746 VkBool32 persistentContent 4747} 4748 4749@extension("VK_KHR_display") // 3 4750class VkDisplayModeParametersKHR { 4751 VkExtent2D visibleRegion 4752 u32 refreshRate 4753} 4754 4755@extension("VK_KHR_display") // 3 4756class VkDisplayModePropertiesKHR { 4757 VkDisplayModeKHR displayMode 4758 VkDisplayModeParametersKHR parameters 4759} 4760 4761@extension("VK_KHR_display") // 3 4762class VkDisplayModeCreateInfoKHR { 4763 VkStructureType sType 4764 const void* pNext 4765 VkDisplayModeCreateFlagsKHR flags 4766 VkDisplayModeParametersKHR parameters 4767} 4768 4769@extension("VK_KHR_display") // 3 4770class VkDisplayPlanePropertiesKHR { 4771 VkDisplayKHR currentDisplay 4772 u32 currentStackIndex 4773} 4774 4775@extension("VK_KHR_display") // 3 4776class VkDisplayPlaneCapabilitiesKHR { 4777 VkDisplayPlaneAlphaFlagsKHR supportedAlpha 4778 VkOffset2D minSrcPosition 4779 VkOffset2D maxSrcPosition 4780 VkExtent2D minSrcExtent 4781 VkExtent2D maxSrcExtent 4782 VkOffset2D minDstPosition 4783 VkOffset2D maxDstPosition 4784 VkExtent2D minDstExtent 4785 VkExtent2D maxDstExtent 4786} 4787 4788@extension("VK_KHR_display") // 3 4789class VkDisplaySurfaceCreateInfoKHR { 4790 VkStructureType sType 4791 const void* pNext 4792 VkDisplaySurfaceCreateFlagsKHR flags 4793 VkDisplayModeKHR displayMode 4794 u32 planeIndex 4795 u32 planeStackIndex 4796 VkSurfaceTransformFlagBitsKHR transform 4797 f32 globalAlpha 4798 VkDisplayPlaneAlphaFlagBitsKHR alphaMode 4799 VkExtent2D imageExtent 4800} 4801 4802@extension("VK_KHR_display_swapchain") // 4 4803class VkDisplayPresentInfoKHR { 4804 VkStructureType sType 4805 const void* pNext 4806 VkRect2D srcRect 4807 VkRect2D dstRect 4808 VkBool32 persistent 4809} 4810 4811@extension("VK_KHR_xlib_surface") // 5 4812class VkXlibSurfaceCreateInfoKHR { 4813 VkStructureType sType 4814 const void* pNext 4815 VkXlibSurfaceCreateFlagsKHR flags 4816 platform.Display* dpy 4817 platform.Window window 4818} 4819 4820@extension("VK_KHR_xcb_surface") // 6 4821class VkXcbSurfaceCreateInfoKHR { 4822 VkStructureType sType 4823 const void* pNext 4824 VkXcbSurfaceCreateFlagsKHR flags 4825 platform.xcb_connection_t* connection 4826 platform.xcb_window_t window 4827} 4828 4829@extension("VK_KHR_wayland_surface") // 7 4830class VkWaylandSurfaceCreateInfoKHR { 4831 VkStructureType sType 4832 const void* pNext 4833 VkWaylandSurfaceCreateFlagsKHR flags 4834 platform.wl_display* display 4835 platform.wl_surface* surface 4836} 4837 4838@extension("VK_KHR_mir_surface") // 8 4839class VkMirSurfaceCreateInfoKHR { 4840 VkStructureType sType 4841 const void* pNext 4842 VkMirSurfaceCreateFlagsKHR flags 4843 platform.MirConnection* connection 4844 platform.MirSurface* mirSurface 4845} 4846 4847@extension("VK_KHR_android_surface") // 9 4848class VkAndroidSurfaceCreateInfoKHR { 4849 VkStructureType sType 4850 const void* pNext 4851 VkAndroidSurfaceCreateFlagsKHR flags 4852 platform.ANativeWindow* window 4853} 4854 4855@extension("VK_KHR_win32_surface") // 10 4856class VkWin32SurfaceCreateInfoKHR { 4857 VkStructureType sType 4858 const void* pNext 4859 VkWin32SurfaceCreateFlagsKHR flags 4860 platform.HINSTANCE hinstance 4861 platform.HWND hwnd 4862} 4863 4864@extension("VK_ANDROID_native_buffer") // 11 4865@internal class Gralloc1Usage { 4866 u64 consumer 4867 u64 producer 4868} 4869 4870@extension("VK_ANDROID_native_buffer") // 11 4871class VkNativeBufferANDROID { 4872 VkStructureType sType 4873 const void* pNext 4874 platform.buffer_handle_t handle 4875 s32 stride 4876 s32 format 4877 s32 usage 4878 Gralloc1Usage usage2 4879} 4880 4881@extension("VK_ANDROID_native_buffer") // 11 4882class VkSwapchainImageCreateInfoANDROID { 4883 VkStructureType sType 4884 const void* pNext 4885 VkSwapchainImageUsageFlagsANDROID flags 4886} 4887 4888@extension("VK_ANDROID_native_buffer") // 11 4889class VkPhysicalDevicePresentationPropertiesANDROID { 4890 VkStructureType sType 4891 void* pNext 4892 VkBool32 sharedImage 4893} 4894 4895@extension("VK_EXT_debug_report") // 12 4896class VkDebugReportCallbackCreateInfoEXT { 4897 VkStructureType sType 4898 const void* pNext 4899 VkDebugReportFlagsEXT flags 4900 PFN_vkDebugReportCallbackEXT pfnCallback 4901 void* pUserData 4902} 4903 4904@extension("VK_AMD_rasterization_order") // 19 4905class VkPipelineRasterizationStateRasterizationOrderAMD { 4906 VkStructureType sType 4907 const void* pNext 4908 VkRasterizationOrderAMD rasterizationOrder 4909} 4910 4911@extension("VK_EXT_debug_marker") // 23 4912class VkDebugMarkerObjectNameInfoEXT { 4913 VkStructureType sType 4914 const void* pNext 4915 VkDebugReportObjectTypeEXT objectType 4916 u64 object 4917 const char* pObjectName 4918} 4919 4920@extension("VK_EXT_debug_marker") // 23 4921class VkDebugMarkerObjectTagInfoEXT { 4922 VkStructureType sType 4923 const void* pNext 4924 VkDebugReportObjectTypeEXT objectType 4925 u64 object 4926 u64 tagName 4927 platform.size_t tagSize 4928 const void* pTag 4929} 4930 4931@extension("VK_EXT_debug_marker") // 23 4932class VkDebugMarkerMarkerInfoEXT { 4933 VkStructureType sType 4934 const void* pNext 4935 const char* pMarkerName 4936 f32[4] color 4937} 4938 4939@extension("VK_NV_dedicated_allocation") // 27 4940class VkDedicatedAllocationImageCreateInfoNV { 4941 VkStructureType sType 4942 const void* pNext 4943 VkBool32 dedicatedAllocation 4944} 4945 4946@extension("VK_NV_dedicated_allocation") // 27 4947class VkDedicatedAllocationBufferCreateInfoNV { 4948 VkStructureType sType 4949 const void* pNext 4950 VkBool32 dedicatedAllocation 4951} 4952 4953@extension("VK_NV_dedicated_allocation") // 27 4954class VkDedicatedAllocationMemoryAllocateInfoNV { 4955 VkStructureType sType 4956 const void* pNext 4957 VkImage image 4958 VkBuffer buffer 4959} 4960 4961@extension("VK_AMD_texture_gather_bias_lod") // 42 4962class VkTextureLODGatherFormatPropertiesAMD { 4963 VkStructureType sType 4964 void* pNext 4965 VkBool32 supportsTextureGatherLODBiasAMD 4966} 4967 4968@extension("VK_AMD_shader_info") // 43 4969class VkShaderResourceUsageAMD { 4970 u32 numUsedVgprs 4971 u32 numUsedSgprs 4972 u32 ldsSizePerLocalWorkGroup 4973 platform.size_t ldsUsageSizeInBytes 4974 platform.size_t scratchMemUsageInBytes 4975} 4976 4977@extension("VK_AMD_shader_info") // 43 4978class VkShaderStatisticsInfoAMD { 4979 VkShaderStageFlags shaderStageMask 4980 VkShaderResourceUsageAMD resourceUsage 4981 u32 numPhysicalVgprs 4982 u32 numPhysicalSgprs 4983 u32 numAvailableVgprs 4984 u32 numAvailableSgprs 4985 u32[3] computeWorkGroupSize 4986} 4987 4988@extension("VK_KHR_multiview") // 54 4989class VkRenderPassMultiviewCreateInfoKHR { 4990 VkStructureType sType 4991 const void* pNext 4992 u32 subpassCount 4993 const u32* pViewMasks 4994 u32 dependencyCount 4995 const s32* pViewOffsets 4996 u32 correlationMaskCount 4997 const u32* pCorrelationMasks 4998} 4999 5000@extension("VK_KHR_multiview") // 54 5001class VkPhysicalDeviceMultiviewFeaturesKHR { 5002 VkStructureType sType 5003 void* pNext 5004 VkBool32 multiview 5005 VkBool32 multiviewGeometryShader 5006 VkBool32 multiviewTessellationShader 5007} 5008 5009@extension("VK_KHR_multiview") // 54 5010class VkPhysicalDeviceMultiviewPropertiesKHR { 5011 VkStructureType sType 5012 void* pNext 5013 u32 maxMultiviewViewCount 5014 u32 maxMultiviewInstanceIndex 5015} 5016 5017@extension("VK_NV_external_memory_capabilities") // 56 5018class VkExternalImageFormatPropertiesNV { 5019 VkImageFormatProperties imageFormatProperties 5020 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures 5021 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes 5022 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes 5023} 5024 5025@extension("VK_NV_external_memory") // 57 5026class VkExternalMemoryImageCreateInfoNV { 5027 VkStructureType sType 5028 const void* pNext 5029 VkExternalMemoryHandleTypeFlagsNV handleTypes 5030} 5031 5032@extension("VK_NV_external_memory") // 57 5033class VkExportMemoryAllocateInfoNV { 5034 VkStructureType sType 5035 const void* pNext 5036 VkExternalMemoryHandleTypeFlagsNV handleTypes 5037} 5038 5039@extension("VK_NV_external_memory_win32") // 58 5040class VkImportMemoryWin32HandleInfoNV { 5041 VkStructureType sType 5042 const void* pNext 5043 VkExternalMemoryHandleTypeFlagsNV handleType 5044 platform.HANDLE handle 5045} 5046 5047@extension("VK_NV_external_memory_win32") // 58 5048class VkExportMemoryWin32HandleInfoNV { 5049 VkStructureType sType 5050 const void* pNext 5051 const platform.SECURITY_ATTRIBUTES* pAttributes 5052 platform.DWORD dwAccess 5053} 5054 5055@extension("VK_NV_win32_keyed_mutex") // 59 5056class VkWin32KeyedMutexAcquireReleaseInfoNV { 5057 VkStructureType sType 5058 const void* pNext 5059 u32 acquireCount 5060 const VkDeviceMemory* pAcquireSyncs 5061 const u64* pAcquireKeys 5062 const u32* pAcquireTimeoutMilliseconds 5063 u32 releaseCount 5064 const VkDeviceMemory* pReleaseSyncs 5065 const u64* pReleaseKeys 5066} 5067 5068@extension("VK_KHR_get_physical_device_properties2") // 60 5069class VkPhysicalDeviceFeatures2KHR { 5070 VkStructureType sType 5071 void* pNext 5072 VkPhysicalDeviceFeatures features 5073} 5074 5075@extension("VK_KHR_get_physical_device_properties2") // 60 5076class VkPhysicalDeviceProperties2KHR { 5077 VkStructureType sType 5078 void* pNext 5079 VkPhysicalDeviceProperties properties 5080} 5081 5082@extension("VK_KHR_get_physical_device_properties2") // 60 5083class VkFormatProperties2KHR { 5084 VkStructureType sType 5085 void* pNext 5086 VkFormatProperties formatProperties 5087} 5088 5089@extension("VK_KHR_get_physical_device_properties2") // 60 5090class VkImageFormatProperties2KHR { 5091 VkStructureType sType 5092 void* pNext 5093 VkImageFormatProperties imageFormatProperties 5094} 5095 5096@extension("VK_KHR_get_physical_device_properties2") // 60 5097class VkPhysicalDeviceImageFormatInfo2KHR { 5098 VkStructureType sType 5099 const void* pNext 5100 VkFormat format 5101 VkImageType type 5102 VkImageTiling tiling 5103 VkImageUsageFlags usage 5104 VkImageCreateFlags flags 5105} 5106 5107@extension("VK_KHR_get_physical_device_properties2") // 60 5108class VkQueueFamilyProperties2KHR { 5109 VkStructureType sType 5110 void* pNext 5111 VkQueueFamilyProperties queueFamilyProperties 5112} 5113 5114@extension("VK_KHR_get_physical_device_properties2") // 60 5115class VkPhysicalDeviceMemoryProperties2KHR { 5116 VkStructureType sType 5117 void* pNext 5118 VkPhysicalDeviceMemoryProperties memoryProperties 5119} 5120 5121@extension("VK_KHR_get_physical_device_properties2") // 60 5122class VkSparseImageFormatProperties2KHR { 5123 VkStructureType sType 5124 void* pNext 5125 VkSparseImageFormatProperties properties 5126} 5127 5128@extension("VK_KHR_get_physical_device_properties2") // 60 5129class VkPhysicalDeviceSparseImageFormatInfo2KHR { 5130 VkStructureType sType 5131 const void* pNext 5132 VkFormat format 5133 VkImageType type 5134 VkSampleCountFlagBits samples 5135 VkImageUsageFlags usage 5136 VkImageTiling tiling 5137} 5138 5139@extension("VK_KHR_device_group") // 61 5140class VkMemoryAllocateFlagsInfoKHR { 5141 VkStructureType sType 5142 const void* pNext 5143 VkMemoryAllocateFlagsKHR flags 5144 u32 deviceMask 5145} 5146 5147@extension("VK_KHR_device_group") // 61 5148class VkBindBufferMemoryDeviceGroupInfoKHR { 5149 VkStructureType sType 5150 const void* pNext 5151 u32 deviceIndexCount 5152 const u32* pDeviceIndices 5153} 5154 5155@extension("VK_KHR_device_group") // 61 5156class VkBindImageMemoryDeviceGroupInfoKHR { 5157 VkStructureType sType 5158 const void* pNext 5159 u32 deviceIndexCount 5160 const u32* pDeviceIndices 5161 u32 SFRRectCount 5162 const VkRect2D* pSFRRects 5163} 5164 5165@extension("VK_KHR_device_group") // 61 5166class VkDeviceGroupRenderPassBeginInfoKHR { 5167 VkStructureType sType 5168 const void* pNext 5169 u32 deviceMask 5170 u32 deviceRenderAreaCount 5171 const VkRect2D* pDeviceRenderAreas 5172} 5173 5174@extension("VK_KHR_device_group") // 61 5175class VkDeviceGroupCommandBufferBeginInfoKHR { 5176 VkStructureType sType 5177 const void* pNext 5178 u32 deviceMask 5179} 5180 5181@extension("VK_KHR_device_group") // 61 5182class VkDeviceGroupSubmitInfoKHR { 5183 VkStructureType sType 5184 const void* pNext 5185 u32 waitSemaphoreCount 5186 const u32* pWaitSemaphoreDeviceIndices 5187 u32 commandBufferCount 5188 const u32* pCommandBufferDeviceMasks 5189 u32 signalSemaphoreCount 5190 const u32* pSignalSemaphoreDeviceIndices 5191} 5192 5193@extension("VK_KHR_device_group") // 61 5194class VkDeviceGroupBindSparseInfoKHR { 5195 VkStructureType sType 5196 const void* pNext 5197 u32 resourceDeviceIndex 5198 u32 memoryDeviceIndex 5199} 5200 5201@extension("VK_EXT_validation_flags") // 62 5202class VkValidationFlagsEXT { 5203 VkStructureType sType 5204 const void* pNext 5205 u32 disabledValidationCheckCount 5206 VkValidationCheckEXT* pDisabledValidationChecks 5207} 5208 5209@extension("VK_NN_vi_surface") // 63 5210class VkViSurfaceCreateInfoNN { 5211 VkStructureType sType 5212 const void* pNext 5213 VkViSurfaceCreateFlagsNN flags 5214 void* window 5215} 5216 5217@extension("VK_KHR_device_group_creation") // 71 5218class VkPhysicalDeviceGroupPropertiesKHR { 5219 VkStructureType sType 5220 void* pNext 5221 u32 physicalDeviceCount 5222 VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices 5223 VkBool32 subsetAllocation 5224} 5225 5226@extension("VK_KHR_device_group_creation") // 71 5227class VkDeviceGroupDeviceCreateInfoKHR { 5228 VkStructureType sType 5229 const void* pNext 5230 u32 physicalDeviceCount 5231 const VkPhysicalDevice* pPhysicalDevices 5232} 5233 5234@extension("VK_KHR_external_memory_capabilities") // 72 5235class VkExternalMemoryPropertiesKHR { 5236 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures 5237 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes 5238 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes 5239} 5240 5241@extension("VK_KHR_external_memory_capabilities") // 72 5242class VkPhysicalDeviceExternalImageFormatInfoKHR { 5243 VkStructureType sType 5244 const void* pNext 5245 VkExternalMemoryHandleTypeFlagBitsKHR handleType 5246} 5247 5248@extension("VK_KHR_external_memory_capabilities") // 72 5249class VkExternalImageFormatPropertiesKHR { 5250 VkStructureType sType 5251 void* pNext 5252 VkExternalMemoryPropertiesKHR externalMemoryProperties 5253} 5254 5255@extension("VK_KHR_external_memory_capabilities") // 72 5256class VkPhysicalDeviceExternalBufferInfoKHR { 5257 VkStructureType sType 5258 const void* pNext 5259 VkBufferCreateFlags flags 5260 VkBufferUsageFlags usage 5261 VkExternalMemoryHandleTypeFlagBitsKHR handleType 5262} 5263 5264@extension("VK_KHR_external_memory_capabilities") // 72 5265class VkExternalBufferPropertiesKHR { 5266 VkStructureType sType 5267 void* pNext 5268 VkExternalMemoryPropertiesKHR externalMemoryProperties 5269} 5270 5271@extension("VK_KHR_external_memory_capabilities") // 72 5272class VkPhysicalDeviceIDPropertiesKHR { 5273 VkStructureType sType 5274 void* pNext 5275 u8[VK_UUID_SIZE] deviceUUID 5276 u8[VK_UUID_SIZE] driverUUID 5277 u8[VK_LUID_SIZE] deviceLUID 5278 u32 deviceNodeMask 5279 VkBool32 deviceLUIDValid 5280} 5281 5282@extension("VK_KHR_external_memory") // 73 5283class VkExternalMemoryImageCreateInfoKHR { 5284 VkStructureType sType 5285 const void* pNext 5286 VkExternalMemoryHandleTypeFlagsKHR handleTypes 5287} 5288 5289@extension("VK_KHR_external_memory") // 73 5290class VkExternalMemoryBufferCreateInfoKHR { 5291 VkStructureType sType 5292 const void* pNext 5293 VkExternalMemoryHandleTypeFlagsKHR handleTypes 5294} 5295 5296@extension("VK_KHR_external_memory") // 73 5297class VkExportMemoryAllocateInfoKHR { 5298 VkStructureType sType 5299 const void* pNext 5300 VkExternalMemoryHandleTypeFlagsKHR handleTypes 5301} 5302 5303@extension("VK_KHR_external_memory_win32") // 74 5304class VkImportMemoryWin32HandleInfoKHR { 5305 VkStructureType sType 5306 const void* pNext 5307 VkExternalMemoryHandleTypeFlagBitsKHR handleType 5308 platform.HANDLE handle 5309 platform.LPCWSTR name 5310} 5311 5312@extension("VK_KHR_external_memory_win32") // 74 5313class VkExportMemoryWin32HandleInfoKHR { 5314 VkStructureType sType 5315 const void* pNext 5316 const platform.SECURITY_ATTRIBUTES* pAttributes 5317 platform.DWORD dwAccess 5318 platform.LPCWSTR name 5319} 5320 5321@extension("VK_KHR_external_memory_win32") // 74 5322class VkMemoryWin32HandlePropertiesKHR { 5323 VkStructureType sType 5324 void* pNext 5325 u32 memoryTypeBits 5326} 5327 5328@extension("VK_KHR_external_memory_win32") // 74 5329class VkMemoryGetWin32HandleInfoKHR { 5330 VkStructureType sType 5331 void* pNext 5332 VkDeviceMemory memory 5333 VkExternalMemoryHandleTypeFlagBitsKHR handleType 5334} 5335 5336@extension("VK_KHR_external_memory_fd") // 75 5337class VkImportMemoryFdInfoKHR { 5338 VkStructureType sType 5339 const void* pNext 5340 VkExternalMemoryHandleTypeFlagBitsKHR handleType 5341 int fd 5342} 5343 5344@extension("VK_KHR_external_memory_fd") // 75 5345class VkMemoryFdPropertiesKHR { 5346 VkStructureType sType 5347 void* pNext 5348 u32 memoryTypeBits 5349} 5350 5351@extension("VK_KHR_external_memory_fd") // 75 5352class VkMemoryGetFdInfoKHR { 5353 VkStructureType sType 5354 void* pNext 5355 VkDeviceMemory memory 5356 VkExternalMemoryHandleTypeFlagBitsKHR handleType 5357} 5358 5359@extension("VK_KHR_win32_keyed_mutex") // 76 5360class VkWin32KeyedMutexAcquireReleaseInfoKHR { 5361 VkStructureType sType 5362 const void* pNext 5363 u32 acquireCount 5364 const VkDeviceMemory* pAcquireSyncs 5365 const u64* pAcquireKeys 5366 const u32* pAcquireTimeouts 5367 u32 releaseCount 5368 const VkDeviceMemory* pReleaseSyncs 5369 const u64* pReleaseKeys 5370} 5371 5372@extension("VK_KHR_external_semaphore_capabilities") // 77 5373class VkPhysicalDeviceExternalSemaphoreInfoKHR { 5374 VkStructureType sType 5375 const void* pNext 5376 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType 5377} 5378 5379@extension("VK_KHR_external_semaphore_capabilities") // 77 5380class VkExternalSemaphorePropertiesKHR { 5381 VkStructureType sType 5382 void* pNext 5383 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes 5384 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes 5385 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures 5386} 5387 5388@extension("VK_KHR_external_semaphore") // 78 5389class VkExportSemaphoreCreateInfoKHR { 5390 VkStructureType sType 5391 const void* pNext 5392 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes 5393} 5394 5395@extension("VK_KHR_external_semaphore_win32") // 79 5396class VkImportSemaphoreWin32HandleInfoKHR { 5397 VkStructureType sType 5398 const void* pNext 5399 VkSemaphore semaphore 5400 VkSemaphoreImportFlagsKHR flags 5401 VkExternalSemaphoreHandleTypeFlagsKHR handleType 5402 platform.HANDLE handle 5403 platform.LPCWSTR name 5404} 5405 5406@extension("VK_KHR_external_semaphore_win32") // 79 5407class VkExportSemaphoreWin32HandleInfoKHR { 5408 VkStructureType sType 5409 const void* pNext 5410 const platform.SECURITY_ATTRIBUTES* pAttributes 5411 platform.DWORD dwAccess 5412 platform.LPCWSTR name 5413} 5414 5415@extension("VK_KHR_external_semaphore_win32") // 79 5416class VkD3D12FenceSubmitInfoKHR { 5417 VkStructureType sType 5418 const void* pNext 5419 u32 waitSemaphoreValuesCount 5420 const u64* pWaitSemaphoreValues 5421 u32 signalSemaphoreValuesCount 5422 const u64* pSignalSemaphoreValues 5423} 5424 5425@extension("VK_KHR_external_semaphore_win32") // 79 5426class VkSemaphoreGetWin32HandleInfoKHR { 5427 VkStructureType sType 5428 const void* pNext 5429 VkSemaphore semaphore 5430 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType 5431} 5432 5433@extension("VK_KHR_external_semaphore_fd") // 80 5434class VkImportSemaphoreFdInfoKHR { 5435 VkStructureType sType 5436 const void* pNext 5437 VkSemaphore semaphore 5438 VkSemaphoreImportFlagsKHR flags 5439 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType 5440 s32 fd 5441} 5442 5443@extension("VK_KHR_external_semaphore_fd") // 80 5444class VkSemaphoreGetFdInfoKHR { 5445 VkStructureType sType 5446 const void* pNext 5447 VkSemaphore semaphore 5448 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType 5449} 5450 5451@extension("VK_KHR_push_descriptor") // 81 5452class VkPhysicalDevicePushDescriptorPropertiesKHR { 5453 VkStructureType sType 5454 void* pNext 5455 u32 maxPushDescriptors 5456} 5457 5458@extension("VK_KHR_16bit_storage") // 84 5459class VkPhysicalDevice16BitStorageFeaturesKHR { 5460 VkStructureType sType 5461 void* pNext 5462 VkBool32 storageBuffer16BitAccess 5463 VkBool32 uniformAndStorageBuffer16BitAccess 5464 VkBool32 storagePushConstant16 5465 VkBool32 storageInputOutput16 5466} 5467 5468@extension("VK_KHR_incremental_present") // 85 5469class VkRectLayerKHR { 5470 VkOffset2D offset 5471 VkExtent2D extent 5472 u32 layer 5473} 5474 5475@extension("VK_KHR_incremental_present") // 85 5476class VkPresentRegionKHR { 5477 u32 rectangleCount 5478 const VkRectLayerKHR* pRectangles 5479} 5480 5481@extension("VK_KHR_incremental_present") // 85 5482class VkPresentRegionsKHR { 5483 VkStructureType sType 5484 const void* pNext 5485 u32 swapchainCount 5486 const VkPresentRegionKHR* pRegions 5487} 5488 5489@extension("VK_KHR_descriptor_update_template") // 86 5490class VkDescriptorUpdateTemplateEntryKHR { 5491 u32 dstBinding 5492 u32 dstArrayElement 5493 u32 descriptorCount 5494 VkDescriptorType descriptorType 5495 platform.size_t offset 5496 platform.size_t stride 5497} 5498 5499@extension("VK_KHR_descriptor_update_template") // 86 5500class VkDescriptorUpdateTemplateCreateInfoKHR { 5501 VkStructureType sType 5502 void* pNext 5503 VkDescriptorUpdateTemplateCreateFlagsKHR flags 5504 u32 descriptorUpdateEntryCount 5505 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries 5506 VkDescriptorUpdateTemplateTypeKHR templateType 5507 VkDescriptorSetLayout descriptorSetLayout 5508 VkPipelineBindPoint pipelineBindPoint 5509 VkPipelineLayout pipelineLayout 5510 u32 set 5511} 5512 5513@extension("VK_NVX_device_generated_commands") // 87 5514class VkDeviceGeneratedCommandsFeaturesNVX { 5515 VkStructureType sType 5516 const void* pNext 5517 VkBool32 computeBindingPointSupport 5518} 5519 5520@extension("VK_NVX_device_generated_commands") // 87 5521class VkDeviceGeneratedCommandsLimitsNVX { 5522 VkStructureType sType 5523 const void* pNext 5524 u32 maxIndirectCommandsLayoutTokenCount 5525 u32 maxObjectEntryCounts 5526 u32 minSequenceCountBufferOffsetAlignment 5527 u32 minSequenceIndexBufferOffsetAlignment 5528 u32 minCommandsTokenBufferOffsetAlignment 5529} 5530 5531@extension("VK_NVX_device_generated_commands") // 87 5532class VkIndirectCommandsTokenNVX { 5533 VkIndirectCommandsTokenTypeNVX tokenType 5534 VkBuffer buffer 5535 VkDeviceSize offset 5536} 5537 5538@extension("VK_NVX_device_generated_commands") // 87 5539class VkIndirectCommandsLayoutTokenNVX { 5540 VkIndirectCommandsTokenTypeNVX tokenType 5541 u32 bindingUnit 5542 u32 dynamicCount 5543 u32 divisor 5544} 5545 5546@extension("VK_NVX_device_generated_commands") // 87 5547class VkIndirectCommandsLayoutCreateInfoNVX { 5548 VkStructureType sType 5549 const void* pNext 5550 VkPipelineBindPoint pipelineBindPoint 5551 VkIndirectCommandsLayoutUsageFlagsNVX flags 5552 u32 tokenCount 5553 const VkIndirectCommandsLayoutTokenNVX* pTokens 5554} 5555 5556@extension("VK_NVX_device_generated_commands") // 87 5557class VkCmdProcessCommandsInfoNVX { 5558 VkStructureType sType 5559 const void* pNext 5560 VkObjectTableNVX objectTable 5561 VkIndirectCommandsLayoutNVX indirectCommandsLayout 5562 u32 indirectCommandsTokenCount 5563 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens 5564 u32 maxSequencesCount 5565 VkCommandBuffer targetCommandBuffer 5566 VkBuffer sequencesCountBuffer 5567 VkDeviceSize sequencesCountOffset 5568 VkBuffer sequencesIndexBuffer 5569 VkDeviceSize sequencesIndexOffset 5570} 5571 5572@extension("VK_NVX_device_generated_commands") // 87 5573class VkCmdReserveSpaceForCommandsInfoNVX { 5574 VkStructureType sType 5575 const void* pNext 5576 VkObjectTableNVX objectTable 5577 VkIndirectCommandsLayoutNVX indirectCommandsLayout 5578 u32 maxSequencesCount 5579} 5580 5581@extension("VK_NVX_device_generated_commands") // 87 5582class VkObjectTableCreateInfoNVX { 5583 VkStructureType sType 5584 const void* pNext 5585 u32 objectCount 5586 const VkObjectEntryTypeNVX* pObjectEntryTypes 5587 const u32* pObjectEntryCounts 5588 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags 5589 u32 maxUniformBuffersPerDescriptor 5590 u32 maxStorageBuffersPerDescriptor 5591 u32 maxStorageImagesPerDescriptor 5592 u32 maxSampledImagesPerDescriptor 5593 u32 maxPipelineLayouts 5594} 5595 5596@extension("VK_NVX_device_generated_commands") // 87 5597class VkObjectTableEntryNVX { 5598 VkObjectEntryTypeNVX type 5599 VkObjectEntryUsageFlagsNVX flags 5600} 5601 5602@extension("VK_NVX_device_generated_commands") // 87 5603class VkObjectTablePipelineEntryNVX { 5604 VkObjectEntryTypeNVX type 5605 VkObjectEntryUsageFlagsNVX flags 5606 VkPipeline pipeline 5607} 5608 5609@extension("VK_NVX_device_generated_commands") // 87 5610class VkObjectTableDescriptorSetEntryNVX { 5611 VkObjectEntryTypeNVX type 5612 VkObjectEntryUsageFlagsNVX flags 5613 VkPipelineLayout pipelineLayout 5614 VkDescriptorSet descriptorSet 5615} 5616 5617@extension("VK_NVX_device_generated_commands") // 87 5618class VkObjectTableVertexBufferEntryNVX { 5619 VkObjectEntryTypeNVX type 5620 VkObjectEntryUsageFlagsNVX flags 5621 VkBuffer buffer 5622} 5623 5624@extension("VK_NVX_device_generated_commands") // 87 5625class VkObjectTableIndexBufferEntryNVX { 5626 VkObjectEntryTypeNVX type 5627 VkObjectEntryUsageFlagsNVX flags 5628 VkBuffer buffer 5629 VkIndexType indexType 5630} 5631 5632@extension("VK_NVX_device_generated_commands") // 87 5633class VkObjectTablePushConstantEntryNVX { 5634 VkObjectEntryTypeNVX type 5635 VkObjectEntryUsageFlagsNVX flags 5636 VkPipelineLayout pipelineLayout 5637 VkShaderStageFlags stageFlags 5638} 5639 5640@extension("VK_NV_clip_space_w_scaling") // 88 5641class VkViewportWScalingNV { 5642 f32 xcoeff 5643 f32 ycoeff 5644} 5645 5646@extension("VK_NV_clip_space_w_scaling") // 88 5647class VkPipelineViewportWScalingStateCreateInfoNV { 5648 VkStructureType sType 5649 const void* pNext 5650 VkBool32 viewportWScalingEnable 5651 u32 viewportCount 5652 const VkViewportWScalingNV* pViewportWScalings 5653} 5654 5655@extension("VK_EXT_display_surface_counter") // 91 5656class VkSurfaceCapabilities2EXT { 5657 VkStructureType sType 5658 void* pNext 5659 u32 minImageCount 5660 u32 maxImageCount 5661 VkExtent2D currentExtent 5662 VkExtent2D minImageExtent 5663 VkExtent2D maxImageExtent 5664 u32 maxImageArrayLayers 5665 VkSurfaceTransformFlagsKHR supportedTransforms 5666 VkSurfaceTransformFlagBitsKHR currentTransform 5667 VkCompositeAlphaFlagsKHR supportedCompositeAlpha 5668 VkImageUsageFlags supportedUsageFlags 5669 VkSurfaceCounterFlagsEXT supportedSurfaceCounters 5670} 5671 5672@extension("VK_EXT_display_control") // 92 5673class VkDisplayPowerInfoEXT { 5674 VkStructureType sType 5675 const void* pNext 5676 VkDisplayPowerStateEXT powerState 5677} 5678 5679@extension("VK_EXT_display_control") // 92 5680class VkDeviceEventInfoEXT { 5681 VkStructureType sType 5682 const void* pNext 5683 VkDeviceEventTypeEXT deviceEvent 5684} 5685 5686@extension("VK_EXT_display_control") // 92 5687class VkDisplayEventInfoEXT { 5688 VkStructureType sType 5689 const void* pNext 5690 VkDisplayEventTypeEXT displayEvent 5691} 5692 5693@extension("VK_EXT_display_control") // 92 5694class VkSwapchainCounterCreateInfoEXT { 5695 VkStructureType sType 5696 const void* pNext 5697 VkSurfaceCounterFlagsEXT surfaceCounters 5698} 5699 5700@extension("VK_GOOGLE_display_timing") // 93 5701class VkRefreshCycleDurationGOOGLE { 5702 u64 refreshDuration 5703} 5704 5705@extension("VK_GOOGLE_display_timing") // 93 5706class VkPastPresentationTimingGOOGLE { 5707 u32 presentID 5708 u64 desiredPresentTime 5709 u64 actualPresentTime 5710 u64 earliestPresentTime 5711 u64 presentMargin 5712} 5713 5714@extension("VK_GOOGLE_display_timing") // 93 5715class VkPresentTimeGOOGLE { 5716 u32 presentID 5717 u64 desiredPresentTime 5718} 5719 5720@extension("VK_GOOGLE_display_timing") // 93 5721class VkPresentTimesInfoGOOGLE { 5722 VkStructureType sType 5723 const void* pNext 5724 u32 swapchainCount 5725 const VkPresentTimeGOOGLE* pTimes 5726} 5727 5728@extension("VK_NVX_multiview_per_view_attributes") // 98 5729class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { 5730 VkStructureType sType 5731 void* pNext 5732 VkBool32 perViewPositionAllComponents 5733} 5734 5735@extension("VK_NV_viewport_swizzle") // 99 5736class VkViewportSwizzleNV { 5737 VkViewportCoordinateSwizzleNV x 5738 VkViewportCoordinateSwizzleNV y 5739 VkViewportCoordinateSwizzleNV z 5740 VkViewportCoordinateSwizzleNV w 5741} 5742 5743@extension("VK_NV_viewport_swizzle") // 99 5744class VkPipelineViewportSwizzleStateCreateInfoNV { 5745 VkStructureType sType 5746 const void* pNext 5747 VkPipelineViewportSwizzleStateCreateFlagsNV flags 5748 u32 viewportCount 5749 const VkViewportSwizzleNV* pViewportSwizzles 5750} 5751 5752@extension("VK_EXT_discard_rectangles") // 100 5753class VkPhysicalDeviceDiscardRectanglePropertiesEXT { 5754 VkStructureType sType 5755 void* pNext 5756 u32 maxDiscardRectangles 5757} 5758 5759@extension("VK_EXT_discard_rectangles") // 100 5760class VkPipelineDiscardRectangleStateCreateInfoEXT { 5761 VkStructureType sType 5762 const void* pNext 5763 VkPipelineDiscardRectangleStateCreateFlagsEXT flags 5764 VkDiscardRectangleModeEXT discardRectangleMode 5765 u32 discardRectangleCount 5766 const VkRect2D* pDiscardRectangles 5767} 5768 5769@extension("VK_EXT_conservative_rasterization") // 102 5770class VkPhysicalDeviceConservativeRasterizationPropertiesEXT { 5771 VkStructureType sType 5772 void* pNext 5773 f32 primitiveOverestimationSize 5774 f32 maxExtraPrimitiveOverestimationSize 5775 f32 extraPrimitiveOverestimationSizeGranularity 5776 VkBool32 primitiveUnderestimation 5777 VkBool32 conservativePointAndLineRasterization 5778 VkBool32 degenerateTrianglesRasterized 5779 VkBool32 degenerateLinesRasterized 5780 VkBool32 fullyCoveredFragmentShaderInputVariable 5781 VkBool32 conservativeRasterizationPostDepthCoverage 5782} 5783 5784@extension("VK_EXT_conservative_rasterization") // 102 5785class VkPipelineRasterizationConservativeStateCreateInfoEXT { 5786 VkStructureType sType 5787 const void* pNext 5788 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags 5789 VkConservativeRasterizationModeEXT conservativeRasterizationMode 5790 f32 extraPrimitiveOverestimationSize 5791} 5792 5793@extension("VK_EXT_hdr_metadata") // 106 5794class VkXYColorEXT { 5795 f32 x 5796 f32 y 5797} 5798 5799@extension("VK_EXT_hdr_metadata") // 106 5800class VkHdrMetadataEXT { 5801 VkStructureType sType 5802 const void* pNext 5803 VkXYColorEXT displayPrimaryRed 5804 VkXYColorEXT displayPrimaryGreen 5805 VkXYColorEXT displayPrimaryBlue 5806 VkXYColorEXT whitePoint 5807 f32 maxLuminance 5808 f32 minLuminance 5809 f32 maxContentLightLevel 5810 f32 maxFrameAverageLightLevel 5811} 5812 5813@extension("VK_KHR_shared_presentable_image") // 112 5814class VkSharedPresentSurfaceCapabilitiesKHR { 5815 VkStructureType sType 5816 const void* pNext 5817 VkImageUsageFlags sharedPresentSupportedUsageFlags 5818} 5819 5820@extension("VK_KHR_external_fence_capabilities") // 113 5821class VkPhysicalDeviceExternalFenceInfoKHR { 5822 VkStructureType sType 5823 const void* pNext 5824 VkExternalFenceHandleTypeFlagBitsKHR handleType 5825} 5826 5827@extension("VK_KHR_external_fence_capabilities") // 113 5828class VkExternalFencePropertiesKHR { 5829 VkStructureType sType 5830 void* pNext 5831 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes 5832 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes 5833 VkExternalFenceFeatureFlagsKHR externalFenceFeatures 5834} 5835 5836@extension("VK_KHR_external_fence") // 114 5837class VkExportFenceCreateInfoKHR { 5838 VkStructureType sType 5839 const void* pNext 5840 VkExternalFenceHandleTypeFlagsKHR handleTypes 5841} 5842 5843@extension("VK_KHR_external_fence_win32") // 115 5844class VkImportFenceWin32HandleInfoKHR { 5845 VkStructureType sType 5846 const void* pNext 5847 VkFence fence 5848 VkFenceImportFlagsKHR flags 5849 VkExternalFenceHandleTypeFlagBitsKHR handleType 5850 platform.HANDLE handle 5851 platform.LPCWSTR name 5852} 5853 5854@extension("VK_KHR_external_fence_win32") // 115 5855class VkExportFenceWin32HandleInfoKHR { 5856 VkStructureType sType 5857 const void* pNext 5858 const platform.SECURITY_ATTRIBUTES* pAttributes 5859 platform.DWORD dwAccess 5860 platform.LPCWSTR name 5861} 5862 5863@extension("VK_KHR_external_fence_win32") // 115 5864class VkFenceGetWin32HandleInfoKHR { 5865 VkStructureType sType 5866 const void* pNext 5867 VkFence fence 5868 VkExternalFenceHandleTypeFlagBitsKHR handleType 5869} 5870 5871@extension("VK_KHR_external_fence_fd") // 116 5872class VkImportFenceFdInfoKHR { 5873 VkStructureType sType 5874 const void* pNext 5875 VkFence fence 5876 VkFenceImportFlagsKHR flags 5877 VkExternalFenceHandleTypeFlagBitsKHR handleType 5878 int fd 5879} 5880 5881@extension("VK_KHR_external_fence_fd") // 116 5882class VkFenceGetFdInfoKHR { 5883 VkStructureType sType 5884 const void* pNext 5885 VkFence fence 5886 VkExternalFenceHandleTypeFlagBitsKHR handleType 5887} 5888 5889@extension("VK_KHR_maintenance2") // 118 5890class VkPhysicalDevicePointClippingPropertiesKHR { 5891 VkStructureType sType 5892 void* pNext 5893 VkPointClippingBehaviorKHR pointClippingBehavior 5894} 5895 5896@extension("VK_KHR_maintenance2") // 118 5897class VkInputAttachmentAspectReferenceKHR { 5898 u32 subpass 5899 u32 inputAttachmentIndex 5900 VkImageAspectFlags aspectMask 5901} 5902 5903@extension("VK_KHR_maintenance2") // 118 5904class VkRenderPassInputAttachmentAspectCreateInfoKHR { 5905 VkStructureType sType 5906 const void* pNext 5907 u32 aspectReferenceCount 5908 const VkInputAttachmentAspectReferenceKHR* pAspectReferences 5909} 5910 5911@extension("VK_KHR_maintenance2") // 118 5912class VkImageViewUsageCreateInfoKHR { 5913 VkStructureType sType 5914 const void* pNext 5915 VkImageUsageFlags usage 5916} 5917 5918@extension("VK_KHR_maintenance2") // 118 5919class VkPipelineTessellationDomainOriginStateCreateInfoKHR { 5920 VkStructureType sType 5921 const void* pNext 5922 VkTessellationDomainOriginKHR domainOrigin 5923} 5924 5925@extension("VK_KHR_get_surface_capabilities2") // 120 5926class VkPhysicalDeviceSurfaceInfo2KHR { 5927 VkStructureType sType 5928 const void* pNext 5929 VkSurfaceKHR surface 5930} 5931 5932@extension("VK_KHR_get_surface_capabilities2") // 120 5933class VkSurfaceCapabilities2KHR { 5934 VkStructureType sType 5935 void* pNext 5936 VkSurfaceCapabilitiesKHR surfaceCapabilities 5937} 5938 5939@extension("VK_KHR_get_surface_capabilities2") // 120 5940class VkSurfaceFormat2KHR { 5941 VkStructureType sType 5942 void* pNext 5943 VkSurfaceFormatKHR surfaceFormat 5944} 5945 5946@extension("VK_KHR_variable_pointers") // 121 5947class VkPhysicalDeviceVariablePointerFeaturesKHR { 5948 VkStructureType sType 5949 void* pNext 5950 VkBool32 variablePointersStorageBuffer 5951 VkBool32 variablePointers 5952} 5953 5954@extension("VK_MVK_ios_surface") // 123 5955class VkIOSSurfaceCreateInfoMVK { 5956 VkStructureType sType 5957 const void* pNext 5958 VkIOSSurfaceCreateFlagsMVK flags 5959 const void* pView 5960} 5961 5962@extension("VK_MVK_macos_surface") // 124 5963class VkMacOSSurfaceCreateInfoMVK { 5964 VkStructureType sType 5965 const void* pNext 5966 VkMacOSSurfaceCreateFlagsMVK flags 5967 const void* pView 5968} 5969 5970@extension("VK_KHR_dedicated_allocation") // 128 5971class VkMemoryDedicatedRequirementsKHR { 5972 VkStructureType sType 5973 void* pNext 5974 VkBool32 prefersDedicatedAllocation 5975 VkBool32 requiresDedicatedAllocation 5976} 5977 5978@extension("VK_KHR_dedicated_allocation") // 128 5979class VkMemoryDedicatedAllocateInfoKHR { 5980 VkStructureType sType 5981 const void* pNext 5982 VkImage image 5983 VkBuffer buffer 5984} 5985 5986@extension("VK_EXT_debug_utils") // 129 5987class VkDebugUtilsObjectNameInfoEXT { 5988 VkStructureType sType 5989 const void* pNext 5990 VkObjectType objectType 5991 u64 objectHandle 5992 const char* pObjectName 5993} 5994 5995@extension("VK_EXT_debug_utils") // 129 5996class VkDebugUtilsObjectTagInfoEXT { 5997 VkStructureType sType 5998 const void* pNext 5999 VkObjectType objectType 6000 u64 objectHandle 6001 u64 tagName 6002 platform.size_t tagSize 6003 const void* pTag 6004} 6005 6006@extension("VK_EXT_debug_utils") // 129 6007class VkDebugUtilsLabelEXT { 6008 VkStructureType sType 6009 const void* pNext 6010 const char* pLabelName 6011 f32[4] color 6012} 6013 6014@extension("VK_EXT_debug_utils") // 129 6015class VkDebugUtilsMessengerCallbackDataEXT { 6016 VkStructureType sType 6017 const void* pNext 6018 VkDebugUtilsMessengerCallbackDataFlagsEXT flags 6019 const char* pMessageIdName 6020 s32 messageIdNumber 6021 const char* pMessage 6022 u32 queueLabelCount 6023 VkDebugUtilsLabelEXT* pQueueLabels 6024 u32 cmdBufLabelCount 6025 VkDebugUtilsLabelEXT* pCmdBufLabels 6026 u32 objectCount 6027 VkDebugUtilsObjectNameInfoEXT* pObjects 6028} 6029 6030@extension("VK_EXT_debug_utils") // 129 6031class VkDebugUtilsMessengerCreateInfoEXT { 6032 VkStructureType sType 6033 const void* pNext 6034 VkDebugUtilsMessengerCreateFlagsEXT flags 6035 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity 6036 VkDebugUtilsMessageTypeFlagsEXT messageType 6037 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback 6038 void* pUserData 6039} 6040 6041@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131 6042class VkAndroidHardwareBufferUsageANDROID { 6043 VkStructureType sType 6044 void* pNext 6045 u64 androidHardwareBufferUsage 6046} 6047 6048@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 6049class VkAndroidHardwareBufferPropertiesANDROID { 6050 VkStructureType sType 6051 void* pNext 6052 VkDeviceSize allocationSize 6053 u32 memoryTypeBits 6054} 6055 6056@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 6057class VkAndroidHardwareBufferFormatPropertiesANDROID { 6058 VkStructureType sType 6059 void* pNext 6060 VkFormat format 6061 u64 externalFormat 6062 VkFormatFeatureFlags formatFeatures 6063 VkComponentMapping samplerYcbcrConversionComponents 6064 VkSamplerYcbcrModelConversion suggestedYcbcrModel 6065 VkSamplerYcbcrRange suggestedYcbcrRange 6066 VkChromaLocation suggestedXChromaOffset 6067 VkChromaLocation suggestedYChromaOffset 6068} 6069 6070@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 6071class VkImportAndroidHardwareBufferInfoANDROID { 6072 VkStructureType sType 6073 const void* pNext 6074 platform.AHardwareBuffer* buffer 6075} 6076 6077@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 6078class VkMemoryGetAndroidHardwareBufferInfoANDROID { 6079 VkStructureType sType 6080 const void* pNext 6081 VkDeviceMemory memory 6082} 6083 6084@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 6085class VkExternalFormatANDROID { 6086 VkStructureType sType 6087 void* pNext 6088 u64 externalFormat 6089} 6090 6091@extension("VK_EXT_sampler_filter_minmax") // 131 6092class VkSamplerReductionModeCreateInfoEXT { 6093 VkStructureType sType 6094 const void* pNext 6095 VkSamplerReductionModeEXT reductionMode 6096} 6097 6098@extension("VK_EXT_sampler_filter_minmax") // 131 6099class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { 6100 VkStructureType sType 6101 void* pNext 6102 VkBool32 filterMinmaxSingleComponentFormats 6103 VkBool32 filterMinmaxImageComponentMapping 6104} 6105 6106@extension("VK_EXT_sample_locations") // 144 6107class VkSampleLocationEXT { 6108 f32 x 6109 f32 y 6110} 6111 6112@extension("VK_EXT_sample_locations") // 144 6113class VkSampleLocationsInfoEXT { 6114 VkStructureType sType 6115 const void* pNext 6116 VkSampleCountFlagBits sampleLocationsPerPixel 6117 VkExtent2D sampleLocationGridSize 6118 u32 sampleLocationsCount 6119 const VkSampleLocationEXT* pSampleLocations 6120} 6121 6122@extension("VK_EXT_sample_locations") // 144 6123class VkAttachmentSampleLocationsEXT { 6124 u32 attachmentIndex 6125 VkSampleLocationsInfoEXT sampleLocationsInfo 6126} 6127 6128@extension("VK_EXT_sample_locations") // 144 6129class VkSubpassSampleLocationsEXT { 6130 u32 subpassIndex 6131 VkSampleLocationsInfoEXT sampleLocationsInfo 6132} 6133 6134@extension("VK_EXT_sample_locations") // 144 6135class VkRenderPassSampleLocationsBeginInfoEXT { 6136 VkStructureType sType 6137 const void* pNext 6138 u32 attachmentInitialSampleLocationsCount 6139 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations 6140 u32 postSubpassSampleLocationsCount 6141 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations 6142} 6143 6144@extension("VK_EXT_sample_locations") // 144 6145class VkPipelineSampleLocationsStateCreateInfoEXT { 6146 VkStructureType sType 6147 const void* pNext 6148 VkBool32 sampleLocationsEnable 6149 VkSampleLocationsInfoEXT sampleLocationsInfo 6150} 6151 6152@extension("VK_EXT_sample_locations") // 144 6153class VkPhysicalDeviceSampleLocationsPropertiesEXT { 6154 VkStructureType sType 6155 void* pNext 6156 VkSampleCountFlags sampleLocationSampleCounts 6157 VkExtent2D maxSampleLocationGridSize 6158 f32[2] sampleLocationCoordinateRange 6159 u32 sampleLocationSubPixelBits 6160 VkBool32 variableSampleLocations 6161} 6162 6163@extension("VK_EXT_sample_locations") // 144 6164class VkMultisamplePropertiesEXT { 6165 VkStructureType sType 6166 void* pNext 6167 VkExtent2D maxSampleLocationGridSize 6168} 6169 6170@extension("VK_KHR_get_memory_requirements2") // 147 6171class VkBufferMemoryRequirementsInfo2KHR { 6172 VkStructureType sType 6173 const void* pNext 6174 VkBuffer buffer 6175} 6176 6177@extension("VK_KHR_get_memory_requirements2") // 147 6178class VkImageMemoryRequirementsInfo2KHR { 6179 VkStructureType sType 6180 const void* pNext 6181 VkImage image 6182} 6183 6184@extension("VK_KHR_get_memory_requirements2") // 147 6185class VkImageSparseMemoryRequirementsInfo2KHR { 6186 VkStructureType sType 6187 const void* pNext 6188 VkImage image 6189} 6190 6191@extension("VK_KHR_get_memory_requirements2") // 147 6192class VkMemoryRequirements2KHR { 6193 VkStructureType sType 6194 void* pNext 6195 VkMemoryRequirements memoryRequirements 6196} 6197 6198@extension("VK_KHR_get_memory_requirements2") // 147 6199class VkSparseImageMemoryRequirements2KHR { 6200 VkStructureType sType 6201 void* pNext 6202 VkSparseImageMemoryRequirements memoryRequirements 6203} 6204 6205@extension("VK_KHR_image_format_list") // 148 6206class VkImageFormatListCreateInfoKHR { 6207 VkStructureType sType 6208 const void* pNext 6209 u32 viewFormatCount 6210 const VkFormat* pViewFormats 6211} 6212 6213@extension("VK_EXT_blend_operation_advanced") // 149 6214class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { 6215 VkStructureType sType 6216 void* pNext 6217 VkBool32 advancedBlendCoherentOperations 6218} 6219 6220@extension("VK_EXT_blend_operation_advanced") // 149 6221class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { 6222 VkStructureType sType 6223 void* pNext 6224 u32 advancedBlendMaxColorAttachments 6225 VkBool32 advancedBlendIndependentBlend 6226 VkBool32 advancedBlendNonPremultipliedSrcColor 6227 VkBool32 advancedBlendNonPremultipliedDstColor 6228 VkBool32 advancedBlendCorrelatedOverlap 6229 VkBool32 advancedBlendAllOperations 6230} 6231 6232@extension("VK_EXT_blend_operation_advanced") // 149 6233class VkPipelineColorBlendAdvancedStateCreateInfoEXT { 6234 VkStructureType sType 6235 const void* pNext 6236 VkBool32 srcPremultiplied 6237 VkBool32 dstPremultiplied 6238 VkBlendOverlapEXT blendOverlap 6239} 6240 6241@extension("VK_NV_fragment_coverage_to_color") // 150 6242class VkPipelineCoverageToColorStateCreateInfoNV { 6243 VkStructureType sType 6244 const void* pNext 6245 VkPipelineCoverageToColorStateCreateFlagsNV flags 6246 VkBool32 coverageToColorEnable 6247 u32 coverageToColorLocation 6248} 6249 6250@extension("VK_NV_framebuffer_mixed_samples") // 153 6251class VkPipelineCoverageModulationStateCreateInfoNV { 6252 VkStructureType sType 6253 const void* pNext 6254 VkPipelineCoverageModulationStateCreateFlagsNV flags 6255 VkCoverageModulationModeNV coverageModulationMode 6256 VkBool32 coverageModulationTableEnable 6257 u32 coverageModulationTableCount 6258 const f32* pCoverageModulationTable 6259} 6260 6261@extension("VK_KHR_sampler_ycbcr_conversion") // 157 6262class VkSamplerYcbcrConversionCreateInfoKHR { 6263 VkStructureType sType 6264 const void* pNext 6265 VkFormat format 6266 VkSamplerYcbcrModelConversionKHR ycbcrModel 6267 VkSamplerYcbcrRangeKHR ycbcrRange 6268 VkComponentMapping components 6269 VkChromaLocationKHR xChromaOffset 6270 VkChromaLocationKHR yChromaOffset 6271 VkFilter chromaFilter 6272 VkBool32 forceExplicitReconstruction 6273} 6274 6275@extension("VK_KHR_sampler_ycbcr_conversion") // 157 6276class VkSamplerYcbcrConversionInfoKHR { 6277 VkStructureType sType 6278 const void* pNext 6279 VkSamplerYcbcrConversionKHR conversion 6280} 6281 6282@extension("VK_KHR_sampler_ycbcr_conversion") // 157 6283class VkBindImagePlaneMemoryInfoKHR { 6284 VkStructureType sType 6285 const void* pNext 6286 VkImageAspectFlagBits planeAspect 6287} 6288 6289@extension("VK_KHR_sampler_ycbcr_conversion") // 157 6290class VkImagePlaneMemoryRequirementsInfoKHR { 6291 VkStructureType sType 6292 const void* pNext 6293 VkImageAspectFlagBits planeAspect 6294} 6295 6296@extension("VK_KHR_sampler_ycbcr_conversion") // 157 6297class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR { 6298 VkStructureType sType 6299 void* pNext 6300 VkBool32 samplerYcbcrConversion 6301} 6302 6303@extension("VK_KHR_sampler_ycbcr_conversion") // 157 6304class VkSamplerYcbcrConversionImageFormatPropertiesKHR { 6305 VkStructureType sType 6306 void* pNext 6307 u32 combinedImageSamplerDescriptorCount 6308} 6309 6310@extension("VK_KHR_bind_memory2") // 158 6311class VkBindBufferMemoryInfoKHR { 6312 VkStructureType sType 6313 const void* pNext 6314 VkBuffer buffer 6315 VkDeviceMemory memory 6316 VkDeviceSize memoryOffset 6317} 6318 6319@extension("VK_KHR_bind_memory2") // 158 6320class VkBindImageMemoryInfoKHR { 6321 VkStructureType sType 6322 const void* pNext 6323 VkImage image 6324 VkDeviceMemory memory 6325 VkDeviceSize memoryOffset 6326} 6327 6328@extension("VK_EXT_validation_cache") // 161 6329class VkValidationCacheCreateInfoEXT { 6330 VkStructureType sType 6331 const void* pNext 6332 VkValidationCacheCreateFlagsEXT flags 6333 platform.size_t initialDataSize 6334 const void* pInitialData 6335} 6336 6337@extension("VK_EXT_validation_cache") // 161 6338class VkShaderModuleValidationCacheCreateInfoEXT { 6339 VkStructureType sType 6340 const void* pNext 6341 VkValidationCacheEXT validationCache 6342} 6343 6344@extension("VK_KHR_maintenance3") // 169 6345class VkPhysicalDeviceMaintenance3PropertiesKHR { 6346 VkStructureType sType 6347 void* pNext 6348 u32 maxPerSetDescriptors 6349 VkDeviceSize maxMemoryAllocationSize 6350} 6351 6352@extension("VK_KHR_maintenance3") // 169 6353class VkDescriptorSetLayoutSupportKHR { 6354 VkStructureType sType 6355 void* pNext 6356 VkBool32 supported 6357} 6358 6359@extension("VK_EXT_global_priority") // 175 6360class VkDeviceQueueGlobalPriorityCreateInfoEXT { 6361 VkStructureType sType 6362 const void* pNext 6363 VkQueueGlobalPriorityEXT globalPriority 6364} 6365 6366@extension("VK_EXT_external_memory_host") // 179 6367class VkImportMemoryHostPointerInfoEXT { 6368 VkStructureType sType 6369 const void* pNext 6370 VkExternalMemoryHandleTypeFlagBits handleType 6371 void* pHostPointer 6372} 6373 6374@extension("VK_EXT_external_memory_host") // 179 6375class VkMemoryHostPointerPropertiesEXT { 6376 VkStructureType sType 6377 void* pNext 6378 u32 memoryTypeBits 6379} 6380 6381@extension("VK_EXT_external_memory_host") // 179 6382class VkPhysicalDeviceExternalMemoryHostPropertiesEXT { 6383 VkStructureType sType 6384 void* pNext 6385 VkDeviceSize minImportedHostPointerAlignment 6386} 6387 6388 6389//////////////// 6390// Commands // 6391//////////////// 6392 6393// Function pointers. TODO: add support for function pointers. 6394 6395@external type void* PFN_vkVoidFunction 6396@pfn cmd void vkVoidFunction() { 6397} 6398 6399@external type void* PFN_vkAllocationFunction 6400@pfn cmd void* vkAllocationFunction( 6401 void* pUserData, 6402 platform.size_t size, 6403 platform.size_t alignment, 6404 VkSystemAllocationScope allocationScope) { 6405 return ? 6406} 6407 6408@external type void* PFN_vkReallocationFunction 6409@pfn cmd void* vkReallocationFunction( 6410 void* pUserData, 6411 void* pOriginal, 6412 platform.size_t size, 6413 platform.size_t alignment, 6414 VkSystemAllocationScope allocationScope) { 6415 return ? 6416} 6417 6418@external type void* PFN_vkFreeFunction 6419@pfn cmd void vkFreeFunction( 6420 void* pUserData, 6421 void* pMemory) { 6422} 6423 6424@external type void* PFN_vkInternalAllocationNotification 6425@pfn cmd void vkInternalAllocationNotification( 6426 void* pUserData, 6427 platform.size_t size, 6428 VkInternalAllocationType allocationType, 6429 VkSystemAllocationScope allocationScope) { 6430} 6431 6432@external type void* PFN_vkInternalFreeNotification 6433@pfn cmd void vkInternalFreeNotification( 6434 void* pUserData, 6435 platform.size_t size, 6436 VkInternalAllocationType allocationType, 6437 VkSystemAllocationScope allocationScope) { 6438} 6439 6440// Global functions 6441 6442@threadSafety("system") 6443cmd VkResult vkCreateInstance( 6444 const VkInstanceCreateInfo* pCreateInfo, 6445 const VkAllocationCallbacks* pAllocator, 6446 VkInstance* pInstance) { 6447 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO) 6448 6449 instance := ? 6450 pInstance[0] = instance 6451 State.Instances[instance] = new!InstanceObject() 6452 6453 layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount] 6454 extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount] 6455 6456 return ? 6457} 6458 6459@threadSafety("system") 6460cmd void vkDestroyInstance( 6461 VkInstance instance, 6462 const VkAllocationCallbacks* pAllocator) { 6463 instanceObject := GetInstance(instance) 6464 6465 State.Instances[instance] = null 6466} 6467 6468@threadSafety("system") 6469cmd VkResult vkEnumeratePhysicalDevices( 6470 VkInstance instance, 6471 u32* pPhysicalDeviceCount, 6472 VkPhysicalDevice* pPhysicalDevices) { 6473 instanceObject := GetInstance(instance) 6474 6475 physicalDeviceCount := as!u32(?) 6476 pPhysicalDeviceCount[0] = physicalDeviceCount 6477 physicalDevices := pPhysicalDevices[0:physicalDeviceCount] 6478 6479 for i in (0 .. physicalDeviceCount) { 6480 physicalDevice := ? 6481 physicalDevices[i] = physicalDevice 6482 if !(physicalDevice in State.PhysicalDevices) { 6483 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance) 6484 } 6485 } 6486 6487 return ? 6488} 6489 6490cmd PFN_vkVoidFunction vkGetDeviceProcAddr( 6491 VkDevice device, 6492 const char* pName) { 6493 if device != NULL_HANDLE { 6494 device := GetDevice(device) 6495 } 6496 6497 return ? 6498} 6499 6500cmd PFN_vkVoidFunction vkGetInstanceProcAddr( 6501 VkInstance instance, 6502 const char* pName) { 6503 if instance != NULL_HANDLE { 6504 instanceObject := GetInstance(instance) 6505 } 6506 6507 return ? 6508} 6509 6510cmd void vkGetPhysicalDeviceProperties( 6511 VkPhysicalDevice physicalDevice, 6512 VkPhysicalDeviceProperties* pProperties) { 6513 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 6514 6515 properties := ? 6516 pProperties[0] = properties 6517} 6518 6519cmd void vkGetPhysicalDeviceQueueFamilyProperties( 6520 VkPhysicalDevice physicalDevice, 6521 u32* pQueueFamilyPropertyCount, 6522 VkQueueFamilyProperties* pQueueFamilyProperties) { 6523 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 6524 // TODO: Figure out how to express fetch-count-or-properties 6525 // This version fails 'apic validate' with 'fence not allowed in 6526 // *semantic.Branch'. Other attempts have failed with the same or other 6527 // errors. 6528 // if pQueueFamilyProperties != null { 6529 // queuesProperties := pQueueFamilyProperties[0:pCount[0]] 6530 // for i in (0 .. pCount[0]) { 6531 // queueProperties := as!VkQueueFamilyProperties(?) 6532 // queuesProperties[i] = queueProperties 6533 // } 6534 // } else { 6535 // count := ? 6536 // pCount[0] = count 6537 // } 6538} 6539 6540cmd void vkGetPhysicalDeviceMemoryProperties( 6541 VkPhysicalDevice physicalDevice, 6542 VkPhysicalDeviceMemoryProperties* pMemoryProperties) { 6543 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 6544 6545 memoryProperties := ? 6546 pMemoryProperties[0] = memoryProperties 6547} 6548 6549cmd void vkGetPhysicalDeviceFeatures( 6550 VkPhysicalDevice physicalDevice, 6551 VkPhysicalDeviceFeatures* pFeatures) { 6552 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 6553 6554 features := ? 6555 pFeatures[0] = features 6556} 6557 6558cmd void vkGetPhysicalDeviceFormatProperties( 6559 VkPhysicalDevice physicalDevice, 6560 VkFormat format, 6561 VkFormatProperties* pFormatProperties) { 6562 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 6563 6564 formatProperties := ? 6565 pFormatProperties[0] = formatProperties 6566} 6567 6568cmd VkResult vkGetPhysicalDeviceImageFormatProperties( 6569 VkPhysicalDevice physicalDevice, 6570 VkFormat format, 6571 VkImageType type, 6572 VkImageTiling tiling, 6573 VkImageUsageFlags usage, 6574 VkImageCreateFlags flags, 6575 VkImageFormatProperties* pImageFormatProperties) { 6576 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 6577 6578 imageFormatProperties := ? 6579 pImageFormatProperties[0] = imageFormatProperties 6580 6581 return ? 6582} 6583 6584 6585// Device functions 6586 6587@threadSafety("system") 6588cmd VkResult vkCreateDevice( 6589 VkPhysicalDevice physicalDevice, 6590 const VkDeviceCreateInfo* pCreateInfo, 6591 const VkAllocationCallbacks* pAllocator, 6592 VkDevice* pDevice) { 6593 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO) 6594 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 6595 6596 device := ? 6597 pDevice[0] = device 6598 State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice) 6599 6600 return ? 6601} 6602 6603@threadSafety("system") 6604cmd void vkDestroyDevice( 6605 VkDevice device, 6606 const VkAllocationCallbacks* pAllocator) { 6607 deviceObject := GetDevice(device) 6608 6609 State.Devices[device] = null 6610} 6611 6612 6613// Extension discovery functions 6614 6615cmd VkResult vkEnumerateInstanceLayerProperties( 6616 u32* pPropertyCount, 6617 VkLayerProperties* pProperties) { 6618 count := as!u32(?) 6619 pPropertyCount[0] = count 6620 6621 properties := pProperties[0:count] 6622 for i in (0 .. count) { 6623 property := ? 6624 properties[i] = property 6625 } 6626 6627 return ? 6628} 6629 6630cmd VkResult vkEnumerateInstanceExtensionProperties( 6631 const char* pLayerName, 6632 u32* pPropertyCount, 6633 VkExtensionProperties* pProperties) { 6634 count := as!u32(?) 6635 pPropertyCount[0] = count 6636 6637 properties := pProperties[0:count] 6638 for i in (0 .. count) { 6639 property := ? 6640 properties[i] = property 6641 } 6642 6643 return ? 6644} 6645 6646cmd VkResult vkEnumerateDeviceLayerProperties( 6647 VkPhysicalDevice physicalDevice, 6648 u32* pPropertyCount, 6649 VkLayerProperties* pProperties) { 6650 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 6651 count := as!u32(?) 6652 pPropertyCount[0] = count 6653 6654 properties := pProperties[0:count] 6655 for i in (0 .. count) { 6656 property := ? 6657 properties[i] = property 6658 } 6659 6660 return ? 6661} 6662 6663cmd VkResult vkEnumerateDeviceExtensionProperties( 6664 VkPhysicalDevice physicalDevice, 6665 const char* pLayerName, 6666 u32* pPropertyCount, 6667 VkExtensionProperties* pProperties) { 6668 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 6669 6670 count := as!u32(?) 6671 pPropertyCount[0] = count 6672 6673 properties := pProperties[0:count] 6674 for i in (0 .. count) { 6675 property := ? 6676 properties[i] = property 6677 } 6678 6679 return ? 6680} 6681 6682 6683// Queue functions 6684 6685@threadSafety("system") 6686cmd void vkGetDeviceQueue( 6687 VkDevice device, 6688 u32 queueFamilyIndex, 6689 u32 queueIndex, 6690 VkQueue* pQueue) { 6691 deviceObject := GetDevice(device) 6692 6693 queue := ? 6694 pQueue[0] = queue 6695 6696 if !(queue in State.Queues) { 6697 State.Queues[queue] = new!QueueObject(device: device) 6698 } 6699} 6700 6701@threadSafety("app") 6702cmd VkResult vkQueueSubmit( 6703 VkQueue queue, 6704 u32 submitCount, 6705 const VkSubmitInfo* pSubmits, 6706 VkFence fence) { 6707 queueObject := GetQueue(queue) 6708 6709 if fence != NULL_HANDLE { 6710 fenceObject := GetFence(fence) 6711 assert(fenceObject.device == queueObject.device) 6712 } 6713 6714 // commandBuffers := pcommandBuffers[0:commandBufferCount] 6715 // for i in (0 .. commandBufferCount) { 6716 // commandBuffer := commandBuffers[i] 6717 // commandBufferObject := GetCommandBuffer(commandBuffer) 6718 // assert(commandBufferObject.device == queueObject.device) 6719 // 6720 // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags, 6721 // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.") 6722 // } 6723 6724 return ? 6725} 6726 6727@threadSafety("system") 6728cmd VkResult vkQueueWaitIdle( 6729 VkQueue queue) { 6730 queueObject := GetQueue(queue) 6731 6732 return ? 6733} 6734 6735@threadSafety("system") 6736cmd VkResult vkDeviceWaitIdle( 6737 VkDevice device) { 6738 deviceObject := GetDevice(device) 6739 6740 return ? 6741} 6742 6743 6744// Memory functions 6745 6746@threadSafety("system") 6747cmd VkResult vkAllocateMemory( 6748 VkDevice device, 6749 const VkMemoryAllocateInfo* pAllocateInfo, 6750 const VkAllocationCallbacks* pAllocator, 6751 VkDeviceMemory* pMemory) { 6752 assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO) 6753 deviceObject := GetDevice(device) 6754 6755 memory := ? 6756 pMemory[0] = memory 6757 State.DeviceMemories[memory] = new!DeviceMemoryObject( 6758 device: device, 6759 allocationSize: pAllocateInfo[0].allocationSize) 6760 6761 return ? 6762} 6763 6764@threadSafety("system") 6765cmd void vkFreeMemory( 6766 VkDevice device, 6767 VkDeviceMemory memory, 6768 const VkAllocationCallbacks* pAllocator) { 6769 deviceObject := GetDevice(device) 6770 memoryObject := GetDeviceMemory(memory) 6771 assert(memoryObject.device == device) 6772 6773 // Check that no objects are still bound before freeing. 6774 validate("MemoryCheck", len(memoryObject.boundObjects) == 0, 6775 "vkFreeMemory: objects still bound") 6776 validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0, 6777 "vkFreeMemory: commandBuffers still bound") 6778 State.DeviceMemories[memory] = null 6779} 6780 6781@threadSafety("app") 6782cmd VkResult vkMapMemory( 6783 VkDevice device, 6784 VkDeviceMemory memory, 6785 VkDeviceSize offset, 6786 VkDeviceSize size, 6787 VkMemoryMapFlags flags, 6788 void** ppData) { 6789 deviceObject := GetDevice(device) 6790 memoryObject := GetDeviceMemory(memory) 6791 assert(memoryObject.device == device) 6792 6793 assert(flags == as!VkMemoryMapFlags(0)) 6794 assert((offset + size) <= memoryObject.allocationSize) 6795 6796 return ? 6797} 6798 6799@threadSafety("app") 6800cmd void vkUnmapMemory( 6801 VkDevice device, 6802 VkDeviceMemory memory) { 6803 deviceObject := GetDevice(device) 6804 memoryObject := GetDeviceMemory(memory) 6805 assert(memoryObject.device == device) 6806} 6807 6808cmd VkResult vkFlushMappedMemoryRanges( 6809 VkDevice device, 6810 u32 memoryRangeCount 6811 const VkMappedMemoryRange* pMemoryRanges) { 6812 deviceObject := GetDevice(device) 6813 6814 memoryRanges := pMemoryRanges[0:memoryRangeCount] 6815 for i in (0 .. memoryRangeCount) { 6816 memoryRange := memoryRanges[i] 6817 memoryObject := GetDeviceMemory(memoryRange.memory) 6818 assert(memoryObject.device == device) 6819 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize) 6820 } 6821 6822 return ? 6823} 6824 6825cmd VkResult vkInvalidateMappedMemoryRanges( 6826 VkDevice device, 6827 u32 memoryRangeCount, 6828 const VkMappedMemoryRange* pMemoryRanges) { 6829 deviceObject := GetDevice(device) 6830 6831 memoryRanges := pMemoryRanges[0:memoryRangeCount] 6832 for i in (0 .. memoryRangeCount) { 6833 memoryRange := memoryRanges[i] 6834 memoryObject := GetDeviceMemory(memoryRange.memory) 6835 assert(memoryObject.device == device) 6836 assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize) 6837 } 6838 6839 return ? 6840} 6841 6842 6843// Memory management API functions 6844 6845cmd void vkGetDeviceMemoryCommitment( 6846 VkDevice device, 6847 VkDeviceMemory memory, 6848 VkDeviceSize* pCommittedMemoryInBytes) { 6849 deviceObject := GetDevice(device) 6850 6851 if memory != NULL_HANDLE { 6852 memoryObject := GetDeviceMemory(memory) 6853 assert(memoryObject.device == device) 6854 } 6855 6856 committedMemoryInBytes := ? 6857 pCommittedMemoryInBytes[0] = committedMemoryInBytes 6858} 6859 6860cmd void vkGetBufferMemoryRequirements( 6861 VkDevice device, 6862 VkBuffer buffer, 6863 VkMemoryRequirements* pMemoryRequirements) { 6864 deviceObject := GetDevice(device) 6865 bufferObject := GetBuffer(buffer) 6866 assert(bufferObject.device == device) 6867} 6868 6869cmd VkResult vkBindBufferMemory( 6870 VkDevice device, 6871 VkBuffer buffer, 6872 VkDeviceMemory memory, 6873 VkDeviceSize memoryOffset) { 6874 deviceObject := GetDevice(device) 6875 bufferObject := GetBuffer(buffer) 6876 assert(bufferObject.device == device) 6877 6878 // Unbind buffer from previous memory object, if not VK_NULL_HANDLE. 6879 if bufferObject.memory != NULL_HANDLE { 6880 memoryObject := GetDeviceMemory(bufferObject.memory) 6881 memoryObject.boundObjects[as!u64(buffer)] = null 6882 } 6883 6884 // Bind buffer to given memory object, if not VK_NULL_HANDLE. 6885 if memory != NULL_HANDLE { 6886 memoryObject := GetDeviceMemory(memory) 6887 assert(memoryObject.device == device) 6888 memoryObject.boundObjects[as!u64(buffer)] = memoryOffset 6889 } 6890 bufferObject.memory = memory 6891 bufferObject.memoryOffset = memoryOffset 6892 6893 return ? 6894} 6895 6896cmd void vkGetImageMemoryRequirements( 6897 VkDevice device, 6898 VkImage image, 6899 VkMemoryRequirements* pMemoryRequirements) { 6900 deviceObject := GetDevice(device) 6901 imageObject := GetImage(image) 6902 assert(imageObject.device == device) 6903} 6904 6905cmd VkResult vkBindImageMemory( 6906 VkDevice device, 6907 VkImage image, 6908 VkDeviceMemory memory, 6909 VkDeviceSize memoryOffset) { 6910 deviceObject := GetDevice(device) 6911 imageObject := GetImage(image) 6912 assert(imageObject.device == device) 6913 6914 // Unbind image from previous memory object, if not VK_NULL_HANDLE. 6915 if imageObject.memory != NULL_HANDLE { 6916 memoryObject := GetDeviceMemory(imageObject.memory) 6917 memoryObject.boundObjects[as!u64(image)] = null 6918 } 6919 6920 // Bind image to given memory object, if not VK_NULL_HANDLE. 6921 if memory != NULL_HANDLE { 6922 memoryObject := GetDeviceMemory(memory) 6923 assert(memoryObject.device == device) 6924 memoryObject.boundObjects[as!u64(image)] = memoryOffset 6925 } 6926 imageObject.memory = memory 6927 imageObject.memoryOffset = memoryOffset 6928 6929 return ? 6930} 6931 6932cmd void vkGetImageSparseMemoryRequirements( 6933 VkDevice device, 6934 VkImage image, 6935 u32* pSparseMemoryRequirementCount, 6936 VkSparseImageMemoryRequirements* pSparseMemoryRequirements) { 6937 deviceObject := GetDevice(device) 6938 imageObject := GetImage(image) 6939 assert(imageObject.device == device) 6940} 6941 6942cmd void vkGetPhysicalDeviceSparseImageFormatProperties( 6943 VkPhysicalDevice physicalDevice, 6944 VkFormat format, 6945 VkImageType type, 6946 VkSampleCountFlagBits samples, 6947 VkImageUsageFlags usage, 6948 VkImageTiling tiling, 6949 u32* pPropertyCount, 6950 VkSparseImageFormatProperties* pProperties) { 6951 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 6952} 6953 6954cmd VkResult vkQueueBindSparse( 6955 VkQueue queue, 6956 u32 bindInfoCount, 6957 const VkBindSparseInfo* pBindInfo, 6958 VkFence fence) { 6959 queueObject := GetQueue(queue) 6960 6961 return ? 6962} 6963 6964 6965// Fence functions 6966 6967@threadSafety("system") 6968cmd VkResult vkCreateFence( 6969 VkDevice device, 6970 const VkFenceCreateInfo* pCreateInfo, 6971 const VkAllocationCallbacks* pAllocator, 6972 VkFence* pFence) { 6973 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO) 6974 deviceObject := GetDevice(device) 6975 6976 fence := ? 6977 pFence[0] = fence 6978 State.Fences[fence] = new!FenceObject( 6979 device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT))) 6980 6981 return ? 6982} 6983 6984@threadSafety("system") 6985cmd void vkDestroyFence( 6986 VkDevice device, 6987 VkFence fence, 6988 const VkAllocationCallbacks* pAllocator) { 6989 deviceObject := GetDevice(device) 6990 fenceObject := GetFence(fence) 6991 assert(fenceObject.device == device) 6992 6993 State.Fences[fence] = null 6994} 6995 6996@threadSafety("system") 6997cmd VkResult vkResetFences( 6998 VkDevice device, 6999 u32 fenceCount, 7000 const VkFence* pFences) { 7001 deviceObject := GetDevice(device) 7002 7003 fences := pFences[0:fenceCount] 7004 for i in (0 .. fenceCount) { 7005 fence := fences[i] 7006 fenceObject := GetFence(fence) 7007 assert(fenceObject.device == device) 7008 fenceObject.signaled = false 7009 } 7010 7011 return ? 7012} 7013 7014@threadSafety("system") 7015cmd VkResult vkGetFenceStatus( 7016 VkDevice device, 7017 VkFence fence) { 7018 deviceObject := GetDevice(device) 7019 fenceObject := GetFence(fence) 7020 assert(fenceObject.device == device) 7021 7022 return ? 7023} 7024 7025@threadSafety("system") 7026cmd VkResult vkWaitForFences( 7027 VkDevice device, 7028 u32 fenceCount, 7029 const VkFence* pFences, 7030 VkBool32 waitAll, 7031 u64 timeout) { /// timeout in nanoseconds 7032 deviceObject := GetDevice(device) 7033 7034 fences := pFences[0:fenceCount] 7035 for i in (0 .. fenceCount) { 7036 fence := fences[i] 7037 fenceObject := GetFence(fence) 7038 assert(fenceObject.device == device) 7039 } 7040 7041 return ? 7042} 7043 7044 7045// Queue semaphore functions 7046 7047@threadSafety("system") 7048cmd VkResult vkCreateSemaphore( 7049 VkDevice device, 7050 const VkSemaphoreCreateInfo* pCreateInfo, 7051 const VkAllocationCallbacks* pAllocator, 7052 VkSemaphore* pSemaphore) { 7053 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO) 7054 deviceObject := GetDevice(device) 7055 7056 semaphore := ? 7057 pSemaphore[0] = semaphore 7058 State.Semaphores[semaphore] = new!SemaphoreObject(device: device) 7059 7060 return ? 7061} 7062 7063@threadSafety("system") 7064cmd void vkDestroySemaphore( 7065 VkDevice device, 7066 VkSemaphore semaphore, 7067 const VkAllocationCallbacks* pAllocator) { 7068 deviceObject := GetDevice(device) 7069 semaphoreObject := GetSemaphore(semaphore) 7070 assert(semaphoreObject.device == device) 7071 7072 State.Semaphores[semaphore] = null 7073} 7074 7075 7076// Event functions 7077 7078@threadSafety("system") 7079cmd VkResult vkCreateEvent( 7080 VkDevice device, 7081 const VkEventCreateInfo* pCreateInfo, 7082 const VkAllocationCallbacks* pAllocator, 7083 VkEvent* pEvent) { 7084 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO) 7085 deviceObject := GetDevice(device) 7086 7087 event := ? 7088 pEvent[0] = event 7089 State.Events[event] = new!EventObject(device: device) 7090 7091 return ? 7092} 7093 7094@threadSafety("system") 7095cmd void vkDestroyEvent( 7096 VkDevice device, 7097 VkEvent event, 7098 const VkAllocationCallbacks* pAllocator) { 7099 deviceObject := GetDevice(device) 7100 eventObject := GetEvent(event) 7101 assert(eventObject.device == device) 7102 7103 State.Events[event] = null 7104} 7105 7106@threadSafety("system") 7107cmd VkResult vkGetEventStatus( 7108 VkDevice device, 7109 VkEvent event) { 7110 deviceObject := GetDevice(device) 7111 eventObject := GetEvent(event) 7112 assert(eventObject.device == device) 7113 7114 return ? 7115} 7116 7117@threadSafety("system") 7118cmd VkResult vkSetEvent( 7119 VkDevice device, 7120 VkEvent event) { 7121 deviceObject := GetDevice(device) 7122 eventObject := GetEvent(event) 7123 assert(eventObject.device == device) 7124 7125 return ? 7126} 7127 7128@threadSafety("system") 7129cmd VkResult vkResetEvent( 7130 VkDevice device, 7131 VkEvent event) { 7132 deviceObject := GetDevice(device) 7133 eventObject := GetEvent(event) 7134 assert(eventObject.device == device) 7135 7136 return ? 7137} 7138 7139 7140// Query functions 7141 7142@threadSafety("system") 7143cmd VkResult vkCreateQueryPool( 7144 VkDevice device, 7145 const VkQueryPoolCreateInfo* pCreateInfo, 7146 const VkAllocationCallbacks* pAllocator, 7147 VkQueryPool* pQueryPool) { 7148 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO) 7149 deviceObject := GetDevice(device) 7150 7151 queryPool := ? 7152 pQueryPool[0] = queryPool 7153 State.QueryPools[queryPool] = new!QueryPoolObject(device: device) 7154 7155 return ? 7156} 7157 7158@threadSafety("system") 7159cmd void vkDestroyQueryPool( 7160 VkDevice device, 7161 VkQueryPool queryPool, 7162 const VkAllocationCallbacks* pAllocator) { 7163 deviceObject := GetDevice(device) 7164 queryPoolObject := GetQueryPool(queryPool) 7165 assert(queryPoolObject.device == device) 7166 7167 State.QueryPools[queryPool] = null 7168} 7169 7170@threadSafety("system") 7171cmd VkResult vkGetQueryPoolResults( 7172 VkDevice device, 7173 VkQueryPool queryPool, 7174 u32 firstQuery, 7175 u32 queryCount, 7176 platform.size_t dataSize, 7177 void* pData, 7178 VkDeviceSize stride, 7179 VkQueryResultFlags flags) { 7180 deviceObject := GetDevice(device) 7181 queryPoolObject := GetQueryPool(queryPool) 7182 assert(queryPoolObject.device == device) 7183 7184 data := pData[0:dataSize] 7185 7186 return ? 7187} 7188 7189// Buffer functions 7190 7191@threadSafety("system") 7192cmd VkResult vkCreateBuffer( 7193 VkDevice device, 7194 const VkBufferCreateInfo* pCreateInfo, 7195 const VkAllocationCallbacks* pAllocator, 7196 VkBuffer* pBuffer) { 7197 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO) 7198 deviceObject := GetDevice(device) 7199 7200 buffer := ? 7201 pBuffer[0] = buffer 7202 State.Buffers[buffer] = new!BufferObject(device: device) 7203 7204 return ? 7205} 7206 7207@threadSafety("system") 7208cmd void vkDestroyBuffer( 7209 VkDevice device, 7210 VkBuffer buffer, 7211 const VkAllocationCallbacks* pAllocator) { 7212 deviceObject := GetDevice(device) 7213 bufferObject := GetBuffer(buffer) 7214 assert(bufferObject.device == device) 7215 7216 assert(bufferObject.memory == 0) 7217 State.Buffers[buffer] = null 7218} 7219 7220 7221// Buffer view functions 7222 7223@threadSafety("system") 7224cmd VkResult vkCreateBufferView( 7225 VkDevice device, 7226 const VkBufferViewCreateInfo* pCreateInfo, 7227 const VkAllocationCallbacks* pAllocator, 7228 VkBufferView* pView) { 7229 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO) 7230 deviceObject := GetDevice(device) 7231 7232 bufferObject := GetBuffer(pCreateInfo.buffer) 7233 assert(bufferObject.device == device) 7234 7235 view := ? 7236 pView[0] = view 7237 State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer) 7238 7239 return ? 7240} 7241 7242@threadSafety("system") 7243cmd void vkDestroyBufferView( 7244 VkDevice device, 7245 VkBufferView bufferView, 7246 const VkAllocationCallbacks* pAllocator) { 7247 deviceObject := GetDevice(device) 7248 bufferViewObject := GetBufferView(bufferView) 7249 assert(bufferViewObject.device == device) 7250 7251 State.BufferViews[bufferView] = null 7252} 7253 7254 7255// Image functions 7256 7257@threadSafety("system") 7258cmd VkResult vkCreateImage( 7259 VkDevice device, 7260 const VkImageCreateInfo* pCreateInfo, 7261 const VkAllocationCallbacks* pAllocator, 7262 VkImage* pImage) { 7263 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO) 7264 deviceObject := GetDevice(device) 7265 7266 image := ? 7267 pImage[0] = image 7268 State.Images[image] = new!ImageObject(device: device) 7269 7270 return ? 7271} 7272 7273@threadSafety("system") 7274cmd void vkDestroyImage( 7275 VkDevice device, 7276 VkImage image, 7277 const VkAllocationCallbacks* pAllocator) { 7278 deviceObject := GetDevice(device) 7279 imageObject := GetImage(image) 7280 assert(imageObject.device == device) 7281 7282 assert(imageObject.memory == 0) 7283 State.Images[image] = null 7284} 7285 7286cmd void vkGetImageSubresourceLayout( 7287 VkDevice device, 7288 VkImage image, 7289 const VkImageSubresource* pSubresource, 7290 VkSubresourceLayout* pLayout) { 7291 deviceObject := GetDevice(device) 7292 imageObject := GetImage(image) 7293 assert(imageObject.device == device) 7294} 7295 7296 7297// Image view functions 7298 7299@threadSafety("system") 7300cmd VkResult vkCreateImageView( 7301 VkDevice device, 7302 const VkImageViewCreateInfo* pCreateInfo, 7303 const VkAllocationCallbacks* pAllocator, 7304 VkImageView* pView) { 7305 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO) 7306 deviceObject := GetDevice(device) 7307 7308 imageObject := GetImage(pCreateInfo.image) 7309 assert(imageObject.device == device) 7310 7311 view := ? 7312 pView[0] = view 7313 State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image) 7314 7315 return ? 7316} 7317 7318@threadSafety("system") 7319cmd void vkDestroyImageView( 7320 VkDevice device, 7321 VkImageView imageView, 7322 const VkAllocationCallbacks* pAllocator) { 7323 deviceObject := GetDevice(device) 7324 imageViewObject := GetImageView(imageView) 7325 assert(imageViewObject.device == device) 7326 7327 State.ImageViews[imageView] = null 7328} 7329 7330 7331// Shader functions 7332 7333cmd VkResult vkCreateShaderModule( 7334 VkDevice device, 7335 const VkShaderModuleCreateInfo* pCreateInfo, 7336 const VkAllocationCallbacks* pAllocator, 7337 VkShaderModule* pShaderModule) { 7338 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO) 7339 deviceObject := GetDevice(device) 7340 7341 shaderModule := ? 7342 pShaderModule[0] = shaderModule 7343 State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device) 7344 7345 return ? 7346} 7347 7348cmd void vkDestroyShaderModule( 7349 VkDevice device, 7350 VkShaderModule shaderModule, 7351 const VkAllocationCallbacks* pAllocator) { 7352 deviceObject := GetDevice(device) 7353 shaderModuleObject := GetShaderModule(shaderModule) 7354 assert(shaderModuleObject.device == device) 7355 7356 State.ShaderModules[shaderModule] = null 7357} 7358 7359 7360// Pipeline functions 7361 7362cmd VkResult vkCreatePipelineCache( 7363 VkDevice device, 7364 const VkPipelineCacheCreateInfo* pCreateInfo, 7365 const VkAllocationCallbacks* pAllocator, 7366 VkPipelineCache* pPipelineCache) { 7367 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO) 7368 deviceObject := GetDevice(device) 7369 7370 pipelineCache := ? 7371 pPipelineCache[0] = pipelineCache 7372 State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device) 7373 7374 return ? 7375} 7376 7377cmd void vkDestroyPipelineCache( 7378 VkDevice device, 7379 VkPipelineCache pipelineCache, 7380 const VkAllocationCallbacks* pAllocator) { 7381 deviceObject := GetDevice(device) 7382 pipelineCacheObject := GetPipelineCache(pipelineCache) 7383 assert(pipelineCacheObject.device == device) 7384 7385 State.PipelineCaches[pipelineCache] = null 7386} 7387 7388cmd VkResult vkGetPipelineCacheData( 7389 VkDevice device, 7390 VkPipelineCache pipelineCache, 7391 platform.size_t* pDataSize, 7392 void* pData) { 7393 deviceObject := GetDevice(device) 7394 pipelineCacheObject := GetPipelineCache(pipelineCache) 7395 assert(pipelineCacheObject.device == device) 7396 7397 return ? 7398} 7399 7400cmd VkResult vkMergePipelineCaches( 7401 VkDevice device, 7402 VkPipelineCache dstCache, 7403 u32 srcCacheCount, 7404 const VkPipelineCache* pSrcCaches) { 7405 deviceObject := GetDevice(device) 7406 dstCacheObject := GetPipelineCache(dstCache) 7407 assert(dstCacheObject.device == device) 7408 7409 srcCaches := pSrcCaches[0:srcCacheCount] 7410 for i in (0 .. srcCacheCount) { 7411 srcCache := srcCaches[i] 7412 srcCacheObject := GetPipelineCache(srcCache) 7413 assert(srcCacheObject.device == device) 7414 } 7415 7416 return ? 7417} 7418 7419cmd VkResult vkCreateGraphicsPipelines( 7420 VkDevice device, 7421 VkPipelineCache pipelineCache, 7422 u32 createInfoCount, 7423 const VkGraphicsPipelineCreateInfo* pCreateInfos, 7424 const VkAllocationCallbacks* pAllocator, 7425 VkPipeline* pPipelines) { 7426 deviceObject := GetDevice(device) 7427 if pipelineCache != NULL_HANDLE { 7428 pipelineCacheObject := GetPipelineCache(pipelineCache) 7429 assert(pipelineCacheObject.device == device) 7430 } 7431 7432 createInfos := pCreateInfos[0:createInfoCount] 7433 pipelines := pPipelines[0:createInfoCount] 7434 for i in (0 .. createInfoCount) { 7435 pipeline := ? 7436 pipelines[i] = pipeline 7437 State.Pipelines[pipeline] = new!PipelineObject(device: device) 7438 } 7439 7440 return ? 7441} 7442 7443cmd VkResult vkCreateComputePipelines( 7444 VkDevice device, 7445 VkPipelineCache pipelineCache, 7446 u32 createInfoCount, 7447 const VkComputePipelineCreateInfo* pCreateInfos, 7448 const VkAllocationCallbacks* pAllocator, 7449 VkPipeline* pPipelines) { 7450 deviceObject := GetDevice(device) 7451 if pipelineCache != NULL_HANDLE { 7452 pipelineCacheObject := GetPipelineCache(pipelineCache) 7453 assert(pipelineCacheObject.device == device) 7454 } 7455 7456 createInfos := pCreateInfos[0:createInfoCount] 7457 pipelines := pPipelines[0:createInfoCount] 7458 for i in (0 .. createInfoCount) { 7459 pipeline := ? 7460 pipelines[i] = pipeline 7461 State.Pipelines[pipeline] = new!PipelineObject(device: device) 7462 } 7463 7464 return ? 7465} 7466 7467@threadSafety("system") 7468cmd void vkDestroyPipeline( 7469 VkDevice device, 7470 VkPipeline pipeline, 7471 const VkAllocationCallbacks* pAllocator) { 7472 deviceObject := GetDevice(device) 7473 pipelineObjects := GetPipeline(pipeline) 7474 assert(pipelineObjects.device == device) 7475 7476 State.Pipelines[pipeline] = null 7477} 7478 7479 7480// Pipeline layout functions 7481 7482@threadSafety("system") 7483cmd VkResult vkCreatePipelineLayout( 7484 VkDevice device, 7485 const VkPipelineLayoutCreateInfo* pCreateInfo, 7486 const VkAllocationCallbacks* pAllocator, 7487 VkPipelineLayout* pPipelineLayout) { 7488 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO) 7489 deviceObject := GetDevice(device) 7490 7491 pipelineLayout := ? 7492 pPipelineLayout[0] = pipelineLayout 7493 State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device) 7494 7495 return ? 7496} 7497 7498@threadSafety("system") 7499cmd void vkDestroyPipelineLayout( 7500 VkDevice device, 7501 VkPipelineLayout pipelineLayout, 7502 const VkAllocationCallbacks* pAllocator) { 7503 deviceObject := GetDevice(device) 7504 pipelineLayoutObjects := GetPipelineLayout(pipelineLayout) 7505 assert(pipelineLayoutObjects.device == device) 7506 7507 State.PipelineLayouts[pipelineLayout] = null 7508} 7509 7510 7511// Sampler functions 7512 7513@threadSafety("system") 7514cmd VkResult vkCreateSampler( 7515 VkDevice device, 7516 const VkSamplerCreateInfo* pCreateInfo, 7517 const VkAllocationCallbacks* pAllocator, 7518 VkSampler* pSampler) { 7519 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO) 7520 deviceObject := GetDevice(device) 7521 7522 sampler := ? 7523 pSampler[0] = sampler 7524 State.Samplers[sampler] = new!SamplerObject(device: device) 7525 7526 return ? 7527} 7528 7529@threadSafety("system") 7530cmd void vkDestroySampler( 7531 VkDevice device, 7532 VkSampler sampler, 7533 const VkAllocationCallbacks* pAllocator) { 7534 deviceObject := GetDevice(device) 7535 samplerObject := GetSampler(sampler) 7536 assert(samplerObject.device == device) 7537 7538 State.Samplers[sampler] = null 7539} 7540 7541 7542// Descriptor set functions 7543 7544@threadSafety("system") 7545cmd VkResult vkCreateDescriptorSetLayout( 7546 VkDevice device, 7547 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 7548 const VkAllocationCallbacks* pAllocator, 7549 VkDescriptorSetLayout* pSetLayout) { 7550 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO) 7551 deviceObject := GetDevice(device) 7552 7553 setLayout := ? 7554 pSetLayout[0] = setLayout 7555 State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device) 7556 7557 return ? 7558} 7559 7560@threadSafety("system") 7561cmd void vkDestroyDescriptorSetLayout( 7562 VkDevice device, 7563 VkDescriptorSetLayout descriptorSetLayout, 7564 const VkAllocationCallbacks* pAllocator) { 7565 deviceObject := GetDevice(device) 7566 descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout) 7567 assert(descriptorSetLayoutObject.device == device) 7568 7569 State.DescriptorSetLayouts[descriptorSetLayout] = null 7570} 7571 7572@threadSafety("system") 7573cmd VkResult vkCreateDescriptorPool( 7574 VkDevice device, 7575 const VkDescriptorPoolCreateInfo* pCreateInfo, 7576 const VkAllocationCallbacks* pAllocator, 7577 VkDescriptorPool* pDescriptorPool) { 7578 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO) 7579 deviceObject := GetDevice(device) 7580 7581 descriptorPool := ? 7582 pDescriptorPool[0] = descriptorPool 7583 State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device) 7584 7585 return ? 7586} 7587 7588@threadSafety("system") 7589cmd void vkDestroyDescriptorPool( 7590 VkDevice device, 7591 VkDescriptorPool descriptorPool, 7592 const VkAllocationCallbacks* pAllocator) { 7593 deviceObject := GetDevice(device) 7594 descriptorPoolObject := GetDescriptorPool(descriptorPool) 7595 assert(descriptorPoolObject.device == device) 7596 7597 State.DescriptorPools[descriptorPool] = null 7598} 7599 7600@threadSafety("app") 7601cmd VkResult vkResetDescriptorPool( 7602 VkDevice device, 7603 VkDescriptorPool descriptorPool, 7604 VkDescriptorPoolResetFlags flags) { 7605 deviceObject := GetDevice(device) 7606 descriptorPoolObject := GetDescriptorPool(descriptorPool) 7607 assert(descriptorPoolObject.device == device) 7608 7609 return ? 7610} 7611 7612@threadSafety("app") 7613cmd VkResult vkAllocateDescriptorSets( 7614 VkDevice device, 7615 const VkDescriptorSetAllocateInfo* pAllocateInfo, 7616 VkDescriptorSet* pDescriptorSets) { 7617 deviceObject := GetDevice(device) 7618 allocInfo := pAllocateInfo[0] 7619 descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool) 7620 7621 setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount] 7622 for i in (0 .. allocInfo.setCount) { 7623 setLayout := setLayouts[i] 7624 setLayoutObject := GetDescriptorSetLayout(setLayout) 7625 assert(setLayoutObject.device == device) 7626 } 7627 7628 descriptorSets := pDescriptorSets[0:allocInfo.setCount] 7629 for i in (0 .. allocInfo.setCount) { 7630 descriptorSet := ? 7631 descriptorSets[i] = descriptorSet 7632 State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device) 7633 } 7634 7635 return ? 7636} 7637 7638cmd VkResult vkFreeDescriptorSets( 7639 VkDevice device, 7640 VkDescriptorPool descriptorPool, 7641 u32 descriptorSetCount, 7642 const VkDescriptorSet* pDescriptorSets) { 7643 deviceObject := GetDevice(device) 7644 descriptorPoolObject := GetDescriptorPool(descriptorPool) 7645 7646 descriptorSets := pDescriptorSets[0:descriptorSetCount] 7647 for i in (0 .. descriptorSetCount) { 7648 descriptorSet := descriptorSets[i] 7649 descriptorSetObject := GetDescriptorSet(descriptorSet) 7650 assert(descriptorSetObject.device == device) 7651 State.DescriptorSets[descriptorSet] = null 7652 } 7653 7654 return ? 7655} 7656 7657cmd void vkUpdateDescriptorSets( 7658 VkDevice device, 7659 u32 descriptorWriteCount, 7660 const VkWriteDescriptorSet* pDescriptorWrites, 7661 u32 descriptorCopyCount, 7662 const VkCopyDescriptorSet* pDescriptorCopies) { 7663 deviceObject := GetDevice(device) 7664 7665 descriptorWrites := pDescriptorWrites[0:descriptorWriteCount] 7666 for i in (0 .. descriptorWriteCount) { 7667 descriptorWrite := descriptorWrites[i] 7668 descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet) 7669 assert(descriptorWriteObject.device == device) 7670 } 7671 7672 descriptorCopies := pDescriptorCopies[0:descriptorCopyCount] 7673 for i in (0 .. descriptorCopyCount) { 7674 descriptorCopy := descriptorCopies[i] 7675 descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet) 7676 assert(descriptorCopyObject.device == device) 7677 } 7678} 7679 7680 7681// Framebuffer functions 7682 7683@threadSafety("system") 7684cmd VkResult vkCreateFramebuffer( 7685 VkDevice device, 7686 const VkFramebufferCreateInfo* pCreateInfo, 7687 const VkAllocationCallbacks* pAllocator, 7688 VkFramebuffer* pFramebuffer) { 7689 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO) 7690 deviceObject := GetDevice(device) 7691 7692 framebuffer := ? 7693 pFramebuffer[0] = framebuffer 7694 State.Framebuffers[framebuffer] = new!FramebufferObject(device: device) 7695 7696 return ? 7697} 7698 7699@threadSafety("system") 7700cmd void vkDestroyFramebuffer( 7701 VkDevice device, 7702 VkFramebuffer framebuffer, 7703 const VkAllocationCallbacks* pAllocator) { 7704 deviceObject := GetDevice(device) 7705 framebufferObject := GetFramebuffer(framebuffer) 7706 assert(framebufferObject.device == device) 7707 7708 State.Framebuffers[framebuffer] = null 7709} 7710 7711 7712// Renderpass functions 7713 7714@threadSafety("system") 7715cmd VkResult vkCreateRenderPass( 7716 VkDevice device, 7717 const VkRenderPassCreateInfo* pCreateInfo, 7718 const VkAllocationCallbacks* pAllocator, 7719 VkRenderPass* pRenderPass) { 7720 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO) 7721 deviceObject := GetDevice(device) 7722 7723 renderpass := ? 7724 pRenderPass[0] = renderpass 7725 State.RenderPasses[renderpass] = new!RenderPassObject(device: device) 7726 7727 return ? 7728} 7729 7730@threadSafety("system") 7731cmd void vkDestroyRenderPass( 7732 VkDevice device, 7733 VkRenderPass renderPass, 7734 const VkAllocationCallbacks* pAllocator) { 7735 deviceObject := GetDevice(device) 7736 renderPassObject := GetRenderPass(renderPass) 7737 assert(renderPassObject.device == device) 7738 7739 State.RenderPasses[renderPass] = null 7740} 7741 7742cmd void vkGetRenderAreaGranularity( 7743 VkDevice device, 7744 VkRenderPass renderPass, 7745 VkExtent2D* pGranularity) { 7746 deviceObject := GetDevice(device) 7747 renderPassObject := GetRenderPass(renderPass) 7748 7749 granularity := ? 7750 pGranularity[0] = granularity 7751} 7752 7753// Command pool functions 7754 7755cmd VkResult vkCreateCommandPool( 7756 VkDevice device, 7757 const VkCommandPoolCreateInfo* pCreateInfo, 7758 const VkAllocationCallbacks* pAllocator, 7759 VkCommandPool* pCommandPool) { 7760 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO) 7761 deviceObject := GetDevice(device) 7762 7763 commandPool := ? 7764 pCommandPool[0] = commandPool 7765 State.CommandPools[commandPool] = new!CommandPoolObject(device: device) 7766 7767 return ? 7768} 7769 7770cmd void vkDestroyCommandPool( 7771 VkDevice device, 7772 VkCommandPool commandPool, 7773 const VkAllocationCallbacks* pAllocator) { 7774 deviceObject := GetDevice(device) 7775 commandPoolObject := GetCommandPool(commandPool) 7776 assert(commandPoolObject.device == device) 7777 7778 State.CommandPools[commandPool] = null 7779} 7780 7781cmd VkResult vkResetCommandPool( 7782 VkDevice device, 7783 VkCommandPool commandPool, 7784 VkCommandPoolResetFlags flags) { 7785 deviceObject := GetDevice(device) 7786 commandPoolObject := GetCommandPool(commandPool) 7787 assert(commandPoolObject.device == device) 7788 7789 return ? 7790} 7791 7792// Command buffer functions 7793 7794macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) { 7795 memoryObject := GetDeviceMemory(memory) 7796 memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer 7797 7798 commandBufferObject := GetCommandBuffer(commandBuffer) 7799 commandBufferObject.boundObjects[as!u64(obj)] = memory 7800} 7801 7802macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) { 7803 memoryObject := GetDeviceMemory(memory) 7804 memoryObject.boundCommandBuffers[commandBuffer] = null 7805 7806 commandBufferObject := GetCommandBuffer(commandBuffer) 7807 commandBufferObject.boundObjects[as!u64(obj)] = null 7808} 7809 7810@threadSafety("system") 7811cmd VkResult vkAllocateCommandBuffers( 7812 VkDevice device, 7813 const VkCommandBufferAllocateInfo* pAllocateInfo, 7814 VkCommandBuffer* pCommandBuffers) { 7815 assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO) 7816 7817 count := pAllocateInfo[0].commandBufferCount 7818 commandBuffers := pCommandBuffers[0:count] 7819 for i in (0 .. count) { 7820 commandBuffer := ? 7821 commandBuffers[i] = commandBuffer 7822 State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device) 7823 } 7824 7825 return ? 7826} 7827 7828@threadSafety("system") 7829cmd void vkFreeCommandBuffers( 7830 VkDevice device, 7831 VkCommandPool commandPool, 7832 u32 commandBufferCount, 7833 const VkCommandBuffer* pCommandBuffers) { 7834 deviceObject := GetDevice(device) 7835 7836 commandBuffers := pCommandBuffers[0:commandBufferCount] 7837 for i in (0 .. commandBufferCount) { 7838 commandBufferObject := GetCommandBuffer(commandBuffers[i]) 7839 assert(commandBufferObject.device == device) 7840 // TODO: iterate over boundObjects and clear memory bindings 7841 State.CommandBuffers[commandBuffers[i]] = null 7842 } 7843} 7844 7845@threadSafety("app") 7846cmd VkResult vkBeginCommandBuffer( 7847 VkCommandBuffer commandBuffer, 7848 const VkCommandBufferBeginInfo* pBeginInfo) { 7849 assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO) 7850 commandBufferObject := GetCommandBuffer(commandBuffer) 7851 7852 // TODO: iterate over boundObjects and clear memory bindings 7853 7854 return ? 7855} 7856 7857@threadSafety("app") 7858cmd VkResult vkEndCommandBuffer( 7859 VkCommandBuffer commandBuffer) { 7860 commandBufferObject := GetCommandBuffer(commandBuffer) 7861 7862 return ? 7863} 7864 7865@threadSafety("app") 7866cmd VkResult vkResetCommandBuffer( 7867 VkCommandBuffer commandBuffer, 7868 VkCommandBufferResetFlags flags) { 7869 commandBufferObject := GetCommandBuffer(commandBuffer) 7870 7871 // TODO: iterate over boundObjects and clear memory bindings 7872 7873 return ? 7874} 7875 7876 7877// Command buffer building functions 7878 7879@threadSafety("app") 7880cmd void vkCmdBindPipeline( 7881 VkCommandBuffer commandBuffer, 7882 VkPipelineBindPoint pipelineBindPoint, 7883 VkPipeline pipeline) { 7884 commandBufferObject := GetCommandBuffer(commandBuffer) 7885 pipelineObject := GetPipeline(pipeline) 7886 assert(commandBufferObject.device == pipelineObject.device) 7887 7888 queue := switch (pipelineBindPoint) { 7889 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT 7890 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT 7891 } 7892 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue) 7893} 7894 7895@threadSafety("app") 7896cmd void vkCmdSetViewport( 7897 VkCommandBuffer commandBuffer, 7898 u32 firstViewport, 7899 u32 viewportCount, 7900 const VkViewport* pViewports) { 7901 commandBufferObject := GetCommandBuffer(commandBuffer) 7902 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 7903} 7904 7905@threadSafety("app") 7906cmd void vkCmdSetScissor( 7907 VkCommandBuffer commandBuffer, 7908 u32 firstScissor, 7909 u32 scissorCount, 7910 const VkRect2D* pScissors) { 7911 commandBufferObject := GetCommandBuffer(commandBuffer) 7912 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 7913} 7914 7915@threadSafety("app") 7916cmd void vkCmdSetLineWidth( 7917 VkCommandBuffer commandBuffer, 7918 f32 lineWidth) { 7919 commandBufferObject := GetCommandBuffer(commandBuffer) 7920 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 7921} 7922 7923@threadSafety("app") 7924cmd void vkCmdSetDepthBias( 7925 VkCommandBuffer commandBuffer, 7926 f32 depthBiasConstantFactor, 7927 f32 depthBiasClamp, 7928 f32 depthBiasSlopeFactor) { 7929 commandBufferObject := GetCommandBuffer(commandBuffer) 7930 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 7931} 7932 7933@threadSafety("app") 7934cmd void vkCmdSetBlendConstants( 7935 VkCommandBuffer commandBuffer, 7936 // TODO(jessehall): apic only supports 'const' on pointer types. Using 7937 // an annotation as a quick hack to pass this to the template without 7938 // having to modify the AST and semantic model. 7939 @readonly f32[4] blendConstants) { 7940 commandBufferObject := GetCommandBuffer(commandBuffer) 7941 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 7942} 7943 7944@threadSafety("app") 7945cmd void vkCmdSetDepthBounds( 7946 VkCommandBuffer commandBuffer, 7947 f32 minDepthBounds, 7948 f32 maxDepthBounds) { 7949 commandBufferObject := GetCommandBuffer(commandBuffer) 7950 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 7951} 7952 7953@threadSafety("app") 7954cmd void vkCmdSetStencilCompareMask( 7955 VkCommandBuffer commandBuffer, 7956 VkStencilFaceFlags faceMask, 7957 u32 compareMask) { 7958 commandBufferObject := GetCommandBuffer(commandBuffer) 7959 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 7960} 7961 7962@threadSafety("app") 7963cmd void vkCmdSetStencilWriteMask( 7964 VkCommandBuffer commandBuffer, 7965 VkStencilFaceFlags faceMask, 7966 u32 writeMask) { 7967 commandBufferObject := GetCommandBuffer(commandBuffer) 7968 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 7969} 7970 7971@threadSafety("app") 7972cmd void vkCmdSetStencilReference( 7973 VkCommandBuffer commandBuffer, 7974 VkStencilFaceFlags faceMask, 7975 u32 reference) { 7976 commandBufferObject := GetCommandBuffer(commandBuffer) 7977 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 7978} 7979 7980@threadSafety("app") 7981cmd void vkCmdBindDescriptorSets( 7982 VkCommandBuffer commandBuffer, 7983 VkPipelineBindPoint pipelineBindPoint, 7984 VkPipelineLayout layout, 7985 u32 firstSet, 7986 u32 descriptorSetCount, 7987 const VkDescriptorSet* pDescriptorSets, 7988 u32 dynamicOffsetCount, 7989 const u32* pDynamicOffsets) { 7990 commandBufferObject := GetCommandBuffer(commandBuffer) 7991 7992 descriptorSets := pDescriptorSets[0:descriptorSetCount] 7993 for i in (0 .. descriptorSetCount) { 7994 descriptorSet := descriptorSets[i] 7995 descriptorSetObject := GetDescriptorSet(descriptorSet) 7996 assert(commandBufferObject.device == descriptorSetObject.device) 7997 } 7998 7999 dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount] 8000 for i in (0 .. dynamicOffsetCount) { 8001 dynamicOffset := dynamicOffsets[i] 8002 } 8003 8004 queue := switch (pipelineBindPoint) { 8005 case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT 8006 case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT 8007 } 8008 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue) 8009} 8010 8011@threadSafety("app") 8012cmd void vkCmdBindIndexBuffer( 8013 VkCommandBuffer commandBuffer, 8014 VkBuffer buffer, 8015 VkDeviceSize offset, 8016 VkIndexType indexType) { 8017 commandBufferObject := GetCommandBuffer(commandBuffer) 8018 bufferObject := GetBuffer(buffer) 8019 assert(commandBufferObject.device == bufferObject.device) 8020 8021 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory) 8022 8023 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8024} 8025 8026@threadSafety("app") 8027cmd void vkCmdBindVertexBuffers( 8028 VkCommandBuffer commandBuffer, 8029 u32 firstBinding, 8030 u32 bindingCount, 8031 const VkBuffer* pBuffers, 8032 const VkDeviceSize* pOffsets) { 8033 commandBufferObject := GetCommandBuffer(commandBuffer) 8034 8035 // TODO: check if not [firstBinding:firstBinding+bindingCount] 8036 buffers := pBuffers[0:bindingCount] 8037 offsets := pOffsets[0:bindingCount] 8038 for i in (0 .. bindingCount) { 8039 buffer := buffers[i] 8040 offset := offsets[i] 8041 bufferObject := GetBuffer(buffer) 8042 assert(commandBufferObject.device == bufferObject.device) 8043 8044 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory) 8045 } 8046 8047 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8048} 8049 8050@threadSafety("app") 8051cmd void vkCmdDraw( 8052 VkCommandBuffer commandBuffer, 8053 u32 vertexCount, 8054 u32 instanceCount, 8055 u32 firstVertex, 8056 u32 firstInstance) { 8057 commandBufferObject := GetCommandBuffer(commandBuffer) 8058 8059 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8060} 8061 8062@threadSafety("app") 8063cmd void vkCmdDrawIndexed( 8064 VkCommandBuffer commandBuffer, 8065 u32 indexCount, 8066 u32 instanceCount, 8067 u32 firstIndex, 8068 s32 vertexOffset, 8069 u32 firstInstance) { 8070 commandBufferObject := GetCommandBuffer(commandBuffer) 8071 8072 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8073} 8074 8075@threadSafety("app") 8076cmd void vkCmdDrawIndirect( 8077 VkCommandBuffer commandBuffer, 8078 VkBuffer buffer, 8079 VkDeviceSize offset, 8080 u32 drawCount, 8081 u32 stride) { 8082 commandBufferObject := GetCommandBuffer(commandBuffer) 8083 bufferObject := GetBuffer(buffer) 8084 assert(commandBufferObject.device == bufferObject.device) 8085 8086 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory) 8087 8088 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8089} 8090 8091@threadSafety("app") 8092cmd void vkCmdDrawIndexedIndirect( 8093 VkCommandBuffer commandBuffer, 8094 VkBuffer buffer, 8095 VkDeviceSize offset, 8096 u32 drawCount, 8097 u32 stride) { 8098 commandBufferObject := GetCommandBuffer(commandBuffer) 8099 bufferObject := GetBuffer(buffer) 8100 assert(commandBufferObject.device == bufferObject.device) 8101 8102 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory) 8103 8104 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8105} 8106 8107@threadSafety("app") 8108cmd void vkCmdDispatch( 8109 VkCommandBuffer commandBuffer, 8110 u32 groupCountX, 8111 u32 groupCountY, 8112 u32 groupCountZ) { 8113 commandBufferObject := GetCommandBuffer(commandBuffer) 8114 8115 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT) 8116} 8117 8118@threadSafety("app") 8119cmd void vkCmdDispatchIndirect( 8120 VkCommandBuffer commandBuffer, 8121 VkBuffer buffer, 8122 VkDeviceSize offset) { 8123 commandBufferObject := GetCommandBuffer(commandBuffer) 8124 bufferObject := GetBuffer(buffer) 8125 assert(commandBufferObject.device == bufferObject.device) 8126 8127 bindCommandBuffer(commandBuffer, buffer, bufferObject.memory) 8128 8129 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT) 8130} 8131 8132@threadSafety("app") 8133cmd void vkCmdCopyBuffer( 8134 VkCommandBuffer commandBuffer, 8135 VkBuffer srcBuffer, 8136 VkBuffer dstBuffer, 8137 u32 regionCount, 8138 const VkBufferCopy* pRegions) { 8139 commandBufferObject := GetCommandBuffer(commandBuffer) 8140 srcBufferObject := GetBuffer(srcBuffer) 8141 dstBufferObject := GetBuffer(dstBuffer) 8142 assert(commandBufferObject.device == srcBufferObject.device) 8143 assert(commandBufferObject.device == dstBufferObject.device) 8144 8145 regions := pRegions[0:regionCount] 8146 for i in (0 .. regionCount) { 8147 region := regions[i] 8148 } 8149 8150 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory) 8151 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory) 8152 8153 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) 8154} 8155 8156@threadSafety("app") 8157cmd void vkCmdCopyImage( 8158 VkCommandBuffer commandBuffer, 8159 VkImage srcImage, 8160 VkImageLayout srcImageLayout, 8161 VkImage dstImage, 8162 VkImageLayout dstImageLayout, 8163 u32 regionCount, 8164 const VkImageCopy* pRegions) { 8165 commandBufferObject := GetCommandBuffer(commandBuffer) 8166 srcImageObject := GetImage(srcImage) 8167 dstImageObject := GetImage(dstImage) 8168 assert(commandBufferObject.device == srcImageObject.device) 8169 assert(commandBufferObject.device == dstImageObject.device) 8170 8171 regions := pRegions[0:regionCount] 8172 for i in (0 .. regionCount) { 8173 region := regions[i] 8174 } 8175 8176 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory) 8177 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory) 8178 8179 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) 8180} 8181 8182@threadSafety("app") 8183cmd void vkCmdBlitImage( 8184 VkCommandBuffer commandBuffer, 8185 VkImage srcImage, 8186 VkImageLayout srcImageLayout, 8187 VkImage dstImage, 8188 VkImageLayout dstImageLayout, 8189 u32 regionCount, 8190 const VkImageBlit* pRegions, 8191 VkFilter filter) { 8192 commandBufferObject := GetCommandBuffer(commandBuffer) 8193 srcImageObject := GetImage(srcImage) 8194 dstImageObject := GetImage(dstImage) 8195 assert(commandBufferObject.device == srcImageObject.device) 8196 assert(commandBufferObject.device == dstImageObject.device) 8197 8198 regions := pRegions[0:regionCount] 8199 for i in (0 .. regionCount) { 8200 region := regions[i] 8201 } 8202 8203 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory) 8204 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory) 8205 8206 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8207} 8208 8209@threadSafety("app") 8210cmd void vkCmdCopyBufferToImage( 8211 VkCommandBuffer commandBuffer, 8212 VkBuffer srcBuffer, 8213 VkImage dstImage, 8214 VkImageLayout dstImageLayout, 8215 u32 regionCount, 8216 const VkBufferImageCopy* pRegions) { 8217 commandBufferObject := GetCommandBuffer(commandBuffer) 8218 srcBufferObject := GetBuffer(srcBuffer) 8219 dstImageObject := GetImage(dstImage) 8220 assert(commandBufferObject.device == srcBufferObject.device) 8221 assert(commandBufferObject.device == dstImageObject.device) 8222 8223 regions := pRegions[0:regionCount] 8224 for i in (0 .. regionCount) { 8225 region := regions[i] 8226 } 8227 8228 bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory) 8229 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory) 8230 8231 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) 8232} 8233 8234@threadSafety("app") 8235cmd void vkCmdCopyImageToBuffer( 8236 VkCommandBuffer commandBuffer, 8237 VkImage srcImage, 8238 VkImageLayout srcImageLayout, 8239 VkBuffer dstBuffer, 8240 u32 regionCount, 8241 const VkBufferImageCopy* pRegions) { 8242 commandBufferObject := GetCommandBuffer(commandBuffer) 8243 srcImageObject := GetImage(srcImage) 8244 dstBufferObject := GetBuffer(dstBuffer) 8245 assert(commandBufferObject.device == srcImageObject.device) 8246 assert(commandBufferObject.device == dstBufferObject.device) 8247 8248 regions := pRegions[0:regionCount] 8249 for i in (0 .. regionCount) { 8250 region := regions[i] 8251 } 8252 8253 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory) 8254 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory) 8255 8256 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) 8257} 8258 8259@threadSafety("app") 8260cmd void vkCmdUpdateBuffer( 8261 VkCommandBuffer commandBuffer, 8262 VkBuffer dstBuffer, 8263 VkDeviceSize dstOffset, 8264 VkDeviceSize dataSize, 8265 const void* pData) { 8266 commandBufferObject := GetCommandBuffer(commandBuffer) 8267 dstBufferObject := GetBuffer(dstBuffer) 8268 assert(commandBufferObject.device == dstBufferObject.device) 8269 8270 data := pData[0:dataSize] 8271 8272 bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory) 8273 8274 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) 8275} 8276 8277@threadSafety("app") 8278cmd void vkCmdFillBuffer( 8279 VkCommandBuffer commandBuffer, 8280 VkBuffer dstBuffer, 8281 VkDeviceSize dstOffset, 8282 VkDeviceSize size, 8283 u32 data) { 8284 commandBufferObject := GetCommandBuffer(commandBuffer) 8285 dstBufferObject := GetBuffer(dstBuffer) 8286 assert(commandBufferObject.device == dstBufferObject.device) 8287 8288 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) 8289} 8290 8291@threadSafety("app") 8292cmd void vkCmdClearColorImage( 8293 VkCommandBuffer commandBuffer, 8294 VkImage image, 8295 VkImageLayout imageLayout, 8296 const VkClearColorValue* pColor, 8297 u32 rangeCount, 8298 const VkImageSubresourceRange* pRanges) { 8299 commandBufferObject := GetCommandBuffer(commandBuffer) 8300 imageObject := GetImage(image) 8301 assert(commandBufferObject.device == imageObject.device) 8302 8303 ranges := pRanges[0:rangeCount] 8304 for i in (0 .. rangeCount) { 8305 range := ranges[i] 8306 } 8307 8308 bindCommandBuffer(commandBuffer, image, imageObject.memory) 8309 8310 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8311} 8312 8313@threadSafety("app") 8314cmd void vkCmdClearDepthStencilImage( 8315 VkCommandBuffer commandBuffer, 8316 VkImage image, 8317 VkImageLayout imageLayout, 8318 const VkClearDepthStencilValue* pDepthStencil, 8319 u32 rangeCount, 8320 const VkImageSubresourceRange* pRanges) { 8321 commandBufferObject := GetCommandBuffer(commandBuffer) 8322 imageObject := GetImage(image) 8323 assert(commandBufferObject.device == imageObject.device) 8324 8325 ranges := pRanges[0:rangeCount] 8326 for i in (0 .. rangeCount) { 8327 range := ranges[i] 8328 } 8329 8330 bindCommandBuffer(commandBuffer, image, imageObject.memory) 8331 8332 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8333} 8334 8335@threadSafety("app") 8336cmd void vkCmdClearAttachments( 8337 VkCommandBuffer commandBuffer, 8338 u32 attachmentCount, 8339 const VkClearAttachment* pAttachments, 8340 u32 rectCount, 8341 const VkClearRect* pRects) { 8342 commandBufferObject := GetCommandBuffer(commandBuffer) 8343 8344 rects := pRects[0:rectCount] 8345 for i in (0 .. rectCount) { 8346 rect := rects[i] 8347 } 8348 8349 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8350} 8351 8352@threadSafety("app") 8353cmd void vkCmdResolveImage( 8354 VkCommandBuffer commandBuffer, 8355 VkImage srcImage, 8356 VkImageLayout srcImageLayout, 8357 VkImage dstImage, 8358 VkImageLayout dstImageLayout, 8359 u32 regionCount, 8360 const VkImageResolve* pRegions) { 8361 commandBufferObject := GetCommandBuffer(commandBuffer) 8362 srcImageObject := GetImage(srcImage) 8363 dstImageObject := GetImage(dstImage) 8364 assert(commandBufferObject.device == srcImageObject.device) 8365 assert(commandBufferObject.device == dstImageObject.device) 8366 8367 regions := pRegions[0:regionCount] 8368 for i in (0 .. regionCount) { 8369 region := regions[i] 8370 } 8371 8372 bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory) 8373 bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory) 8374 8375 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8376} 8377 8378@threadSafety("app") 8379cmd void vkCmdSetEvent( 8380 VkCommandBuffer commandBuffer, 8381 VkEvent event, 8382 VkPipelineStageFlags stageMask) { 8383 commandBufferObject := GetCommandBuffer(commandBuffer) 8384 eventObject := GetEvent(event) 8385 assert(commandBufferObject.device == eventObject.device) 8386} 8387 8388@threadSafety("app") 8389cmd void vkCmdResetEvent( 8390 VkCommandBuffer commandBuffer, 8391 VkEvent event, 8392 VkPipelineStageFlags stageMask) { 8393 commandBufferObject := GetCommandBuffer(commandBuffer) 8394 eventObject := GetEvent(event) 8395 assert(commandBufferObject.device == eventObject.device) 8396} 8397 8398@threadSafety("app") 8399cmd void vkCmdWaitEvents( 8400 VkCommandBuffer commandBuffer, 8401 u32 eventCount, 8402 const VkEvent* pEvents, 8403 VkPipelineStageFlags srcStageMask, 8404 VkPipelineStageFlags dstStageMask, 8405 u32 memoryBarrierCount, 8406 const VkMemoryBarrier* pMemoryBarriers, 8407 u32 bufferMemoryBarrierCount, 8408 const VkBufferMemoryBarrier* pBufferMemoryBarriers, 8409 u32 imageMemoryBarrierCount, 8410 const VkImageMemoryBarrier* pImageMemoryBarriers) { 8411 commandBufferObject := GetCommandBuffer(commandBuffer) 8412 8413 events := pEvents[0:eventCount] 8414 for i in (0 .. eventCount) { 8415 event := events[i] 8416 eventObject := GetEvent(event) 8417 assert(commandBufferObject.device == eventObject.device) 8418 } 8419 8420 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount] 8421 for i in (0 .. memoryBarrierCount) { 8422 memoryBarrier := memoryBarriers[i] 8423 } 8424 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount] 8425 for i in (0 .. bufferMemoryBarrierCount) { 8426 bufferMemoryBarrier := bufferMemoryBarriers[i] 8427 bufferObject := GetBuffer(bufferMemoryBarrier.buffer) 8428 assert(bufferObject.device == commandBufferObject.device) 8429 } 8430 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount] 8431 for i in (0 .. imageMemoryBarrierCount) { 8432 imageMemoryBarrier := imageMemoryBarriers[i] 8433 imageObject := GetImage(imageMemoryBarrier.image) 8434 assert(imageObject.device == commandBufferObject.device) 8435 } 8436} 8437 8438@threadSafety("app") 8439cmd void vkCmdPipelineBarrier( 8440 VkCommandBuffer commandBuffer, 8441 VkPipelineStageFlags srcStageMask, 8442 VkPipelineStageFlags dstStageMask, 8443 VkDependencyFlags dependencyFlags, 8444 u32 memoryBarrierCount, 8445 const VkMemoryBarrier* pMemoryBarriers, 8446 u32 bufferMemoryBarrierCount, 8447 const VkBufferMemoryBarrier* pBufferMemoryBarriers, 8448 u32 imageMemoryBarrierCount, 8449 const VkImageMemoryBarrier* pImageMemoryBarriers) { 8450 commandBufferObject := GetCommandBuffer(commandBuffer) 8451 8452 memoryBarriers := pMemoryBarriers[0:memoryBarrierCount] 8453 for i in (0 .. memoryBarrierCount) { 8454 memoryBarrier := memoryBarriers[i] 8455 } 8456 bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount] 8457 for i in (0 .. bufferMemoryBarrierCount) { 8458 bufferMemoryBarrier := bufferMemoryBarriers[i] 8459 bufferObject := GetBuffer(bufferMemoryBarrier.buffer) 8460 assert(bufferObject.device == commandBufferObject.device) 8461 } 8462 imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount] 8463 for i in (0 .. imageMemoryBarrierCount) { 8464 imageMemoryBarrier := imageMemoryBarriers[i] 8465 imageObject := GetImage(imageMemoryBarrier.image) 8466 assert(imageObject.device == commandBufferObject.device) 8467 } 8468} 8469 8470@threadSafety("app") 8471cmd void vkCmdBeginQuery( 8472 VkCommandBuffer commandBuffer, 8473 VkQueryPool queryPool, 8474 u32 query, 8475 VkQueryControlFlags flags) { 8476 commandBufferObject := GetCommandBuffer(commandBuffer) 8477 queryPoolObject := GetQueryPool(queryPool) 8478 assert(commandBufferObject.device == queryPoolObject.device) 8479} 8480 8481@threadSafety("app") 8482cmd void vkCmdEndQuery( 8483 VkCommandBuffer commandBuffer, 8484 VkQueryPool queryPool, 8485 u32 query) { 8486 commandBufferObject := GetCommandBuffer(commandBuffer) 8487 queryPoolObject := GetQueryPool(queryPool) 8488 assert(commandBufferObject.device == queryPoolObject.device) 8489} 8490 8491@threadSafety("app") 8492cmd void vkCmdResetQueryPool( 8493 VkCommandBuffer commandBuffer, 8494 VkQueryPool queryPool, 8495 u32 firstQuery, 8496 u32 queryCount) { 8497 commandBufferObject := GetCommandBuffer(commandBuffer) 8498 queryPoolObject := GetQueryPool(queryPool) 8499 assert(commandBufferObject.device == queryPoolObject.device) 8500} 8501 8502@threadSafety("app") 8503cmd void vkCmdWriteTimestamp( 8504 VkCommandBuffer commandBuffer, 8505 VkPipelineStageFlagBits pipelineStage, 8506 VkQueryPool queryPool, 8507 u32 query) { 8508 commandBufferObject := GetCommandBuffer(commandBuffer) 8509 queryPoolObject := GetQueryPool(queryPool) 8510 assert(commandBufferObject.device == queryPoolObject.device) 8511} 8512 8513@threadSafety("app") 8514cmd void vkCmdCopyQueryPoolResults( 8515 VkCommandBuffer commandBuffer, 8516 VkQueryPool queryPool, 8517 u32 firstQuery, 8518 u32 queryCount, 8519 VkBuffer dstBuffer, 8520 VkDeviceSize dstOffset, 8521 VkDeviceSize stride, 8522 VkQueryResultFlags flags) { 8523 commandBufferObject := GetCommandBuffer(commandBuffer) 8524 queryPoolObject := GetQueryPool(queryPool) 8525 dstBufferObject := GetBuffer(dstBuffer) 8526 assert(commandBufferObject.device == queryPoolObject.device) 8527 assert(commandBufferObject.device == dstBufferObject.device) 8528} 8529 8530cmd void vkCmdPushConstants( 8531 VkCommandBuffer commandBuffer, 8532 VkPipelineLayout layout, 8533 VkShaderStageFlags stageFlags, 8534 u32 offset, 8535 u32 size, 8536 const void* pValues) { 8537 commandBufferObject := GetCommandBuffer(commandBuffer) 8538 layoutObject := GetPipelineLayout(layout) 8539 assert(commandBufferObject.device == layoutObject.device) 8540} 8541 8542@threadSafety("app") 8543cmd void vkCmdBeginRenderPass( 8544 VkCommandBuffer commandBuffer, 8545 const VkRenderPassBeginInfo* pRenderPassBegin, 8546 VkSubpassContents contents) { 8547 commandBufferObject := GetCommandBuffer(commandBuffer) 8548 renderPassObject := GetRenderPass(pRenderPassBegin.renderPass) 8549 framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer) 8550 assert(commandBufferObject.device == renderPassObject.device) 8551 assert(commandBufferObject.device == framebufferObject.device) 8552 8553 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8554} 8555 8556cmd void vkCmdNextSubpass( 8557 VkCommandBuffer commandBuffer, 8558 VkSubpassContents contents) { 8559 commandBufferObject := GetCommandBuffer(commandBuffer) 8560} 8561 8562@threadSafety("app") 8563cmd void vkCmdEndRenderPass( 8564 VkCommandBuffer commandBuffer) { 8565 commandBufferObject := GetCommandBuffer(commandBuffer) 8566 8567 commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) 8568} 8569 8570cmd void vkCmdExecuteCommands( 8571 VkCommandBuffer commandBuffer, 8572 u32 commandBufferCount, 8573 const VkCommandBuffer* pCommandBuffers) { 8574 commandBufferObject := GetCommandBuffer(commandBuffer) 8575 8576 commandBuffers := pCommandBuffers[0:commandBufferCount] 8577 for i in (0 .. commandBufferCount) { 8578 secondaryCommandBuffer := commandBuffers[i] 8579 secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer) 8580 assert(commandBufferObject.device == secondaryCommandBufferObject.device) 8581 } 8582} 8583 8584//@vulkan1_1 functions 8585 8586@vulkan1_1 8587cmd VkResult vkEnumerateInstanceVersion( 8588 u32* pApiVersion) { 8589 return ? 8590} 8591 8592@vulkan1_1 8593cmd VkResult vkBindBufferMemory2( 8594 VkDevice device, 8595 u32 bindInfoCount, 8596 const VkBindBufferMemoryInfo* pBindInfos) { 8597 return ? 8598} 8599 8600@vulkan1_1 8601cmd VkResult vkBindImageMemory2( 8602 VkDevice device, 8603 u32 bindInfoCount, 8604 const VkBindImageMemoryInfo* pBindInfos) { 8605 return ? 8606} 8607 8608@vulkan1_1 8609cmd void vkGetDeviceGroupPeerMemoryFeatures( 8610 VkDevice device, 8611 u32 heapIndex, 8612 u32 localDeviceIndex, 8613 u32 remoteDeviceIndex, 8614 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) { 8615} 8616 8617@vulkan1_1 8618cmd void vkCmdSetDeviceMask( 8619 VkCommandBuffer commandBuffer, 8620 u32 deviceMask) { 8621} 8622 8623@vulkan1_1 8624cmd void vkCmdDispatchBase( 8625 VkCommandBuffer commandBuffer, 8626 u32 baseGroupX, 8627 u32 baseGroupY, 8628 u32 baseGroupZ, 8629 u32 groupCountX, 8630 u32 groupCountY, 8631 u32 groupCountZ) { 8632} 8633 8634@threadSafety("system") 8635@vulkan1_1 8636cmd VkResult vkEnumeratePhysicalDeviceGroups( 8637 VkInstance instance, 8638 u32* pPhysicalDeviceGroupCount, 8639 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) { 8640 instanceObject := GetInstance(instance) 8641 8642 physicalDeviceGroupCount := as!u32(?) 8643 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount 8644 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount] 8645 8646 for i in (0 .. physicalDeviceGroupCount) { 8647 physicalDevice := ? 8648 physicalDevices[i] = physicalDevice 8649 if !(physicalDevice in State.PhysicalDevices) { 8650 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance) 8651 } 8652 } 8653 8654 return ? 8655} 8656 8657@vulkan1_1 8658cmd void vkGetImageMemoryRequirements2( 8659 VkDevice device, 8660 const VkImageMemoryRequirementsInfo2* pInfo, 8661 VkMemoryRequirements2* pMemoryRequirements) { 8662} 8663 8664@vulkan1_1 8665cmd void vkGetBufferMemoryRequirements2( 8666 VkDevice device, 8667 const VkBufferMemoryRequirementsInfo2* pInfo, 8668 VkMemoryRequirements2* pMemoryRequirements) { 8669} 8670 8671@vulkan1_1 8672cmd void vkGetImageSparseMemoryRequirements2( 8673 VkDevice device, 8674 const VkImageSparseMemoryRequirementsInfo2* pInfo, 8675 u32* pSparseMemoryRequirementCount, 8676 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { 8677} 8678 8679@vulkan1_1 8680cmd void vkGetPhysicalDeviceFeatures2( 8681 VkPhysicalDevice physicalDevice, 8682 VkPhysicalDeviceFeatures2* pFeatures) { 8683} 8684 8685@vulkan1_1 8686cmd void vkGetPhysicalDeviceProperties2( 8687 VkPhysicalDevice physicalDevice, 8688 VkPhysicalDeviceProperties2* pProperties) { 8689} 8690 8691@vulkan1_1 8692cmd void vkGetPhysicalDeviceFormatProperties2( 8693 VkPhysicalDevice physicalDevice, 8694 VkFormat format, 8695 VkFormatProperties2* pFormatProperties) { 8696} 8697 8698@vulkan1_1 8699cmd VkResult vkGetPhysicalDeviceImageFormatProperties2( 8700 VkPhysicalDevice physicalDevice, 8701 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, 8702 VkImageFormatProperties2* pImageFormatProperties) { 8703 return ? 8704} 8705 8706@vulkan1_1 8707cmd void vkGetPhysicalDeviceQueueFamilyProperties2( 8708 VkPhysicalDevice physicalDevice, 8709 u32* pQueueFamilyPropertyCount, 8710 VkQueueFamilyProperties2* pQueueFamilyProperties) { 8711} 8712 8713@vulkan1_1 8714cmd void vkGetPhysicalDeviceMemoryProperties2( 8715 VkPhysicalDevice physicalDevice, 8716 VkPhysicalDeviceMemoryProperties2* pMemoryProperties) { 8717} 8718 8719@vulkan1_1 8720cmd void vkGetPhysicalDeviceSparseImageFormatProperties2( 8721 VkPhysicalDevice physicalDevice, 8722 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, 8723 u32* pPropertyCount, 8724 VkSparseImageFormatProperties2* pProperties) { 8725} 8726 8727@vulkan1_1 8728cmd void vkTrimCommandPool( 8729 VkDevice device, 8730 VkCommandPool commandPool, 8731 VkCommandPoolTrimFlags flags) { 8732} 8733 8734 8735@vulkan1_1 8736cmd void vkGetDeviceQueue2( 8737 VkDevice device, 8738 const VkDeviceQueueInfo2* pQueueInfo, 8739 VkQueue* pQueue) { 8740 deviceObject := GetDevice(device) 8741 8742 queue := ? 8743 pQueue[0] = queue 8744 8745 if !(queue in State.Queues) { 8746 State.Queues[queue] = new!QueueObject(device: device) 8747 } 8748} 8749 8750@vulkan1_1 8751cmd VkResult vkCreateSamplerYcbcrConversion( 8752 VkDevice device, 8753 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, 8754 const VkAllocationCallbacks* pAllocator, 8755 VkSamplerYcbcrConversion* pYcbcrConversion) { 8756 return ? 8757} 8758 8759@vulkan1_1 8760cmd void vkDestroySamplerYcbcrConversion( 8761 VkDevice device, 8762 VkSamplerYcbcrConversion ycbcrConversion, 8763 const VkAllocationCallbacks* pAllocator) { 8764} 8765 8766@vulkan1_1 8767cmd VkResult vkCreateDescriptorUpdateTemplate( 8768 VkDevice device, 8769 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, 8770 const VkAllocationCallbacks* pAllocator, 8771 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) { 8772 return ? 8773} 8774 8775@vulkan1_1 8776cmd void vkDestroyDescriptorUpdateTemplate( 8777 VkDevice device, 8778 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 8779 const VkAllocationCallbacks* pAllocator) { 8780} 8781 8782@vulkan1_1 8783cmd void vkUpdateDescriptorSetWithTemplate( 8784 VkDevice device, 8785 VkDescriptorSet descriptorSet, 8786 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 8787 const void* pData) { 8788} 8789 8790@vulkan1_1 8791cmd void vkGetPhysicalDeviceExternalBufferProperties( 8792 VkPhysicalDevice physicalDevice, 8793 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, 8794 VkExternalBufferProperties* pExternalBufferProperties) { 8795} 8796 8797@vulkan1_1 8798cmd void vkGetPhysicalDeviceExternalFenceProperties( 8799 VkPhysicalDevice physicalDevice, 8800 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, 8801 VkExternalFenceProperties* pExternalFenceProperties) { 8802} 8803 8804@vulkan1_1 8805cmd void vkGetPhysicalDeviceExternalSemaphoreProperties( 8806 VkPhysicalDevice physicalDevice, 8807 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, 8808 VkExternalSemaphoreProperties* pExternalSemaphoreProperties) { 8809} 8810 8811@vulkan1_1 8812cmd void vkGetDescriptorSetLayoutSupport( 8813 VkDevice device, 8814 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 8815 VkDescriptorSetLayoutSupport* pSupport) { 8816} 8817 8818 8819@extension("VK_KHR_surface") // 1 8820cmd void vkDestroySurfaceKHR( 8821 VkInstance instance, 8822 VkSurfaceKHR surface, 8823 const VkAllocationCallbacks* pAllocator) { 8824 instanceObject := GetInstance(instance) 8825 surfaceObject := GetSurface(surface) 8826 assert(surfaceObject.instance == instance) 8827 8828 State.Surfaces[surface] = null 8829} 8830 8831@extension("VK_KHR_surface") // 1 8832cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR( 8833 VkPhysicalDevice physicalDevice, 8834 u32 queueFamilyIndex, 8835 VkSurfaceKHR surface, 8836 VkBool32* pSupported) { 8837 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 8838 8839 return ? 8840} 8841 8842@extension("VK_KHR_surface") // 1 8843cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( 8844 VkPhysicalDevice physicalDevice, 8845 VkSurfaceKHR surface, 8846 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) { 8847 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 8848 8849 surfaceCapabilities := ? 8850 pSurfaceCapabilities[0] = surfaceCapabilities 8851 8852 return ? 8853} 8854 8855@extension("VK_KHR_surface") // 1 8856cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( 8857 VkPhysicalDevice physicalDevice, 8858 VkSurfaceKHR surface, 8859 u32* pSurfaceFormatCount, 8860 VkSurfaceFormatKHR* pSurfaceFormats) { 8861 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 8862 8863 count := as!u32(?) 8864 pSurfaceFormatCount[0] = count 8865 surfaceFormats := pSurfaceFormats[0:count] 8866 8867 for i in (0 .. count) { 8868 surfaceFormat := ? 8869 surfaceFormats[i] = surfaceFormat 8870 } 8871 8872 return ? 8873} 8874 8875@extension("VK_KHR_surface") // 1 8876cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( 8877 VkPhysicalDevice physicalDevice, 8878 VkSurfaceKHR surface, 8879 u32* pPresentModeCount, 8880 VkPresentModeKHR* pPresentModes) { 8881 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 8882 8883 count := as!u32(?) 8884 pPresentModeCount[0] = count 8885 presentModes := pPresentModes[0:count] 8886 8887 for i in (0 .. count) { 8888 presentMode := ? 8889 presentModes[i] = presentMode 8890 } 8891 8892 return ? 8893} 8894 8895@extension("VK_KHR_swapchain") // 2 8896cmd VkResult vkCreateSwapchainKHR( 8897 VkDevice device, 8898 const VkSwapchainCreateInfoKHR* pCreateInfo, 8899 const VkAllocationCallbacks* pAllocator, 8900 VkSwapchainKHR* pSwapchain) { 8901 assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR) 8902 deviceObject := GetDevice(device) 8903 8904 swapchain := ? 8905 pSwapchain[0] = swapchain 8906 State.Swapchains[swapchain] = new!SwapchainObject(device: device) 8907 8908 return ? 8909} 8910 8911@extension("VK_KHR_swapchain") // 2 8912cmd void vkDestroySwapchainKHR( 8913 VkDevice device, 8914 VkSwapchainKHR swapchain, 8915 const VkAllocationCallbacks* pAllocator) { 8916 deviceObject := GetDevice(device) 8917 swapchainObject := GetSwapchain(swapchain) 8918 assert(swapchainObject.device == device) 8919 8920 State.Swapchains[swapchain] = null 8921} 8922 8923@extension("VK_KHR_swapchain") // 2 8924cmd VkResult vkGetSwapchainImagesKHR( 8925 VkDevice device, 8926 VkSwapchainKHR swapchain, 8927 u32* pSwapchainImageCount, 8928 VkImage* pSwapchainImages) { 8929 deviceObject := GetDevice(device) 8930 8931 count := as!u32(?) 8932 pSwapchainImageCount[0] = count 8933 swapchainImages := pSwapchainImages[0:count] 8934 8935 for i in (0 .. count) { 8936 swapchainImage := ? 8937 swapchainImages[i] = swapchainImage 8938 State.Images[swapchainImage] = new!ImageObject(device: device) 8939 } 8940 8941 return ? 8942} 8943 8944@extension("VK_KHR_swapchain") // 2 8945cmd VkResult vkAcquireNextImageKHR( 8946 VkDevice device, 8947 VkSwapchainKHR swapchain, 8948 u64 timeout, 8949 VkSemaphore semaphore, 8950 VkFence fence, 8951 u32* pImageIndex) { 8952 deviceObject := GetDevice(device) 8953 swapchainObject := GetSwapchain(swapchain) 8954 8955 imageIndex := ? 8956 pImageIndex[0] = imageIndex 8957 8958 return ? 8959} 8960 8961@extension("VK_KHR_swapchain") // 2 8962cmd VkResult vkQueuePresentKHR( 8963 VkQueue queue, 8964 const VkPresentInfoKHR* pPresentInfo) { 8965 queueObject := GetQueue(queue) 8966 8967 presentInfo := ? 8968 pPresentInfo[0] = presentInfo 8969 8970 return ? 8971} 8972 8973@vulkan1_1 8974@extension("VK_KHR_swapchain") // 2 8975cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR( 8976 VkDevice device, 8977 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) { 8978 return ? 8979} 8980 8981@vulkan1_1 8982@extension("VK_KHR_swapchain") // 2 8983cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR( 8984 VkDevice device, 8985 VkSurfaceKHR surface, 8986 VkDeviceGroupPresentModeFlagsKHR* pModes) { 8987 return ? 8988} 8989 8990@vulkan1_1 8991@extension("VK_KHR_swapchain") // 2 8992cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR( 8993 VkPhysicalDevice physicalDevice, 8994 VkSurfaceKHR surface, 8995 u32* pRectCount, 8996 VkRect2D* pRects) { 8997 return ? 8998} 8999 9000@vulkan1_1 9001@extension("VK_KHR_swapchain") // 2 9002cmd VkResult vkAcquireNextImage2KHR( 9003 VkDevice device, 9004 const VkAcquireNextImageInfoKHR* pAcquireInfo, 9005 u32* pImageIndex) { 9006 return ? 9007} 9008 9009@extension("VK_KHR_display") // 3 9010cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( 9011 VkPhysicalDevice physicalDevice, 9012 u32* pPropertyCount, 9013 VkDisplayPropertiesKHR* pProperties) { 9014 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 9015 return ? 9016} 9017 9018@extension("VK_KHR_display") // 3 9019cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( 9020 VkPhysicalDevice physicalDevice, 9021 u32* pPropertyCount, 9022 VkDisplayPlanePropertiesKHR* pProperties) { 9023 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 9024 return ? 9025} 9026 9027@extension("VK_KHR_display") // 3 9028cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR( 9029 VkPhysicalDevice physicalDevice, 9030 u32 planeIndex, 9031 u32* pDisplayCount, 9032 VkDisplayKHR* pDisplays) { 9033 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 9034 return ? 9035} 9036 9037@extension("VK_KHR_display") // 3 9038cmd VkResult vkGetDisplayModePropertiesKHR( 9039 VkPhysicalDevice physicalDevice, 9040 VkDisplayKHR display, 9041 u32* pPropertyCount, 9042 VkDisplayModePropertiesKHR* pProperties) { 9043 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 9044 return ? 9045} 9046 9047@extension("VK_KHR_display") // 3 9048cmd VkResult vkCreateDisplayModeKHR( 9049 VkPhysicalDevice physicalDevice, 9050 VkDisplayKHR display, 9051 const VkDisplayModeCreateInfoKHR* pCreateInfo, 9052 const VkAllocationCallbacks* pAllocator, 9053 VkDisplayModeKHR* pMode) { 9054 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 9055 return ? 9056} 9057 9058@extension("VK_KHR_display") // 3 9059cmd VkResult vkGetDisplayPlaneCapabilitiesKHR( 9060 VkPhysicalDevice physicalDevice, 9061 VkDisplayModeKHR mode, 9062 u32 planeIndex, 9063 VkDisplayPlaneCapabilitiesKHR* pCapabilities) { 9064 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 9065 return ? 9066} 9067 9068@extension("VK_KHR_display") // 3 9069cmd VkResult vkCreateDisplayPlaneSurfaceKHR( 9070 VkInstance instance, 9071 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, 9072 const VkAllocationCallbacks* pAllocator, 9073 VkSurfaceKHR* pSurface) { 9074 return ? 9075} 9076 9077@extension("VK_KHR_display_swapchain") // 4 9078cmd VkResult vkCreateSharedSwapchainsKHR( 9079 VkDevice device, 9080 u32 swapchainCount, 9081 const VkSwapchainCreateInfoKHR* pCreateInfos, 9082 const VkAllocationCallbacks* pAllocator, 9083 VkSwapchainKHR* pSwapchains) { 9084 return ? 9085} 9086 9087@extension("VK_KHR_xlib_surface") // 5 9088cmd VkResult vkCreateXlibSurfaceKHR( 9089 VkInstance instance, 9090 const VkXlibSurfaceCreateInfoKHR* pCreateInfo, 9091 const VkAllocationCallbacks* pAllocator, 9092 VkSurfaceKHR* pSurface) { 9093 instanceObject := GetInstance(instance) 9094 return ? 9095} 9096 9097@extension("VK_KHR_xlib_surface") // 5 9098cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( 9099 VkPhysicalDevice physicalDevice, 9100 u32 queueFamilyIndex, 9101 platform.Display* dpy, 9102 platform.VisualID visualID) { 9103 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 9104 return ? 9105} 9106 9107@extension("VK_KHR_xcb_surface") // 6 9108cmd VkResult vkCreateXcbSurfaceKHR( 9109 VkInstance instance, 9110 const VkXcbSurfaceCreateInfoKHR* pCreateInfo, 9111 const VkAllocationCallbacks* pAllocator, 9112 VkSurfaceKHR* pSurface) { 9113 instanceObject := GetInstance(instance) 9114 return ? 9115} 9116 9117@extension("VK_KHR_xcb_surface") // 6 9118cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( 9119 VkPhysicalDevice physicalDevice, 9120 u32 queueFamilyIndex, 9121 platform.xcb_connection_t* connection, 9122 platform.xcb_visualid_t visual_id) { 9123 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 9124 return ? 9125} 9126 9127@extension("VK_KHR_wayland_surface") // 7 9128cmd VkResult vkCreateWaylandSurfaceKHR( 9129 VkInstance instance, 9130 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, 9131 const VkAllocationCallbacks* pAllocator, 9132 VkSurfaceKHR* pSurface) { 9133 instanceObject := GetInstance(instance) 9134 return ? 9135} 9136 9137@extension("VK_KHR_wayland_surface") // 7 9138cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( 9139 VkPhysicalDevice physicalDevice, 9140 u32 queueFamilyIndex, 9141 platform.wl_display* display) { 9142 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 9143 return ? 9144} 9145 9146@extension("VK_KHR_mir_surface") // 8 9147cmd VkResult vkCreateMirSurfaceKHR( 9148 VkInstance instance, 9149 const VkMirSurfaceCreateInfoKHR* pCreateInfo, 9150 const VkAllocationCallbacks* pAllocator, 9151 VkSurfaceKHR* pSurface) { 9152 instanceObject := GetInstance(instance) 9153 return ? 9154} 9155 9156@extension("VK_KHR_mir_surface") // 8 9157cmd VkBool32 vkGetPhysicalDeviceMirPresentationSupportKHR( 9158 VkPhysicalDevice physicalDevice, 9159 u32 queueFamilyIndex, 9160 platform.MirConnection* connection) { 9161 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 9162 return ? 9163} 9164 9165@extension("VK_KHR_android_surface") // 9 9166cmd VkResult vkCreateAndroidSurfaceKHR( 9167 VkInstance instance, 9168 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, 9169 const VkAllocationCallbacks* pAllocator, 9170 VkSurfaceKHR* pSurface) { 9171 instanceObject := GetInstance(instance) 9172 return ? 9173} 9174 9175@extension("VK_KHR_win32_surface") // 10 9176cmd VkResult vkCreateWin32SurfaceKHR( 9177 VkInstance instance, 9178 const VkWin32SurfaceCreateInfoKHR* pCreateInfo, 9179 const VkAllocationCallbacks* pAllocator, 9180 VkSurfaceKHR* pSurface) { 9181 instanceObject := GetInstance(instance) 9182 return ? 9183} 9184 9185@extension("VK_KHR_win32_surface") // 10 9186cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR( 9187 VkPhysicalDevice physicalDevice, 9188 u32 queueFamilyIndex) { 9189 physicalDeviceObject := GetPhysicalDevice(physicalDevice) 9190 return ? 9191} 9192 9193@extension("VK_ANDROID_native_buffer") // 11 9194@optional 9195cmd VkResult vkGetSwapchainGrallocUsageANDROID( 9196 VkDevice device, 9197 VkFormat format, 9198 VkImageUsageFlags imageUsage, 9199 s32* grallocUsage) { 9200 return ? 9201} 9202 9203@extension("VK_ANDROID_native_buffer") // 11 9204@optional 9205cmd VkResult vkGetSwapchainGrallocUsage2ANDROID( 9206 VkDevice device, 9207 VkFormat format, 9208 VkImageUsageFlags imageUsage, 9209 VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, 9210 u64* grallocConsumerUsage, 9211 u64* grallocProducerUsage) { 9212 return ? 9213} 9214 9215@extension("VK_ANDROID_native_buffer") // 11 9216cmd VkResult vkAcquireImageANDROID( 9217 VkDevice device, 9218 VkImage image, 9219 int nativeFenceFd, 9220 VkSemaphore semaphore, 9221 VkFence fence) { 9222 return ? 9223} 9224 9225@extension("VK_ANDROID_native_buffer") // 11 9226cmd VkResult vkQueueSignalReleaseImageANDROID( 9227 VkQueue queue, 9228 u32 waitSemaphoreCount, 9229 const VkSemaphore* pWaitSemaphores, 9230 VkImage image, 9231 int* pNativeFenceFd) { 9232 return ? 9233} 9234 9235@extension("VK_EXT_debug_report") // 12 9236@external type void* PFN_vkDebugReportCallbackEXT 9237@extension("VK_EXT_debug_report") // 12 9238@pfn cmd VkBool32 vkDebugReportCallbackEXT( 9239 VkDebugReportFlagsEXT flags, 9240 VkDebugReportObjectTypeEXT objectType, 9241 u64 object, 9242 platform.size_t location, 9243 s32 messageCode, 9244 const char* pLayerPrefix, 9245 const char* pMessage, 9246 void* pUserData) { 9247 return ? 9248} 9249 9250@extension("VK_EXT_debug_report") // 12 9251cmd VkResult vkCreateDebugReportCallbackEXT( 9252 VkInstance instance, 9253 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, 9254 const VkAllocationCallbacks* pAllocator, 9255 VkDebugReportCallbackEXT* pCallback) { 9256 return ? 9257} 9258 9259@extension("VK_EXT_debug_report") // 12 9260cmd void vkDestroyDebugReportCallbackEXT( 9261 VkInstance instance, 9262 VkDebugReportCallbackEXT callback, 9263 const VkAllocationCallbacks* pAllocator) { 9264} 9265 9266@extension("VK_EXT_debug_report") // 12 9267cmd void vkDebugReportMessageEXT( 9268 VkInstance instance, 9269 VkDebugReportFlagsEXT flags, 9270 VkDebugReportObjectTypeEXT objectType, 9271 u64 object, 9272 platform.size_t location, 9273 s32 messageCode, 9274 const char* pLayerPrefix, 9275 const char* pMessage) { 9276} 9277 9278@extension("VK_EXT_debug_marker") // 23 9279cmd VkResult vkDebugMarkerSetObjectTagEXT( 9280 VkDevice device, 9281 const VkDebugMarkerObjectTagInfoEXT* pTagInfo) { 9282 return ? 9283} 9284 9285@extension("VK_EXT_debug_marker") // 23 9286cmd VkResult vkDebugMarkerSetObjectNameEXT( 9287 VkDevice device, 9288 const VkDebugMarkerObjectNameInfoEXT* pNameInfo) { 9289 return ? 9290} 9291 9292@extension("VK_EXT_debug_marker") // 23 9293cmd void vkCmdDebugMarkerBeginEXT( 9294 VkCommandBuffer commandBuffer, 9295 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) { 9296} 9297 9298@extension("VK_EXT_debug_marker") // 23 9299cmd void vkCmdDebugMarkerEndEXT( 9300 VkCommandBuffer commandBuffer) { 9301} 9302 9303@extension("VK_EXT_debug_marker") // 23 9304cmd void vkCmdDebugMarkerInsertEXT( 9305 VkCommandBuffer commandBuffer, 9306 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) { 9307} 9308 9309@extension("VK_AMD_draw_indirect_count") // 34 9310cmd void vkCmdDrawIndirectCountAMD( 9311 VkCommandBuffer commandBuffer, 9312 VkBuffer buffer, 9313 VkDeviceSize offset, 9314 VkBuffer countBuffer, 9315 VkDeviceSize countBufferOffset, 9316 u32 maxDrawCount, 9317 u32 stride) { 9318} 9319 9320@extension("VK_AMD_draw_indirect_count") // 34 9321cmd void vkCmdDrawIndexedIndirectCountAMD( 9322 VkCommandBuffer commandBuffer, 9323 VkBuffer buffer, 9324 VkDeviceSize offset, 9325 VkBuffer countBuffer, 9326 VkDeviceSize countBufferOffset, 9327 u32 maxDrawCount, 9328 u32 stride) { 9329} 9330 9331@extension("VK_AMD_shader_info") // 43 9332cmd VkResult vkGetShaderInfoAMD( 9333 VkDevice device, 9334 VkPipeline pipeline, 9335 VkShaderStageFlagBits shaderStage, 9336 VkShaderInfoTypeAMD infoType, 9337 platform.size_t* pInfoSize, 9338 void* pInfo) { 9339 return ? 9340} 9341 9342@extension("VK_NV_external_memory_capabilities") // 56 9343cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( 9344 VkPhysicalDevice physicalDevice, 9345 VkFormat format, 9346 VkImageType type, 9347 VkImageTiling tiling, 9348 VkImageUsageFlags usage, 9349 VkImageCreateFlags flags, 9350 VkExternalMemoryHandleTypeFlagsNV externalHandleType, 9351 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) { 9352 return ? 9353} 9354 9355@extension("VK_NV_external_memory_win32") // 58 9356cmd VkResult vkGetMemoryWin32HandleNV( 9357 VkDevice device, 9358 VkDeviceMemory memory, 9359 VkExternalMemoryHandleTypeFlagsNV handleType, 9360 platform.HANDLE* pHandle) { 9361 return ? 9362} 9363 9364@extension("VK_KHR_get_physical_device_properties2") // 60 9365cmd void vkGetPhysicalDeviceFeatures2KHR( 9366 VkPhysicalDevice physicalDevice, 9367 VkPhysicalDeviceFeatures2KHR* pFeatures) { 9368} 9369 9370@extension("VK_KHR_get_physical_device_properties2") // 60 9371cmd void vkGetPhysicalDeviceProperties2KHR( 9372 VkPhysicalDevice physicalDevice, 9373 VkPhysicalDeviceProperties2KHR* pProperties) { 9374} 9375 9376@extension("VK_KHR_get_physical_device_properties2") // 60 9377cmd void vkGetPhysicalDeviceFormatProperties2KHR( 9378 VkPhysicalDevice physicalDevice, 9379 VkFormat format, 9380 VkFormatProperties2KHR* pFormatProperties) { 9381} 9382 9383@extension("VK_KHR_get_physical_device_properties2") // 60 9384cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( 9385 VkPhysicalDevice physicalDevice, 9386 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, 9387 VkImageFormatProperties2KHR* pImageFormatProperties) { 9388 return ? 9389} 9390 9391@extension("VK_KHR_get_physical_device_properties2") // 60 9392cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR( 9393 VkPhysicalDevice physicalDevice, 9394 u32* pQueueFamilyPropertyCount, 9395 VkQueueFamilyProperties2KHR* pQueueFamilyProperties) { 9396} 9397 9398@extension("VK_KHR_get_physical_device_properties2") // 60 9399cmd void vkGetPhysicalDeviceMemoryProperties2KHR( 9400 VkPhysicalDevice physicalDevice, 9401 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) { 9402} 9403 9404@extension("VK_KHR_get_physical_device_properties2") // 60 9405cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( 9406 VkPhysicalDevice physicalDevice, 9407 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, 9408 u32* pPropertyCount, 9409 VkSparseImageFormatProperties2KHR* pProperties) { 9410} 9411 9412@extension("VK_KHR_device_group") // 61 9413cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR( 9414 VkDevice device, 9415 u32 heapIndex, 9416 u32 localDeviceIndex, 9417 u32 remoteDeviceIndex, 9418 VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) { 9419} 9420 9421@extension("VK_KHR_device_group") // 61 9422cmd void vkCmdSetDeviceMaskKHR( 9423 VkCommandBuffer commandBuffer, 9424 u32 deviceMask) { 9425} 9426 9427 9428@extension("VK_KHR_device_group") // 61 9429cmd void vkCmdDispatchBaseKHR( 9430 VkCommandBuffer commandBuffer, 9431 u32 baseGroupX, 9432 u32 baseGroupY, 9433 u32 baseGroupZ, 9434 u32 groupCountX, 9435 u32 groupCountY, 9436 u32 groupCountZ) { 9437} 9438 9439@extension("VK_NN_vi_surface") // 63 9440cmd VkResult vkCreateViSurfaceNN( 9441 VkInstance instance, 9442 const VkViSurfaceCreateInfoNN* pCreateInfo, 9443 const VkAllocationCallbacks* pAllocator, 9444 VkSurfaceKHR* pSurface) { 9445 return ? 9446} 9447 9448@extension("VK_KHR_maintenance1") // 70 9449cmd void vkTrimCommandPoolKHR( 9450 VkDevice device, 9451 VkCommandPool commandPool, 9452 VkCommandPoolTrimFlagsKHR flags) { 9453} 9454 9455@extension("VK_KHR_device_group_creation") // 71 9456@threadSafety("system") 9457cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR( 9458 VkInstance instance, 9459 u32* pPhysicalDeviceGroupCount, 9460 VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) { 9461 instanceObject := GetInstance(instance) 9462 9463 physicalDeviceGroupCount := as!u32(?) 9464 pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount 9465 physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount] 9466 9467 for i in (0 .. physicalDeviceGroupCount) { 9468 physicalDevice := ? 9469 physicalDevices[i] = physicalDevice 9470 if !(physicalDevice in State.PhysicalDevices) { 9471 State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance) 9472 } 9473 } 9474 9475 return ? 9476} 9477 9478@extension("VK_KHR_external_memory_capabilities") // 72 9479cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR( 9480 VkPhysicalDevice physicalDevice, 9481 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, 9482 VkExternalBufferPropertiesKHR* pExternalBufferProperties) { 9483} 9484 9485@extension("VK_KHR_external_memory_win32") // 74 9486cmd VkResult vkGetMemoryWin32HandleKHR( 9487 VkDevice device, 9488 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, 9489 platform.HANDLE* pHandle) { 9490 return ? 9491} 9492 9493@extension("VK_KHR_external_memory_win32") // 74 9494cmd VkResult vkGetMemoryWin32HandlePropertiesKHR( 9495 VkDevice device, 9496 VkExternalMemoryHandleTypeFlagBitsKHR handleType, 9497 platform.HANDLE handle, 9498 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) { 9499 return ? 9500} 9501 9502@extension("VK_KHR_external_memory_fd") // 75 9503cmd VkResult vkGetMemoryFdKHR( 9504 VkDevice device, 9505 const VkMemoryGetFdInfoKHR* pGetFdInfo, 9506 s32* pFd) { 9507 return ? 9508} 9509 9510@extension("VK_KHR_external_memory_fd") // 75 9511cmd VkResult vkGetMemoryFdPropertiesKHR( 9512 VkDevice device, 9513 VkExternalMemoryHandleTypeFlagBitsKHR handleType, 9514 s32 fd, 9515 VkMemoryFdPropertiesKHR* pMemoryFdProperties) { 9516 return ? 9517} 9518 9519@extension("VK_KHR_external_semaphore_capabilities") // 77 9520cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( 9521 VkPhysicalDevice physicalDevice, 9522 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, 9523 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) { 9524} 9525 9526@extension("VK_KHR_external_semaphore_win32") // 79 9527cmd VkResult vkImportSemaphoreWin32HandleKHR( 9528 VkDevice device, 9529 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) { 9530 return ? 9531} 9532 9533@extension("VK_KHR_external_semaphore_win32") // 79 9534cmd VkResult vkGetSemaphoreWin32HandleKHR( 9535 VkDevice device, 9536 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, 9537 platform.HANDLE* pHandle) { 9538 return ? 9539} 9540 9541@extension("VK_KHR_external_semaphore_fd") // 80 9542cmd VkResult vkImportSemaphoreFdKHR( 9543 VkDevice device, 9544 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) { 9545 return ? 9546} 9547 9548@extension("VK_KHR_external_semaphore_fd") // 80 9549cmd VkResult vkGetSemaphoreFdKHR( 9550 VkDevice device, 9551 const VkSemaphoreGetFdInfoKHR* pGetFdInfo, 9552 s32* pFd) { 9553 return ? 9554} 9555 9556@extension("VK_KHR_push_descriptor") // 81 9557cmd void vkCmdPushDescriptorSetKHR( 9558 VkCommandBuffer commandBuffer, 9559 VkPipelineBindPoint pipelineBindPoint, 9560 VkPipelineLayout layout, 9561 u32 set, 9562 u32 descriptorWriteCount, 9563 const VkWriteDescriptorSet* pDescriptorWrites) { 9564} 9565 9566@extension("VK_KHR_descriptor_update_template") // 86 9567cmd VkResult vkCreateDescriptorUpdateTemplateKHR( 9568 VkDevice device, 9569 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, 9570 const VkAllocationCallbacks* pAllocator, 9571 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) { 9572 return ? 9573} 9574 9575@extension("VK_KHR_descriptor_update_template") // 86 9576cmd void vkDestroyDescriptorUpdateTemplateKHR( 9577 VkDevice device, 9578 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, 9579 const VkAllocationCallbacks* pAllocator) { 9580} 9581 9582@extension("VK_KHR_descriptor_update_template") // 86 9583cmd void vkUpdateDescriptorSetWithTemplateKHR( 9584 VkDevice device, 9585 VkDescriptorSet descriptorSet, 9586 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, 9587 const void* pData) { 9588} 9589 9590@extension("VK_KHR_descriptor_update_template") // 86 9591cmd void vkCmdPushDescriptorSetWithTemplateKHR( 9592 VkCommandBuffer commandBuffer, 9593 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, 9594 VkPipelineLayout layout, 9595 u32 set, 9596 const void* pData) { 9597} 9598 9599@extension("VK_NVX_device_generated_commands") // 87 9600cmd void vkCmdProcessCommandsNVX( 9601 VkCommandBuffer commandBuffer, 9602 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) { 9603} 9604 9605@extension("VK_NVX_device_generated_commands") // 87 9606cmd void vkCmdReserveSpaceForCommandsNVX( 9607 VkCommandBuffer commandBuffer, 9608 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) { 9609} 9610 9611@extension("VK_NVX_device_generated_commands") // 87 9612cmd VkResult vkCreateIndirectCommandsLayoutNVX( 9613 VkDevice device, 9614 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, 9615 const VkAllocationCallbacks* pAllocator, 9616 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) { 9617 return ? 9618} 9619 9620@extension("VK_NVX_device_generated_commands") // 87 9621cmd void vkDestroyIndirectCommandsLayoutNVX( 9622 VkDevice device, 9623 VkIndirectCommandsLayoutNVX indirectCommandsLayout, 9624 const VkAllocationCallbacks* pAllocator) { 9625} 9626 9627@extension("VK_NVX_device_generated_commands") // 87 9628cmd VkResult vkCreateObjectTableNVX( 9629 VkDevice device, 9630 const VkObjectTableCreateInfoNVX* pCreateInfo, 9631 const VkAllocationCallbacks* pAllocator, 9632 VkObjectTableNVX* pObjectTable) { 9633 return ? 9634} 9635 9636@extension("VK_NVX_device_generated_commands") // 87 9637cmd void vkDestroyObjectTableNVX( 9638 VkDevice device, 9639 VkObjectTableNVX objectTable, 9640 const VkAllocationCallbacks* pAllocator) { 9641} 9642 9643@extension("VK_NVX_device_generated_commands") // 87 9644cmd VkResult vkRegisterObjectsNVX( 9645 VkDevice device, 9646 VkObjectTableNVX objectTable, 9647 u32 objectCount, 9648 const VkObjectTableEntryNVX* const* ppObjectTableEntries, 9649 const u32* pObjectIndices) { 9650 return ? 9651} 9652 9653@extension("VK_NVX_device_generated_commands") // 87 9654cmd VkResult vkUnregisterObjectsNVX( 9655 VkDevice device, 9656 VkObjectTableNVX objectTable, 9657 u32 objectCount, 9658 const VkObjectEntryTypeNVX* pObjectEntryTypes, 9659 const u32* pObjectIndices) { 9660 return ? 9661} 9662 9663@extension("VK_NVX_device_generated_commands") // 87 9664cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( 9665 VkPhysicalDevice physicalDevice, 9666 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, 9667 VkDeviceGeneratedCommandsLimitsNVX* pLimits) { 9668} 9669 9670@extension("VK_NV_clip_space_w_scaling") // 88 9671cmd void vkCmdSetViewportWScalingNV( 9672 VkCommandBuffer commandBuffer, 9673 u32 firstViewport, 9674 u32 viewportCount, 9675 const VkViewportWScalingNV* pViewportWScalings) { 9676} 9677 9678@extension("VK_EXT_direct_mode_display") // 89 9679cmd VkResult vkReleaseDisplayEXT( 9680 VkPhysicalDevice physicalDevice, 9681 VkDisplayKHR display) { 9682 return ? 9683} 9684 9685@extension("VK_EXT_acquire_xlib_display") // 90 9686cmd VkResult vkAcquireXlibDisplayEXT( 9687 VkPhysicalDevice physicalDevice, 9688 platform.Display* dpy, 9689 VkDisplayKHR display) { 9690 return ? 9691} 9692 9693@extension("VK_EXT_acquire_xlib_display") // 90 9694cmd VkResult vkGetRandROutputDisplayEXT( 9695 VkPhysicalDevice physicalDevice, 9696 platform.Display* dpy, 9697 platform.RROutput rrOutput, 9698 VkDisplayKHR* pDisplay) { 9699 return ? 9700} 9701 9702@extension("VK_EXT_display_surface_counter") // 91 9703cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( 9704 VkPhysicalDevice physicalDevice, 9705 VkSurfaceKHR surface, 9706 VkSurfaceCapabilities2EXT* pSurfaceCapabilities) { 9707 return ? 9708} 9709 9710@extension("VK_EXT_display_control") // 92 9711cmd VkResult vkDisplayPowerControlEXT( 9712 VkDevice device, 9713 VkDisplayKHR display, 9714 const VkDisplayPowerInfoEXT* pDisplayPowerInfo) { 9715 return ? 9716} 9717 9718@extension("VK_EXT_display_control") // 92 9719cmd VkResult vkRegisterDeviceEventEXT( 9720 VkDevice device, 9721 const VkDeviceEventInfoEXT* pDeviceEventInfo, 9722 const VkAllocationCallbacks* pAllocator, 9723 VkFence* pFence) { 9724 return ? 9725} 9726 9727@extension("VK_EXT_display_control") // 92 9728cmd VkResult vkRegisterDisplayEventEXT( 9729 VkDevice device, 9730 VkDisplayKHR display, 9731 const VkDisplayEventInfoEXT* pDisplayEventInfo, 9732 const VkAllocationCallbacks* pAllocator, 9733 VkFence* pFence) { 9734 return ? 9735} 9736 9737@extension("VK_EXT_display_control") // 92 9738cmd VkResult vkGetSwapchainCounterEXT( 9739 VkDevice device, 9740 VkSwapchainKHR swapchain, 9741 VkSurfaceCounterFlagBitsEXT counter, 9742 u64* pCounterValue) { 9743 return ? 9744} 9745 9746@extension("VK_GOOGLE_display_timing") // 93 9747cmd VkResult vkGetRefreshCycleDurationGOOGLE( 9748 VkDevice device, 9749 VkSwapchainKHR swapchain, 9750 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) { 9751 deviceObject := GetDevice(device) 9752 swapchainObject := GetSwapchain(swapchain) 9753 9754 displayTimingProperties := ? 9755 pDisplayTimingProperties[0] = displayTimingProperties 9756 9757 return ? 9758} 9759 9760@extension("VK_GOOGLE_display_timing") // 93 9761cmd VkResult vkGetPastPresentationTimingGOOGLE( 9762 VkDevice device, 9763 VkSwapchainKHR swapchain, 9764 u32* pPresentationTimingCount, 9765 VkPastPresentationTimingGOOGLE* pPresentationTimings) { 9766 return ? 9767} 9768 9769@extension("VK_EXT_discard_rectangles") // 100 9770cmd void vkCmdSetDiscardRectangleEXT( 9771 VkCommandBuffer commandBuffer, 9772 u32 firstDiscardRectangle, 9773 u32 discardRectangleCount, 9774 const VkRect2D* pDiscardRectangles) { 9775} 9776 9777@extension("VK_EXT_hdr_metadata") // 106 9778cmd void vkSetHdrMetadataEXT( 9779 VkDevice device, 9780 u32 swapchainCount, 9781 const VkSwapchainKHR* pSwapchains, 9782 const VkHdrMetadataEXT* pMetadata) { 9783} 9784 9785@extension("VK_KHR_shared_presentable_image") // 112 9786cmd VkResult vkGetSwapchainStatusKHR( 9787 VkDevice device, 9788 VkSwapchainKHR swapchain) { 9789 return ? 9790} 9791 9792@extension("VK_KHR_external_fence_capabilities") // 113 9793cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR( 9794 VkPhysicalDevice physicalDevice, 9795 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, 9796 VkExternalFencePropertiesKHR* pExternalFenceProperties) { 9797} 9798 9799@extension("VK_KHR_external_fence_win32") // 115 9800cmd VkResult vkImportFenceWin32HandleKHR( 9801 VkDevice device, 9802 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) { 9803 return ? 9804} 9805 9806@extension("VK_KHR_external_fence_win32") // 115 9807cmd VkResult vkGetFenceWin32HandleKHR( 9808 VkDevice device, 9809 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, 9810 platform.HANDLE* pHandle) { 9811 return ? 9812} 9813 9814@extension("VK_KHR_external_fence_fd") // 116 9815cmd VkResult vkImportFenceFdKHR( 9816 VkDevice device, 9817 const VkImportFenceFdInfoKHR* pImportFenceFdInfo) { 9818 return ? 9819} 9820 9821@extension("VK_KHR_external_fence_fd") // 116 9822cmd VkResult vkGetFenceFdKHR( 9823 VkDevice device, 9824 const VkFenceGetFdInfoKHR* pGetFdInfo, 9825 int* pFd) { 9826 return ? 9827} 9828 9829@extension("VK_KHR_get_surface_capabilities2") // 120 9830cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( 9831 VkPhysicalDevice physicalDevice, 9832 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 9833 VkSurfaceCapabilities2KHR* pSurfaceCapabilities) { 9834 return ? 9835} 9836 9837@extension("VK_KHR_get_surface_capabilities2") // 120 9838cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( 9839 VkPhysicalDevice physicalDevice, 9840 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 9841 u32* pSurfaceFormatCount, 9842 VkSurfaceFormat2KHR* pSurfaceFormats) { 9843 return ? 9844} 9845 9846@extension("VK_MVK_ios_surface") // 123 9847cmd VkResult vkCreateIOSSurfaceMVK( 9848 VkInstance instance, 9849 const VkIOSSurfaceCreateInfoMVK* pCreateInfo, 9850 const VkAllocationCallbacks* pAllocator, 9851 VkSurfaceKHR* pSurface) { 9852 return ? 9853} 9854 9855@extension("VK_MVK_macos_surface") // 124 9856cmd VkResult vkCreateMacOSSurfaceMVK( 9857 VkInstance instance, 9858 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, 9859 const VkAllocationCallbacks* pAllocator, 9860 VkSurfaceKHR* pSurface) { 9861 return ? 9862} 9863 9864@extension("VK_EXT_debug_utils") // 129 9865@external type void* PFN_vkDebugUtilsMessengerCallbackEXT 9866@extension("VK_EXT_debug_utils") // 129 9867@pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT( 9868 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 9869 VkDebugUtilsMessageTypeFlagsEXT messageType, 9870 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, 9871 void* pUserData) { 9872 return ? 9873} 9874 9875@extension("VK_EXT_debug_utils") // 129 9876cmd VkResult vkSetDebugUtilsObjectNameEXT( 9877 VkDevice device, 9878 const VkDebugUtilsObjectNameInfoEXT* pNameInfo) { 9879 return ? 9880} 9881 9882@extension("VK_EXT_debug_utils") // 129 9883cmd VkResult vkSetDebugUtilsObjectTagEXT( 9884 VkDevice device, 9885 const VkDebugUtilsObjectTagInfoEXT* pTagInfo) { 9886 return ? 9887} 9888 9889@extension("VK_EXT_debug_utils") // 129 9890cmd void vkQueueBeginDebugUtilsLabelEXT( 9891 VkQueue queue, 9892 const VkDebugUtilsLabelEXT* pLabelInfo) { 9893} 9894 9895@extension("VK_EXT_debug_utils") // 129 9896cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) { 9897} 9898 9899@extension("VK_EXT_debug_utils") // 129 9900cmd void vkQueueInsertDebugUtilsLabelEXT( 9901 VkQueue queue, 9902 const VkDebugUtilsLabelEXT* pLabelInfo) { 9903} 9904 9905@extension("VK_EXT_debug_utils") // 129 9906cmd void vkCmdBeginDebugUtilsLabelEXT( 9907 VkCommandBuffer commandBuffer, 9908 const VkDebugUtilsLabelEXT* pLabelInfo) { 9909} 9910 9911@extension("VK_EXT_debug_utils") // 129 9912cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) { 9913} 9914 9915@extension("VK_EXT_debug_utils") // 129 9916cmd void vkCmdInsertDebugUtilsLabelEXT( 9917 VkCommandBuffer commandBuffer, 9918 const VkDebugUtilsLabelEXT* pLabelInfo) { 9919} 9920 9921@extension("VK_EXT_debug_utils") // 129 9922cmd VkResult vkCreateDebugUtilsMessengerEXT( 9923 VkInstance instance, 9924 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, 9925 const VkAllocationCallbacks* pAllocator, 9926 VkDebugUtilsMessengerEXT* pMessenger) { 9927 return ? 9928} 9929 9930@extension("VK_EXT_debug_utils") // 129 9931cmd void vkDestroyDebugUtilsMessengerEXT( 9932 VkInstance instance, 9933 VkDebugUtilsMessengerEXT messenger, 9934 const VkAllocationCallbacks* pAllocator) { 9935} 9936 9937@extension("VK_EXT_debug_utils") // 129 9938cmd void vkSubmitDebugUtilsMessageEXT( 9939 VkInstance instance, 9940 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 9941 VkDebugUtilsMessageTypeFlagsEXT messageTypes, 9942 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) { 9943} 9944 9945@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 9946@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does 9947cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID( 9948 VkDevice device, 9949 const platform.AHardwareBuffer* buffer, 9950 VkAndroidHardwareBufferPropertiesANDROID* pProperties) { 9951 return ? 9952} 9953 9954@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 9955@vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does 9956cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID( 9957 VkDevice device, 9958 const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, 9959 platform.AHardwareBuffer** pBuffer) { 9960 return ? 9961} 9962 9963@extension("VK_EXT_sample_locations") // 144 9964cmd void vkCmdSetSampleLocationsEXT( 9965 VkCommandBuffer commandBuffer, 9966 const VkSampleLocationsInfoEXT* pSampleLocationsInfo) { 9967} 9968 9969@extension("VK_EXT_sample_locations") // 144 9970cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT( 9971 VkPhysicalDevice physicalDevice, 9972 VkSampleCountFlagBits samples, 9973 VkMultisamplePropertiesEXT* pMultisampleProperties) { 9974} 9975 9976@extension("VK_KHR_get_memory_requirements2") // 147 9977cmd void vkGetImageMemoryRequirements2KHR( 9978 VkDevice device, 9979 const VkImageMemoryRequirementsInfo2KHR* pInfo, 9980 VkMemoryRequirements2KHR* pMemoryRequirements) { 9981} 9982 9983@extension("VK_KHR_get_memory_requirements2") // 147 9984cmd void vkGetBufferMemoryRequirements2KHR( 9985 VkDevice device, 9986 const VkBufferMemoryRequirementsInfo2KHR* pInfo, 9987 VkMemoryRequirements2KHR* pMemoryRequirements) { 9988} 9989 9990@extension("VK_KHR_get_memory_requirements2") // 147 9991cmd void vkGetImageSparseMemoryRequirements2KHR( 9992 VkDevice device, 9993 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, 9994 u32* pSparseMemoryRequirementCount, 9995 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) { 9996} 9997 9998@extension("VK_KHR_sampler_ycbcr_conversion") // 157 9999cmd VkResult vkCreateSamplerYcbcrConversionKHR( 10000 VkDevice device, 10001 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, 10002 const VkAllocationCallbacks* pAllocator, 10003 VkSamplerYcbcrConversionKHR* pYcbcrConversion) { 10004 return ? 10005} 10006 10007@extension("VK_KHR_sampler_ycbcr_conversion") // 157 10008cmd void vkDestroySamplerYcbcrConversionKHR( 10009 VkDevice device, 10010 VkSamplerYcbcrConversionKHR ycbcrConversion, 10011 const VkAllocationCallbacks* pAllocator) { 10012} 10013 10014@extension("VK_KHR_bind_memory2") // 158 10015cmd VkResult vkBindBufferMemory2KHR( 10016 VkDevice device, 10017 u32 bindInfoCount, 10018 const VkBindBufferMemoryInfoKHR* pBindInfos) { 10019 return ? 10020} 10021 10022@extension("VK_KHR_bind_memory2") // 158 10023cmd VkResult vkBindImageMemory2KHR( 10024 VkDevice device, 10025 u32 bindInfoCount, 10026 const VkBindImageMemoryInfoKHR* pBindInfos) { 10027 return ? 10028} 10029 10030@extension("VK_EXT_validation_cache") // 161 10031cmd VkResult vkCreateValidationCacheEXT( 10032 VkDevice device, 10033 const VkValidationCacheCreateInfoEXT* pCreateInfo, 10034 const VkAllocationCallbacks* pAllocator, 10035 VkValidationCacheEXT* pValidationCache) { 10036 return ? 10037} 10038 10039@extension("VK_EXT_validation_cache") // 161 10040cmd void vkDestroyValidationCacheEXT( 10041 VkDevice device, 10042 VkValidationCacheEXT validationCache, 10043 const VkAllocationCallbacks* pAllocator) { 10044} 10045 10046@extension("VK_EXT_validation_cache") // 161 10047cmd VkResult vkMergeValidationCachesEXT( 10048 VkDevice device, 10049 VkValidationCacheEXT dstCache, 10050 u32 srcCacheCount, 10051 const VkValidationCacheEXT* pSrcCaches) { 10052 return ? 10053} 10054 10055@extension("VK_EXT_validation_cache") // 161 10056cmd VkResult vkGetValidationCacheDataEXT( 10057 VkDevice device, 10058 VkValidationCacheEXT validationCache, 10059 platform.size_t* pDataSize, 10060 void* pData) { 10061 return ? 10062} 10063 10064@extension("VK_KHR_maintenance3") // 169 10065cmd void vkGetDescriptorSetLayoutSupportKHR( 10066 VkDevice device, 10067 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 10068 VkDescriptorSetLayoutSupportKHR* pSupport) { 10069} 10070 10071@extension("VK_EXT_external_memory_host") // 179 10072cmd VkResult vkGetMemoryHostPointerPropertiesEXT( 10073 VkDevice device, 10074 VkExternalMemoryHandleTypeFlagBits handleType, 10075 const void* pHostPointer, 10076 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) { 10077 return ? 10078} 10079 10080//////////////// 10081// Validation // 10082//////////////// 10083 10084extern void validate(string layerName, bool condition, string message) 10085 10086 10087///////////////////////////// 10088// Internal State Tracking // 10089///////////////////////////// 10090 10091StateObject State 10092 10093@internal class StateObject { 10094 // Dispatchable objects. 10095 map!(VkInstance, ref!InstanceObject) Instances 10096 map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices 10097 map!(VkDevice, ref!DeviceObject) Devices 10098 map!(VkQueue, ref!QueueObject) Queues 10099 map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers 10100 10101 // Non-dispatchable objects. 10102 map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories 10103 map!(VkBuffer, ref!BufferObject) Buffers 10104 map!(VkBufferView, ref!BufferViewObject) BufferViews 10105 map!(VkImage, ref!ImageObject) Images 10106 map!(VkImageView, ref!ImageViewObject) ImageViews 10107 map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules 10108 map!(VkPipeline, ref!PipelineObject) Pipelines 10109 map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts 10110 map!(VkSampler, ref!SamplerObject) Samplers 10111 map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets 10112 map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts 10113 map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools 10114 map!(VkFence, ref!FenceObject) Fences 10115 map!(VkSemaphore, ref!SemaphoreObject) Semaphores 10116 map!(VkEvent, ref!EventObject) Events 10117 map!(VkQueryPool, ref!QueryPoolObject) QueryPools 10118 map!(VkFramebuffer, ref!FramebufferObject) Framebuffers 10119 map!(VkRenderPass, ref!RenderPassObject) RenderPasses 10120 map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches 10121 map!(VkCommandPool, ref!CommandPoolObject) CommandPools 10122 map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces 10123 map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains 10124} 10125 10126@internal class InstanceObject { 10127} 10128 10129@internal class PhysicalDeviceObject { 10130 VkInstance instance 10131} 10132 10133@internal class DeviceObject { 10134 VkPhysicalDevice physicalDevice 10135} 10136 10137@internal class QueueObject { 10138 VkDevice device 10139 VkQueueFlags flags 10140} 10141 10142@internal class CommandBufferObject { 10143 VkDevice device 10144 map!(u64, VkDeviceMemory) boundObjects 10145 VkQueueFlags queueFlags 10146} 10147 10148@internal class DeviceMemoryObject { 10149 VkDevice device 10150 VkDeviceSize allocationSize 10151 map!(u64, VkDeviceSize) boundObjects 10152 map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers 10153} 10154 10155@internal class BufferObject { 10156 VkDevice device 10157 VkDeviceMemory memory 10158 VkDeviceSize memoryOffset 10159} 10160 10161@internal class BufferViewObject { 10162 VkDevice device 10163 VkBuffer buffer 10164} 10165 10166@internal class ImageObject { 10167 VkDevice device 10168 VkDeviceMemory memory 10169 VkDeviceSize memoryOffset 10170} 10171 10172@internal class ImageViewObject { 10173 VkDevice device 10174 VkImage image 10175} 10176 10177@internal class ShaderObject { 10178 VkDevice device 10179} 10180 10181@internal class ShaderModuleObject { 10182 VkDevice device 10183} 10184 10185@internal class PipelineObject { 10186 VkDevice device 10187} 10188 10189@internal class PipelineLayoutObject { 10190 VkDevice device 10191} 10192 10193@internal class SamplerObject { 10194 VkDevice device 10195} 10196 10197@internal class DescriptorSetObject { 10198 VkDevice device 10199} 10200 10201@internal class DescriptorSetLayoutObject { 10202 VkDevice device 10203} 10204 10205@internal class DescriptorPoolObject { 10206 VkDevice device 10207} 10208 10209@internal class FenceObject { 10210 VkDevice device 10211 bool signaled 10212} 10213 10214@internal class SemaphoreObject { 10215 VkDevice device 10216} 10217 10218@internal class EventObject { 10219 VkDevice device 10220} 10221 10222@internal class QueryPoolObject { 10223 VkDevice device 10224} 10225 10226@internal class FramebufferObject { 10227 VkDevice device 10228} 10229 10230@internal class RenderPassObject { 10231 VkDevice device 10232} 10233 10234@internal class PipelineCacheObject { 10235 VkDevice device 10236} 10237 10238@internal class CommandPoolObject { 10239 VkDevice device 10240} 10241 10242@internal class SurfaceObject { 10243 VkInstance instance 10244} 10245 10246@internal class SwapchainObject { 10247 VkDevice device 10248} 10249 10250macro ref!InstanceObject GetInstance(VkInstance instance) { 10251 assert(instance in State.Instances) 10252 return State.Instances[instance] 10253} 10254 10255macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) { 10256 assert(physicalDevice in State.PhysicalDevices) 10257 return State.PhysicalDevices[physicalDevice] 10258} 10259 10260macro ref!DeviceObject GetDevice(VkDevice device) { 10261 assert(device in State.Devices) 10262 return State.Devices[device] 10263} 10264 10265macro ref!QueueObject GetQueue(VkQueue queue) { 10266 assert(queue in State.Queues) 10267 return State.Queues[queue] 10268} 10269 10270macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) { 10271 assert(commandBuffer in State.CommandBuffers) 10272 return State.CommandBuffers[commandBuffer] 10273} 10274 10275macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) { 10276 assert(memory in State.DeviceMemories) 10277 return State.DeviceMemories[memory] 10278} 10279 10280macro ref!BufferObject GetBuffer(VkBuffer buffer) { 10281 assert(buffer in State.Buffers) 10282 return State.Buffers[buffer] 10283} 10284 10285macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) { 10286 assert(bufferView in State.BufferViews) 10287 return State.BufferViews[bufferView] 10288} 10289 10290macro ref!ImageObject GetImage(VkImage image) { 10291 assert(image in State.Images) 10292 return State.Images[image] 10293} 10294 10295macro ref!ImageViewObject GetImageView(VkImageView imageView) { 10296 assert(imageView in State.ImageViews) 10297 return State.ImageViews[imageView] 10298} 10299 10300macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) { 10301 assert(shaderModule in State.ShaderModules) 10302 return State.ShaderModules[shaderModule] 10303} 10304 10305macro ref!PipelineObject GetPipeline(VkPipeline pipeline) { 10306 assert(pipeline in State.Pipelines) 10307 return State.Pipelines[pipeline] 10308} 10309 10310macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) { 10311 assert(pipelineLayout in State.PipelineLayouts) 10312 return State.PipelineLayouts[pipelineLayout] 10313} 10314 10315macro ref!SamplerObject GetSampler(VkSampler sampler) { 10316 assert(sampler in State.Samplers) 10317 return State.Samplers[sampler] 10318} 10319 10320macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) { 10321 assert(descriptorSet in State.DescriptorSets) 10322 return State.DescriptorSets[descriptorSet] 10323} 10324 10325macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) { 10326 assert(descriptorSetLayout in State.DescriptorSetLayouts) 10327 return State.DescriptorSetLayouts[descriptorSetLayout] 10328} 10329 10330macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) { 10331 assert(descriptorPool in State.DescriptorPools) 10332 return State.DescriptorPools[descriptorPool] 10333} 10334 10335macro ref!FenceObject GetFence(VkFence fence) { 10336 assert(fence in State.Fences) 10337 return State.Fences[fence] 10338} 10339 10340macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) { 10341 assert(semaphore in State.Semaphores) 10342 return State.Semaphores[semaphore] 10343} 10344 10345macro ref!EventObject GetEvent(VkEvent event) { 10346 assert(event in State.Events) 10347 return State.Events[event] 10348} 10349 10350macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) { 10351 assert(queryPool in State.QueryPools) 10352 return State.QueryPools[queryPool] 10353} 10354 10355macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) { 10356 assert(framebuffer in State.Framebuffers) 10357 return State.Framebuffers[framebuffer] 10358} 10359 10360macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) { 10361 assert(renderPass in State.RenderPasses) 10362 return State.RenderPasses[renderPass] 10363} 10364 10365macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) { 10366 assert(pipelineCache in State.PipelineCaches) 10367 return State.PipelineCaches[pipelineCache] 10368} 10369 10370macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) { 10371 assert(commandPool in State.CommandPools) 10372 return State.CommandPools[commandPool] 10373} 10374 10375macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) { 10376 assert(surface in State.Surfaces) 10377 return State.Surfaces[surface] 10378} 10379 10380macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) { 10381 assert(swapchain in State.Swapchains) 10382 return State.Swapchains[swapchain] 10383} 10384 10385macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) { 10386 return as!VkQueueFlags(as!u32(flags) | as!u32(bit)) 10387} 10388