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