| // Copyright (c) 2015 The Khronos Group Inc. | |
| // | |
| // Permission is hereby granted, free of charge, to any person obtaining a | |
| // copy of this software and/or associated documentation files (the | |
| // "Materials"), to deal in the Materials without restriction, including | |
| // without limitation the rights to use, copy, modify, merge, publish, | |
| // distribute, sublicense, and/or sell copies of the Materials, and to | |
| // permit persons to whom the Materials are furnished to do so, subject to | |
| // the following conditions: | |
| // | |
| // The above copyright notice and this permission notice shall be included | |
| // in all copies or substantial portions of the Materials. | |
| // | |
| // THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | |
| // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | |
| // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | |
| // IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | |
| // CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | |
| // TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | |
| // MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. | |
| import platform "platform.api" | |
| /////////////// | |
| // Constants // | |
| /////////////// | |
| // API version (major.minor.patch) | |
| define VERSION_MAJOR 1 | |
| define VERSION_MINOR 1 | |
| define VERSION_PATCH 96 | |
| // API limits | |
| define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256 | |
| define VK_UUID_SIZE 16 | |
| define VK_MAX_EXTENSION_NAME_SIZE 256 | |
| define VK_MAX_DESCRIPTION_SIZE 256 | |
| define VK_MAX_MEMORY_TYPES 32 | |
| define VK_MAX_MEMORY_HEAPS 16 /// The maximum number of unique memory heaps, each of which supporting 1 or more memory types. | |
| @vulkan1_1 | |
| define VK_MAX_DEVICE_GROUP_SIZE 32 | |
| @vulkan1_1 | |
| define VK_LUID_SIZE 8 | |
| @vulkan1_1 | |
| define VK_QUEUE_FAMILY_EXTERNAL -2 | |
| @extension("VK_EXT_queue_family_foreign") | |
| define VK_QUEUE_FAMILY_FOREIGN_EXT -3 | |
| @extension("VK_MAX_DRIVER_NAME_SIZE_KHR") // 197 | |
| define VK_MAX_DRIVER_NAME_SIZE_KHR 256 | |
| @extension("VK_MAX_DRIVER_NAME_SIZE_KHR") // 197 | |
| define VK_MAX_DRIVER_INFO_SIZE_KHR 256 | |
| // API keywords | |
| define VK_TRUE 1 | |
| define VK_FALSE 0 | |
| // API keyword, but needs special handling by some templates | |
| define NULL_HANDLE 0 | |
| // 1 | |
| @extension("VK_KHR_surface") define VK_KHR_SURFACE_SPEC_VERSION 25 | |
| @extension("VK_KHR_surface") define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" | |
| // 2 | |
| @extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 | |
| @extension("VK_KHR_swapchain") define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" | |
| // 3 | |
| @extension("VK_KHR_display") define VK_KHR_DISPLAY_SPEC_VERSION 21 | |
| @extension("VK_KHR_display") define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" | |
| // 4 | |
| @extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9 | |
| @extension("VK_KHR_display_swapchain") define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" | |
| // 5 | |
| @extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6 | |
| @extension("VK_KHR_xlib_surface") define VK_KHR_XLIB_SURFACE_NAME "VK_KHR_xlib_surface" | |
| // 6 | |
| @extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_SPEC_VERSION 6 | |
| @extension("VK_KHR_xcb_surface") define VK_KHR_XCB_SURFACE_NAME "VK_KHR_xcb_surface" | |
| // 7 | |
| @extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 | |
| @extension("VK_KHR_wayland_surface") define VK_KHR_WAYLAND_SURFACE_NAME "VK_KHR_wayland_surface" | |
| // 8 - VK_KHR_mir_surface removed | |
| // 9 | |
| @extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 | |
| @extension("VK_KHR_android_surface") define VK_KHR_ANDROID_SURFACE_NAME "VK_KHR_android_surface" | |
| // 10 | |
| @extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 | |
| @extension("VK_KHR_win32_surface") define VK_KHR_WIN32_SURFACE_NAME "VK_KHR_win32_surface" | |
| // 11 | |
| @extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_SPEC_VERSION 8 | |
| @extension("VK_ANDROID_native_buffer") define VK_ANDROID_NATIVE_BUFFER_NAME "VK_ANDROID_native_buffer" | |
| // 12 | |
| @extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 | |
| @extension("VK_EXT_debug_report") define VK_EXT_DEBUG_REPORT_NAME "VK_EXT_debug_report" | |
| // 13 | |
| @extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_SPEC_VERSION 1 | |
| @extension("VK_NV_glsl_shader") define VK_NV_GLSL_SHADER_NAME "VK_NV_glsl_shader" | |
| // 14 | |
| @extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1 | |
| @extension("VK_EXT_depth_range_unrestricted") define VK_EXT_DEPTH_RANGE_UNRESTRICTED_NAME "VK_EXT_depth_range_unrestricted" | |
| // 15 | |
| @extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1 | |
| @extension("VK_KHR_sampler_mirror_clamp_to_edge") define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_NAME "VK_KHR_sampler_mirror_clamp_to_edge" | |
| // 16 | |
| @extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1 | |
| @extension("VK_IMG_filter_cubic") define VK_IMG_FILTER_CUBIC_NAME "VK_IMG_filter_cubic" | |
| // 19 | |
| @extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1 | |
| @extension("VK_AMD_rasterization_order") define VK_AMD_RASTERIZATION_ORDER_NAME "VK_AMD_rasterization_order" | |
| // 21 | |
| @extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1 | |
| @extension("VK_AMD_shader_trinary_minmax") define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax" | |
| // 22 | |
| @extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1 | |
| @extension("VK_AMD_shader_explicit_vertex_parameter") define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter" | |
| // 23 | |
| @extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4 | |
| @extension("VK_EXT_debug_marker") define VK_EXT_DEBUG_MARKER_NAME "VK_EXT_debug_marker" | |
| // 26 | |
| @extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_SPEC_VERSION 1 | |
| @extension("VK_AMD_gcn_shader") define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader" | |
| // 27 | |
| @extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1 | |
| @extension("VK_NV_dedicated_allocation") define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation" | |
| // 28 | |
| @extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1 | |
| @extension("VK_IMG_format_pvrtc") define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc" | |
| // 29 | |
| @extension("VK_EXT_transform_feedback") define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1 | |
| @extension("VK_EXT_transform_feedback") define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback" | |
| // 34 | |
| @extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 | |
| @extension("VK_AMD_draw_indirect_count") define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" | |
| // 36 | |
| @extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1 | |
| @extension("VK_AMD_negative_viewport_height") define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height" | |
| // 37 | |
| @extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1 | |
| @extension("VK_AMD_gpu_shader_half_float") define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float" | |
| // 38 | |
| @extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1 | |
| @extension("VK_AMD_shader_ballot") define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot" | |
| // 42 | |
| @extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 | |
| @extension("VK_AMD_texture_gather_bias_lod") define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" | |
| // 43 | |
| @extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_SPEC_VERSION 1 | |
| @extension("VK_AMD_shader_info") define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" | |
| // 47 | |
| @extension("VK_AMD_shader_image_load_store_lod") define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 | |
| @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" | |
| // 51 | |
| @extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2 | |
| @extension("VK_NV_corner_sampled_image") define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image" | |
| // 54 | |
| @extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_SPEC_VERSION 1 | |
| @extension("VK_KHR_multiview") define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" | |
| // 56 | |
| @extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 | |
| @extension("VK_NV_external_memory_capabilities") define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities" | |
| // 57 | |
| @extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1 | |
| @extension("VK_NV_external_memory") define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory" | |
| // 58 | |
| @extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 | |
| @extension("VK_NV_external_memory_win32") define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" | |
| // 59 | |
| @extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1 | |
| @extension("VK_NV_win32_keyed_mutex") define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" | |
| // 60 | |
| @extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1 | |
| @extension("VK_KHR_get_physical_device_properties2") define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" | |
| // 61 | |
| @extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3 | |
| @extension("VK_KHR_device_group") define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" | |
| // 62 | |
| @extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1 | |
| @extension("VK_EXT_validation_flags") define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" | |
| // 63 | |
| @extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_SPEC_VERSION 1 | |
| @extension("VK_NN_vi_surface") define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface" | |
| // 64 | |
| @extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 | |
| @extension("VK_KHR_shader_draw_parameters") define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" | |
| // 65 | |
| @extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1 | |
| @extension("VK_EXT_shader_subgroup_ballot") define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot" | |
| // 66 | |
| @extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1 | |
| @extension("VK_EXT_shader_subgroup_vote") define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" | |
| // 68 | |
| @extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1 | |
| @extension("VK_EXT_astc_decode_mode") define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode" | |
| // 70 | |
| @extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_SPEC_VERSION 2 | |
| @extension("VK_KHR_maintenance1") define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" | |
| // 71 | |
| @extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1 | |
| @extension("VK_KHR_device_group_creation") define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation" | |
| // 72 | |
| @extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_memory_capabilities") define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" | |
| // 73 | |
| @extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_memory") define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" | |
| // 74 | |
| @extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_memory_win32") define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" | |
| // 75 | |
| @extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_memory_fd") define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" | |
| // 76 | |
| @extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 | |
| @extension("VK_KHR_win32_keyed_mutex") define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" | |
| // 77 | |
| @extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_semaphore_capabilities") define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" | |
| // 78 | |
| @extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_semaphore") define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" | |
| // 79 | |
| @extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_semaphore_win32") define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" | |
| // 80 | |
| @extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_semaphore_fd") define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" | |
| // 81 | |
| @extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2 | |
| @extension("VK_KHR_push_descriptor") define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" | |
| // 82 | |
| @extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1 | |
| @extension("VK_EXT_conditional_rendering") define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering" | |
| // 83 | |
| @extension("VK_KHR_shader_float16_int8") define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1 | |
| @extension("VK_KHR_shader_float16_int8") define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8" | |
| // 84 | |
| @extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 | |
| @extension("VK_KHR_16bit_storage") define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" | |
| // 85 | |
| @extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 | |
| @extension("VK_KHR_incremental_present") define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" | |
| // 86 | |
| @extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 | |
| @extension("VK_KHR_descriptor_update_template") define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" | |
| // 87 | |
| @extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 | |
| @extension("VK_NVX_device_generated_commands") define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands" | |
| // 88 | |
| @extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 | |
| @extension("VK_NV_clip_space_w_scaling") define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" | |
| // 89 | |
| @extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 | |
| @extension("VK_EXT_direct_mode_display") define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" | |
| // 90 | |
| @extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1 | |
| @extension("VK_EXT_acquire_xlib_display") define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display" | |
| // 91 | |
| @extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 | |
| @extension("VK_EXT_display_surface_counter") define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" | |
| // 92 | |
| @extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 | |
| @extension("VK_EXT_display_control") define VK_EXT_DISPLAY_CONTROL_COUNTER_EXTENSION_NAME "VK_EXT_display_control" | |
| // 93 | |
| @extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 | |
| @extension("VK_GOOGLE_display_timing") define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" | |
| // 95 | |
| @extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 | |
| @extension("VK_NV_sample_mask_override_coverage") define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" | |
| // 96 | |
| @extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1 | |
| @extension("VK_NV_geometry_shader_passthrough") define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough" | |
| // 97 | |
| @extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1 | |
| @extension("VK_NV_viewport_array2") define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2" | |
| // 98 | |
| @extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 | |
| @extension("VK_NVX_multiview_per_view_attributes") define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" | |
| // 99 | |
| @extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1 | |
| @extension("VK_NV_viewport_swizzle") define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle" | |
| // 100 | |
| @extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1 | |
| @extension("VK_EXT_discard_rectangles") define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" | |
| // 102 | |
| @extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 | |
| @extension("VK_EXT_conservative_rasterization") define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" | |
| // 105 | |
| @extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_SPEC_VERSION 3 | |
| @extension("VK_EXT_swapchain_colorspace") define VK_EXT_SWAPCHAIN_COLORSPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" | |
| // 106 | |
| @extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_SPEC_VERSION 1 | |
| @extension("VK_EXT_hdr_metadata") define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" | |
| // 110 | |
| @extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_SPEC_VERSION 1 | |
| @extension("VK_KHR_create_renderpass2") define VK_KHR_CREATE_RENDERPASS2_EXTENSION_NAME "VK_KHR_create_renderpass2" | |
| // 112 | |
| @extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 | |
| @extension("VK_KHR_shared_presentable_image") define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" | |
| // 113 | |
| @extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_fence_capabilities") define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" | |
| // 114 | |
| @extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_fence") define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" | |
| // 115 | |
| @extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_fence_win32") define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" | |
| // 116 | |
| @extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 | |
| @extension("VK_KHR_external_fence_fd") define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" | |
| // 118 | |
| @extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 | |
| @extension("VK_KHR_maintenance2") define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" | |
| // 120 | |
| @extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 | |
| @extension("VK_KHR_get_surface_capabilities2") define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" | |
| // 121 | |
| @extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 | |
| @extension("VK_KHR_variable_pointers") define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" | |
| // 122 | |
| @extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1 | |
| @extension("VK_KHR_get_display_properties2") define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2" | |
| // 123 | |
| @extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_SPEC_VERSION 1 | |
| @extension("VK_MVK_ios_surface") define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" | |
| // 124 | |
| @extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_SPEC_VERSION 1 | |
| @extension("VK_MVK_macos_surface") define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" | |
| // 126 | |
| @extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 | |
| @extension("VK_EXT_external_memory_dma_buf") define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" | |
| // 127 | |
| @extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 | |
| @extension("VK_EXT_queue_family_foreign") define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" | |
| // 128 | |
| @extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 | |
| @extension("VK_KHR_dedicated_allocation") define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" | |
| // 128 | |
| @extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1 | |
| @extension("VK_EXT_debug_utils") define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" | |
| // 130 | |
| @extension("VK_ANDROID_external_memory_android_hardware_buffer") define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3 | |
| @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" | |
| // 131 | |
| @extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1 | |
| @extension("VK_EXT_sampler_filter_minmax") define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" | |
| // 132 | |
| @extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1 | |
| @extension("VK_KHR_storage_buffer_storage_class") define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class" | |
| // 133 | |
| @extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1 | |
| @extension("VK_AMD_gpu_shader_int16") define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" | |
| // 137 | |
| @extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1 | |
| @extension("VK_AMD_mixed_attachment_samples") define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples" | |
| // 138 | |
| @extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1 | |
| @extension("VK_AMD_shader_fragment_mask") define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" | |
| // 139 | |
| @extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1 | |
| @extension("VK_EXT_inline_uniform_block") define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block" | |
| // 141 | |
| @extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 | |
| @extension("VK_EXT_shader_stencil_export") define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" | |
| // 144 | |
| @extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 | |
| @extension("VK_EXT_sample_locations") define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" | |
| // 145 | |
| @extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1 | |
| @extension("VK_KHR_relaxed_block_layout") define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout" | |
| // 147 | |
| @extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_SPEC_VERSION 1 | |
| @extension("VK_KHR_get_memory_requirements2") define VK_KHR_GET_MEMORY_REQUIREMENTS2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" | |
| // 148 | |
| @extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 | |
| @extension("VK_KHR_image_format_list") define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" | |
| // 149 | |
| @extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 | |
| @extension("VK_EXT_blend_operation_advanced") define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" | |
| // 150 | |
| @extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 | |
| @extension("VK_NV_fragment_coverage_to_color") define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" | |
| // 153 | |
| @extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 | |
| @extension("VK_NV_framebuffer_mixed_samples") define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" | |
| // 154 | |
| @extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1 | |
| @extension("VK_NV_fill_rectangle") define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" | |
| // 156 | |
| @extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 | |
| @extension("VK_EXT_post_depth_coverage") define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" | |
| // 157 | |
| @extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1 | |
| @extension("VK_KHR_sampler_ycbcr_conversion") define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" | |
| // 158 | |
| @extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_SPEC_VERSION 1 | |
| @extension("VK_KHR_bind_memory2") define VK_KHR_BIND_MEMORY2_EXTENSION_NAME "VK_KHR_bind_memory2" | |
| // 159 | |
| @extension("VK_EXT_image_drm_format_modifier") define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1 | |
| @extension("VK_EXT_image_drm_format_modifier") define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" | |
| // 161 | |
| @extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 | |
| @extension("VK_EXT_validation_cache") define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" | |
| // 162 | |
| @extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2 | |
| @extension("VK_EXT_descriptor_indexing") define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing" | |
| // 163 | |
| @extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1 | |
| @extension("VK_EXT_shader_viewport_index_layer") define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" | |
| // 165 | |
| @extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3 | |
| @extension("VK_NV_shading_rate_image") define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image" | |
| // 166 | |
| @extension("VK_NV_ray_tracing") define VK_NV_RAY_TRACING_SPEC_VERSION 3 | |
| @extension("VK_NV_ray_tracing") define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing" | |
| // 167 | |
| @extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1 | |
| @extension("VK_NV_representative_fragment_test") define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" | |
| // 169 | |
| @extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_SPEC_VERSION 1 | |
| @extension("VK_KHR_maintenance3") define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3" | |
| // 170 | |
| @extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 | |
| @extension("VK_KHR_draw_indirect_count") define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count" | |
| // 175 | |
| @extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1 | |
| @extension("VK_EXT_global_priority") define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" | |
| // 178 | |
| @extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1 | |
| @extension("VK_KHR_8bit_storage") define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage" | |
| // 179 | |
| @extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 | |
| @extension("VK_EXT_external_memory_host") define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" | |
| // 180 | |
| @extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1 | |
| @extension("VK_AMD_buffer_marker") define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker" | |
| // 181 | |
| @extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1 | |
| @extension("VK_KHR_shader_atomic_int64") define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64" | |
| // 186 | |
| @extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1 | |
| @extension("VK_AMD_shader_core_properties") define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" | |
| // 190 | |
| @extension("VK_AMD_memory_overallocation_behavior") define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1 | |
| @extension("VK_AMD_memory_overallocation_behavior") define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior" | |
| // 191 | |
| @extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 2 | |
| @extension("VK_EXT_vertex_attribute_divisor") define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" | |
| // 197 | |
| @extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 | |
| @extension("VK_KHR_driver_properties") define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties" | |
| // 198 | |
| @extension("VK_KHR_shader_float_controls") define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 1 | |
| @extension("VK_KHR_shader_float_controls") define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls" | |
| // 199 | |
| @extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1 | |
| @extension("VK_NV_shader_subgroup_partitioned") define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned" | |
| // 201 | |
| @extension("VK_KHR_swapchain_mutable_format") define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1 | |
| @extension("VK_KHR_swapchain_mutable_format") define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format" | |
| // 202 | |
| @extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1 | |
| @extension("VK_NV_compute_shader_derivatives") define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives" | |
| // 203 | |
| @extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_SPEC_VERSION 1 | |
| @extension("VK_NV_mesh_shader") define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader" | |
| // 204 | |
| @extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1 | |
| @extension("VK_NV_fragment_shader_barycentric") define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric" | |
| // 205 | |
| @extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1 | |
| @extension("VK_NV_shader_image_footprint") define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" | |
| // 206 | |
| @extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1 | |
| @extension("VK_NV_scissor_exclusive") define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive" | |
| // 207 | |
| @extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2 | |
| @extension("VK_NV_device_diagnostic_checkpoints") define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints" | |
| // 212 | |
| @extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2 | |
| @extension("VK_KHR_vulkan_memory_model") define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model" | |
| // 213 | |
| @extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2 | |
| @extension("VK_EXT_pci_bus_info") define VK_EXT_PCI_BUS_INFO_EXENSION_NAME "VK_EXT_pci_bus_info" | |
| // 215 | |
| @extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1 | |
| @extension("VK_FUCHSIA_imagepipe_surface") define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface" | |
| // 219 | |
| @extension("VK_EXT_fragment_density_map") define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1 | |
| @extension("VK_EXT_fragment_density_map") define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map" | |
| // 222 | |
| @extension("VK_EXT_scalar_block_layout") define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1 | |
| @extension("VK_EXT_scalar_block_layout") define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout" | |
| // 224 | |
| @extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1 | |
| @extension("VK_GOOGLE_hlsl_functionality1") define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" | |
| // 225 | |
| @extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1 | |
| @extension("VK_GOOGLE_decorate_string") define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" | |
| // 247 | |
| @extension("VK_EXT_separate_stencil_usage") define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1 | |
| @extension("VK_EXT_separate_stencil_usage") define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage" | |
| ///////////// | |
| // Types // | |
| ///////////// | |
| type u32 VkBool32 | |
| type u32 VkFlags | |
| type u64 VkDeviceSize | |
| type u32 VkSampleMask | |
| /// Dispatchable handle types. | |
| @dispatchHandle type u64 VkInstance | |
| @dispatchHandle type u64 VkPhysicalDevice | |
| @dispatchHandle type u64 VkDevice | |
| @dispatchHandle type u64 VkQueue | |
| @dispatchHandle type u64 VkCommandBuffer | |
| /// Non dispatchable handle types. | |
| @nonDispatchHandle type u64 VkDeviceMemory | |
| @nonDispatchHandle type u64 VkCommandPool | |
| @nonDispatchHandle type u64 VkBuffer | |
| @nonDispatchHandle type u64 VkBufferView | |
| @nonDispatchHandle type u64 VkImage | |
| @nonDispatchHandle type u64 VkImageView | |
| @nonDispatchHandle type u64 VkShaderModule | |
| @nonDispatchHandle type u64 VkPipeline | |
| @nonDispatchHandle type u64 VkPipelineLayout | |
| @nonDispatchHandle type u64 VkSampler | |
| @nonDispatchHandle type u64 VkDescriptorSet | |
| @nonDispatchHandle type u64 VkDescriptorSetLayout | |
| @nonDispatchHandle type u64 VkDescriptorPool | |
| @nonDispatchHandle type u64 VkFence | |
| @nonDispatchHandle type u64 VkSemaphore | |
| @nonDispatchHandle type u64 VkEvent | |
| @nonDispatchHandle type u64 VkQueryPool | |
| @nonDispatchHandle type u64 VkFramebuffer | |
| @nonDispatchHandle type u64 VkRenderPass | |
| @nonDispatchHandle type u64 VkPipelineCache | |
| @vulkan1_1 | |
| @nonDispatchHandle type u64 VkSamplerYcbcrConversion | |
| @nonDispatchHandle type u64 VkDescriptorUpdateTemplate | |
| // 1 | |
| @extension("VK_KHR_surface") @nonDispatchHandle type u64 VkSurfaceKHR | |
| // 2 | |
| @extension("VK_KHR_swapchain") @nonDispatchHandle type u64 VkSwapchainKHR | |
| // 3 | |
| @extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayKHR | |
| @extension("VK_KHR_display") @nonDispatchHandle type u64 VkDisplayModeKHR | |
| // 12 | |
| @extension("VK_EXT_debug_report") @nonDispatchHandle type u64 VkDebugReportCallbackEXT | |
| // 86 | |
| @extension("VK_KHR_descriptor_update_template") @nonDispatchHandle type u64 VkDescriptorUpdateTemplateKHR | |
| // 87 | |
| @extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkObjectTableNVX | |
| @extension("VK_NVX_device_generated_commands") @nonDispatchHandle type u64 VkIndirectCommandsLayoutNVX | |
| // 129 | |
| @extension("VK_EXT_debug_utils") @nonDispatchHandle type u64 VkDebugUtilsMessengerEXT | |
| // 157 | |
| @extension("VK_KHR_sampler_ycbcr_conversion") @nonDispatchHandle type u64 VkSamplerYcbcrConversionKHR | |
| // 161 | |
| @extension("VK_EXT_validation_cache") @nonDispatchHandle type u64 VkValidationCacheEXT | |
| // 166 | |
| @extension("VK_NV_ray_tracing") @nonDispatchHandle type u64 VkAccelerationStructureNV | |
| ///////////// | |
| // Enums // | |
| ///////////// | |
| enum VkImageLayout { | |
| VK_IMAGE_LAYOUT_UNDEFINED = 0x00000000, /// Implicit layout an image is when its contents are undefined due to various reasons (e.g. right after creation) | |
| VK_IMAGE_LAYOUT_GENERAL = 0x00000001, /// General layout when image can be used for any kind of access | |
| VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 0x00000002, /// Optimal layout when image is only used for color attachment read/write | |
| VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 0x00000003, /// Optimal layout when image is only used for depth/stencil attachment read/write | |
| VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 0x00000004, /// Optimal layout when image is used for read only depth/stencil attachment and shader access | |
| VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 0x00000005, /// Optimal layout when image is used for read only shader access | |
| VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 0x00000006, /// Optimal layout when image is used only as source of transfer operations | |
| VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 0x00000007, /// Optimal layout when image is used only as destination of transfer operations | |
| VK_IMAGE_LAYOUT_PREINITIALIZED = 0x00000008, /// Initial layout used when the data is populated by the CPU | |
| //@vulkan1_1 | |
| VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, | |
| VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, | |
| //@extension("VK_KHR_swapchain") // 2 | |
| VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, | |
| //@extension("VK_KHR_shared_presentable_image") // 112 | |
| VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, | |
| //@extension("VK_KHR_maintenance2") // 118 | |
| VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000, | |
| VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001, | |
| //@extension("VK_NV_shading_rate_image") // 165 | |
| VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, | |
| //@extension("VK_EXT_fragment_density_map") // 219 | |
| VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, | |
| } | |
| enum VkAttachmentLoadOp { | |
| VK_ATTACHMENT_LOAD_OP_LOAD = 0x00000000, | |
| VK_ATTACHMENT_LOAD_OP_CLEAR = 0x00000001, | |
| VK_ATTACHMENT_LOAD_OP_DONT_CARE = 0x00000002, | |
| } | |
| enum VkAttachmentStoreOp { | |
| VK_ATTACHMENT_STORE_OP_STORE = 0x00000000, | |
| VK_ATTACHMENT_STORE_OP_DONT_CARE = 0x00000001, | |
| } | |
| enum VkImageType { | |
| VK_IMAGE_TYPE_1D = 0x00000000, | |
| VK_IMAGE_TYPE_2D = 0x00000001, | |
| VK_IMAGE_TYPE_3D = 0x00000002, | |
| } | |
| enum VkImageTiling { | |
| VK_IMAGE_TILING_OPTIMAL = 0x00000000, | |
| VK_IMAGE_TILING_LINEAR = 0x00000001, | |
| //@extension("VK_EXT_image_drm_format_modifier") // 159 | |
| VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, | |
| } | |
| enum VkImageViewType { | |
| VK_IMAGE_VIEW_TYPE_1D = 0x00000000, | |
| VK_IMAGE_VIEW_TYPE_2D = 0x00000001, | |
| VK_IMAGE_VIEW_TYPE_3D = 0x00000002, | |
| VK_IMAGE_VIEW_TYPE_CUBE = 0x00000003, | |
| VK_IMAGE_VIEW_TYPE_1D_ARRAY = 0x00000004, | |
| VK_IMAGE_VIEW_TYPE_2D_ARRAY = 0x00000005, | |
| VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 0x00000006, | |
| } | |
| enum VkCommandBufferLevel { | |
| VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0x00000000, | |
| VK_COMMAND_BUFFER_LEVEL_SECONDARY = 0x00000001, | |
| } | |
| enum VkComponentSwizzle { | |
| VK_COMPONENT_SWIZZLE_IDENTITY = 0x00000000, | |
| VK_COMPONENT_SWIZZLE_ZERO = 0x00000001, | |
| VK_COMPONENT_SWIZZLE_ONE = 0x00000002, | |
| VK_COMPONENT_SWIZZLE_R = 0x00000003, | |
| VK_COMPONENT_SWIZZLE_G = 0x00000004, | |
| VK_COMPONENT_SWIZZLE_B = 0x00000005, | |
| VK_COMPONENT_SWIZZLE_A = 0x00000006, | |
| } | |
| enum VkDescriptorType { | |
| VK_DESCRIPTOR_TYPE_SAMPLER = 0x00000000, | |
| VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 0x00000001, | |
| VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 0x00000002, | |
| VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 0x00000003, | |
| VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 0x00000004, | |
| VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 0x00000005, | |
| VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 0x00000006, | |
| VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 0x00000007, | |
| VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 0x00000008, | |
| VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 0x00000009, | |
| VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 0x0000000a, | |
| //@extension("VK_EXT_inline_uniform_block") // 139 | |
| VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, | |
| } | |
| enum VkQueryType { | |
| VK_QUERY_TYPE_OCCLUSION = 0x00000000, | |
| VK_QUERY_TYPE_PIPELINE_STATISTICS = 0x00000001, /// Optional | |
| VK_QUERY_TYPE_TIMESTAMP = 0x00000002, | |
| //@extension("VK_EXT_transform_feedback") // 29 | |
| VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, | |
| } | |
| enum VkBorderColor { | |
| VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0x00000000, | |
| VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 0x00000001, | |
| VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 0x00000002, | |
| VK_BORDER_COLOR_INT_OPAQUE_BLACK = 0x00000003, | |
| VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 0x00000004, | |
| VK_BORDER_COLOR_INT_OPAQUE_WHITE = 0x00000005, | |
| } | |
| enum VkPipelineBindPoint { | |
| VK_PIPELINE_BIND_POINT_GRAPHICS = 0x00000000, | |
| VK_PIPELINE_BIND_POINT_COMPUTE = 0x00000001, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000, | |
| } | |
| enum VkPrimitiveTopology { | |
| VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0x00000000, | |
| VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 0x00000001, | |
| VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 0x00000002, | |
| VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 0x00000003, | |
| VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 0x00000004, | |
| VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 0x00000005, | |
| VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 0x00000006, | |
| VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 0x00000007, | |
| VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 0x00000008, | |
| VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 0x00000009, | |
| VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 0x0000000a, | |
| } | |
| enum VkSharingMode { | |
| VK_SHARING_MODE_EXCLUSIVE = 0x00000000, | |
| VK_SHARING_MODE_CONCURRENT = 0x00000001, | |
| } | |
| enum VkIndexType { | |
| VK_INDEX_TYPE_UINT16 = 0x00000000, | |
| VK_INDEX_TYPE_UINT32 = 0x00000001, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_INDEX_TYPE_NONE_NV = 1000165000, | |
| } | |
| enum VkFilter { | |
| VK_FILTER_NEAREST = 0x00000000, | |
| VK_FILTER_LINEAR = 0x00000001, | |
| //@extension("VK_IMG_filter_cubic") // 16 | |
| VK_FILTER_CUBIC_IMG = 1000015000, | |
| } | |
| enum VkSamplerMipmapMode { | |
| VK_SAMPLER_MIPMAP_MODE_NEAREST = 0x00000001, /// Choose nearest mip level | |
| VK_SAMPLER_MIPMAP_MODE_LINEAR = 0x00000002, /// Linear filter between mip levels | |
| } | |
| enum VkSamplerAddressMode { | |
| VK_SAMPLER_ADDRESS_MODE_REPEAT = 0x00000000, | |
| VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 0x00000001, | |
| VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 0x00000002, | |
| VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 0x00000003, | |
| VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 0x00000004, | |
| } | |
| enum VkCompareOp { | |
| VK_COMPARE_OP_NEVER = 0x00000000, | |
| VK_COMPARE_OP_LESS = 0x00000001, | |
| VK_COMPARE_OP_EQUAL = 0x00000002, | |
| VK_COMPARE_OP_LESS_OR_EQUAL = 0x00000003, | |
| VK_COMPARE_OP_GREATER = 0x00000004, | |
| VK_COMPARE_OP_NOT_EQUAL = 0x00000005, | |
| VK_COMPARE_OP_GREATER_OR_EQUAL = 0x00000006, | |
| VK_COMPARE_OP_ALWAYS = 0x00000007, | |
| } | |
| enum VkPolygonMode { | |
| VK_POLYGON_MODE_FILL = 0x00000000, | |
| VK_POLYGON_MODE_LINE = 0x00000001, | |
| VK_POLYGON_MODE_POINT = 0x00000002, | |
| //@extension("VK_NV_fill_rectangle") // 154 | |
| VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, | |
| } | |
| enum VkFrontFace { | |
| VK_FRONT_FACE_COUNTER_CLOCKWISE = 0x00000000, | |
| VK_FRONT_FACE_CLOCKWISE = 0x00000001, | |
| } | |
| enum VkBlendFactor { | |
| VK_BLEND_FACTOR_ZERO = 0x00000000, | |
| VK_BLEND_FACTOR_ONE = 0x00000001, | |
| VK_BLEND_FACTOR_SRC_COLOR = 0x00000002, | |
| VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 0x00000003, | |
| VK_BLEND_FACTOR_DST_COLOR = 0x00000004, | |
| VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 0x00000005, | |
| VK_BLEND_FACTOR_SRC_ALPHA = 0x00000006, | |
| VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 0x00000007, | |
| VK_BLEND_FACTOR_DST_ALPHA = 0x00000008, | |
| VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 0x00000009, | |
| VK_BLEND_FACTOR_CONSTANT_COLOR = 0x0000000a, | |
| VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 0x0000000b, | |
| VK_BLEND_FACTOR_CONSTANT_ALPHA = 0x0000000c, | |
| VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 0x0000000d, | |
| VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 0x0000000e, | |
| VK_BLEND_FACTOR_SRC1_COLOR = 0x0000000f, | |
| VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 0x00000010, | |
| VK_BLEND_FACTOR_SRC1_ALPHA = 0x00000011, | |
| VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 0x00000012, | |
| } | |
| enum VkBlendOp { | |
| VK_BLEND_OP_ADD = 0x00000000, | |
| VK_BLEND_OP_SUBTRACT = 0x00000001, | |
| VK_BLEND_OP_REVERSE_SUBTRACT = 0x00000002, | |
| VK_BLEND_OP_MIN = 0x00000003, | |
| VK_BLEND_OP_MAX = 0x00000004, | |
| //@extension("VK_EXT_blend_operation_advanced") // 149 | |
| VK_BLEND_OP_ZERO_EXT = 1000148000, | |
| VK_BLEND_OP_SRC_EXT = 1000148001, | |
| VK_BLEND_OP_DST_EXT = 1000148002, | |
| VK_BLEND_OP_SRC_OVER_EXT = 1000148003, | |
| VK_BLEND_OP_DST_OVER_EXT = 1000148004, | |
| VK_BLEND_OP_SRC_IN_EXT = 1000148005, | |
| VK_BLEND_OP_DST_IN_EXT = 1000148006, | |
| VK_BLEND_OP_SRC_OUT_EXT = 1000148007, | |
| VK_BLEND_OP_DST_OUT_EXT = 1000148008, | |
| VK_BLEND_OP_SRC_ATOP_EXT = 1000148009, | |
| VK_BLEND_OP_DST_ATOP_EXT = 1000148010, | |
| VK_BLEND_OP_XOR_EXT = 1000148011, | |
| VK_BLEND_OP_MULTIPLY_EXT = 1000148012, | |
| VK_BLEND_OP_SCREEN_EXT = 1000148013, | |
| VK_BLEND_OP_OVERLAY_EXT = 1000148014, | |
| VK_BLEND_OP_DARKEN_EXT = 1000148015, | |
| VK_BLEND_OP_LIGHTEN_EXT = 1000148016, | |
| VK_BLEND_OP_COLORDODGE_EXT = 1000148017, | |
| VK_BLEND_OP_COLORBURN_EXT = 1000148018, | |
| VK_BLEND_OP_HARDLIGHT_EXT = 1000148019, | |
| VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020, | |
| VK_BLEND_OP_DIFFERENCE_EXT = 1000148021, | |
| VK_BLEND_OP_EXCLUSION_EXT = 1000148022, | |
| VK_BLEND_OP_INVERT_EXT = 1000148023, | |
| VK_BLEND_OP_INVERT_RGB_EXT = 1000148024, | |
| VK_BLEND_OP_LINEARDODGE_EXT = 1000148025, | |
| VK_BLEND_OP_LINEARBURN_EXT = 1000148026, | |
| VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, | |
| VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028, | |
| VK_BLEND_OP_PINLIGHT_EXT = 1000148029, | |
| VK_BLEND_OP_HARDMIX_EXT = 1000148030, | |
| VK_BLEND_OP_HSL_HUE_EXT = 1000148031, | |
| VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032, | |
| VK_BLEND_OP_HSL_COLOR_EXT = 1000148033, | |
| VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, | |
| VK_BLEND_OP_PLUS_EXT = 1000148035, | |
| VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, | |
| VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, | |
| VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038, | |
| VK_BLEND_OP_MINUS_EXT = 1000148039, | |
| VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, | |
| VK_BLEND_OP_CONTRAST_EXT = 1000148041, | |
| VK_BLEND_OP_INVERT_OVG_EXT = 1000148042, | |
| VK_BLEND_OP_RED_EXT = 1000148043, | |
| VK_BLEND_OP_GREEN_EXT = 1000148044, | |
| VK_BLEND_OP_BLUE_EXT = 1000148045, | |
| } | |
| enum VkStencilOp { | |
| VK_STENCIL_OP_KEEP = 0x00000000, | |
| VK_STENCIL_OP_ZERO = 0x00000001, | |
| VK_STENCIL_OP_REPLACE = 0x00000002, | |
| VK_STENCIL_OP_INCREMENT_AND_CLAMP = 0x00000003, | |
| VK_STENCIL_OP_DECREMENT_AND_CLAMP = 0x00000004, | |
| VK_STENCIL_OP_INVERT = 0x00000005, | |
| VK_STENCIL_OP_INCREMENT_AND_WRAP = 0x00000006, | |
| VK_STENCIL_OP_DECREMENT_AND_WRAP = 0x00000007, | |
| } | |
| enum VkLogicOp { | |
| VK_LOGIC_OP_CLEAR = 0x00000000, | |
| VK_LOGIC_OP_AND = 0x00000001, | |
| VK_LOGIC_OP_AND_REVERSE = 0x00000002, | |
| VK_LOGIC_OP_COPY = 0x00000003, | |
| VK_LOGIC_OP_AND_INVERTED = 0x00000004, | |
| VK_LOGIC_OP_NO_OP = 0x00000005, | |
| VK_LOGIC_OP_XOR = 0x00000006, | |
| VK_LOGIC_OP_OR = 0x00000007, | |
| VK_LOGIC_OP_NOR = 0x00000008, | |
| VK_LOGIC_OP_EQUIVALENT = 0x00000009, | |
| VK_LOGIC_OP_INVERT = 0x0000000a, | |
| VK_LOGIC_OP_OR_REVERSE = 0x0000000b, | |
| VK_LOGIC_OP_COPY_INVERTED = 0x0000000c, | |
| VK_LOGIC_OP_OR_INVERTED = 0x0000000d, | |
| VK_LOGIC_OP_NAND = 0x0000000e, | |
| VK_LOGIC_OP_SET = 0x0000000f, | |
| } | |
| enum VkSystemAllocationScope { | |
| VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0x00000000, | |
| VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 0x00000001, | |
| VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 0x00000002, | |
| VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 0x00000003, | |
| VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 0x00000004, | |
| } | |
| enum VkInternalAllocationType { | |
| VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0x00000000, | |
| } | |
| enum VkPhysicalDeviceType { | |
| VK_PHYSICAL_DEVICE_TYPE_OTHER = 0x00000000, | |
| VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 0x00000001, | |
| VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 0x00000002, | |
| VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 0x00000003, | |
| VK_PHYSICAL_DEVICE_TYPE_CPU = 0x00000004, | |
| } | |
| enum VkVertexInputRate { | |
| VK_VERTEX_INPUT_RATE_VERTEX = 0x00000000, | |
| VK_VERTEX_INPUT_RATE_INSTANCE = 0x00000001, | |
| } | |
| /// Vulkan format definitions | |
| enum VkFormat { | |
| VK_FORMAT_UNDEFINED = 0, | |
| VK_FORMAT_R4G4_UNORM_PACK8 = 1, | |
| VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2, | |
| VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3, | |
| VK_FORMAT_R5G6B5_UNORM_PACK16 = 4, | |
| VK_FORMAT_B5G6R5_UNORM_PACK16 = 5, | |
| VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6, | |
| VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7, | |
| VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8, | |
| VK_FORMAT_R8_UNORM = 9, | |
| VK_FORMAT_R8_SNORM = 10, | |
| VK_FORMAT_R8_USCALED = 11, | |
| VK_FORMAT_R8_SSCALED = 12, | |
| VK_FORMAT_R8_UINT = 13, | |
| VK_FORMAT_R8_SINT = 14, | |
| VK_FORMAT_R8_SRGB = 15, | |
| VK_FORMAT_R8G8_UNORM = 16, | |
| VK_FORMAT_R8G8_SNORM = 17, | |
| VK_FORMAT_R8G8_USCALED = 18, | |
| VK_FORMAT_R8G8_SSCALED = 19, | |
| VK_FORMAT_R8G8_UINT = 20, | |
| VK_FORMAT_R8G8_SINT = 21, | |
| VK_FORMAT_R8G8_SRGB = 22, | |
| VK_FORMAT_R8G8B8_UNORM = 23, | |
| VK_FORMAT_R8G8B8_SNORM = 24, | |
| VK_FORMAT_R8G8B8_USCALED = 25, | |
| VK_FORMAT_R8G8B8_SSCALED = 26, | |
| VK_FORMAT_R8G8B8_UINT = 27, | |
| VK_FORMAT_R8G8B8_SINT = 28, | |
| VK_FORMAT_R8G8B8_SRGB = 29, | |
| VK_FORMAT_B8G8R8_UNORM = 30, | |
| VK_FORMAT_B8G8R8_SNORM = 31, | |
| VK_FORMAT_B8G8R8_USCALED = 32, | |
| VK_FORMAT_B8G8R8_SSCALED = 33, | |
| VK_FORMAT_B8G8R8_UINT = 34, | |
| VK_FORMAT_B8G8R8_SINT = 35, | |
| VK_FORMAT_B8G8R8_SRGB = 36, | |
| VK_FORMAT_R8G8B8A8_UNORM = 37, | |
| VK_FORMAT_R8G8B8A8_SNORM = 38, | |
| VK_FORMAT_R8G8B8A8_USCALED = 39, | |
| VK_FORMAT_R8G8B8A8_SSCALED = 40, | |
| VK_FORMAT_R8G8B8A8_UINT = 41, | |
| VK_FORMAT_R8G8B8A8_SINT = 42, | |
| VK_FORMAT_R8G8B8A8_SRGB = 43, | |
| VK_FORMAT_B8G8R8A8_UNORM = 44, | |
| VK_FORMAT_B8G8R8A8_SNORM = 45, | |
| VK_FORMAT_B8G8R8A8_USCALED = 46, | |
| VK_FORMAT_B8G8R8A8_SSCALED = 47, | |
| VK_FORMAT_B8G8R8A8_UINT = 48, | |
| VK_FORMAT_B8G8R8A8_SINT = 49, | |
| VK_FORMAT_B8G8R8A8_SRGB = 50, | |
| VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51, | |
| VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52, | |
| VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53, | |
| VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54, | |
| VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55, | |
| VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56, | |
| VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57, | |
| VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58, | |
| VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59, | |
| VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60, | |
| VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61, | |
| VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62, | |
| VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63, | |
| VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64, | |
| VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65, | |
| VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66, | |
| VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67, | |
| VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68, | |
| VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69, | |
| VK_FORMAT_R16_UNORM = 70, | |
| VK_FORMAT_R16_SNORM = 71, | |
| VK_FORMAT_R16_USCALED = 72, | |
| VK_FORMAT_R16_SSCALED = 73, | |
| VK_FORMAT_R16_UINT = 74, | |
| VK_FORMAT_R16_SINT = 75, | |
| VK_FORMAT_R16_SFLOAT = 76, | |
| VK_FORMAT_R16G16_UNORM = 77, | |
| VK_FORMAT_R16G16_SNORM = 78, | |
| VK_FORMAT_R16G16_USCALED = 79, | |
| VK_FORMAT_R16G16_SSCALED = 80, | |
| VK_FORMAT_R16G16_UINT = 81, | |
| VK_FORMAT_R16G16_SINT = 82, | |
| VK_FORMAT_R16G16_SFLOAT = 83, | |
| VK_FORMAT_R16G16B16_UNORM = 84, | |
| VK_FORMAT_R16G16B16_SNORM = 85, | |
| VK_FORMAT_R16G16B16_USCALED = 86, | |
| VK_FORMAT_R16G16B16_SSCALED = 87, | |
| VK_FORMAT_R16G16B16_UINT = 88, | |
| VK_FORMAT_R16G16B16_SINT = 89, | |
| VK_FORMAT_R16G16B16_SFLOAT = 90, | |
| VK_FORMAT_R16G16B16A16_UNORM = 91, | |
| VK_FORMAT_R16G16B16A16_SNORM = 92, | |
| VK_FORMAT_R16G16B16A16_USCALED = 93, | |
| VK_FORMAT_R16G16B16A16_SSCALED = 94, | |
| VK_FORMAT_R16G16B16A16_UINT = 95, | |
| VK_FORMAT_R16G16B16A16_SINT = 96, | |
| VK_FORMAT_R16G16B16A16_SFLOAT = 97, | |
| VK_FORMAT_R32_UINT = 98, | |
| VK_FORMAT_R32_SINT = 99, | |
| VK_FORMAT_R32_SFLOAT = 100, | |
| VK_FORMAT_R32G32_UINT = 101, | |
| VK_FORMAT_R32G32_SINT = 102, | |
| VK_FORMAT_R32G32_SFLOAT = 103, | |
| VK_FORMAT_R32G32B32_UINT = 104, | |
| VK_FORMAT_R32G32B32_SINT = 105, | |
| VK_FORMAT_R32G32B32_SFLOAT = 106, | |
| VK_FORMAT_R32G32B32A32_UINT = 107, | |
| VK_FORMAT_R32G32B32A32_SINT = 108, | |
| VK_FORMAT_R32G32B32A32_SFLOAT = 109, | |
| VK_FORMAT_R64_UINT = 110, | |
| VK_FORMAT_R64_SINT = 111, | |
| VK_FORMAT_R64_SFLOAT = 112, | |
| VK_FORMAT_R64G64_UINT = 113, | |
| VK_FORMAT_R64G64_SINT = 114, | |
| VK_FORMAT_R64G64_SFLOAT = 115, | |
| VK_FORMAT_R64G64B64_UINT = 116, | |
| VK_FORMAT_R64G64B64_SINT = 117, | |
| VK_FORMAT_R64G64B64_SFLOAT = 118, | |
| VK_FORMAT_R64G64B64A64_UINT = 119, | |
| VK_FORMAT_R64G64B64A64_SINT = 120, | |
| VK_FORMAT_R64G64B64A64_SFLOAT = 121, | |
| VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122, | |
| VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123, | |
| VK_FORMAT_D16_UNORM = 124, | |
| VK_FORMAT_X8_D24_UNORM_PACK32 = 125, | |
| VK_FORMAT_D32_SFLOAT = 126, | |
| VK_FORMAT_S8_UINT = 127, | |
| VK_FORMAT_D16_UNORM_S8_UINT = 128, | |
| VK_FORMAT_D24_UNORM_S8_UINT = 129, | |
| VK_FORMAT_D32_SFLOAT_S8_UINT = 130, | |
| VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131, | |
| VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132, | |
| VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133, | |
| VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134, | |
| VK_FORMAT_BC2_UNORM_BLOCK = 135, | |
| VK_FORMAT_BC2_SRGB_BLOCK = 136, | |
| VK_FORMAT_BC3_UNORM_BLOCK = 137, | |
| VK_FORMAT_BC3_SRGB_BLOCK = 138, | |
| VK_FORMAT_BC4_UNORM_BLOCK = 139, | |
| VK_FORMAT_BC4_SNORM_BLOCK = 140, | |
| VK_FORMAT_BC5_UNORM_BLOCK = 141, | |
| VK_FORMAT_BC5_SNORM_BLOCK = 142, | |
| VK_FORMAT_BC6H_UFLOAT_BLOCK = 143, | |
| VK_FORMAT_BC6H_SFLOAT_BLOCK = 144, | |
| VK_FORMAT_BC7_UNORM_BLOCK = 145, | |
| VK_FORMAT_BC7_SRGB_BLOCK = 146, | |
| VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147, | |
| VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148, | |
| VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149, | |
| VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150, | |
| VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151, | |
| VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152, | |
| VK_FORMAT_EAC_R11_UNORM_BLOCK = 153, | |
| VK_FORMAT_EAC_R11_SNORM_BLOCK = 154, | |
| VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155, | |
| VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156, | |
| VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157, | |
| VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158, | |
| VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159, | |
| VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160, | |
| VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161, | |
| VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162, | |
| VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163, | |
| VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164, | |
| VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165, | |
| VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166, | |
| VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167, | |
| VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168, | |
| VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169, | |
| VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170, | |
| VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171, | |
| VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172, | |
| VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173, | |
| VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174, | |
| VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175, | |
| VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176, | |
| VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, | |
| VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, | |
| VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, | |
| VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, | |
| VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, | |
| VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, | |
| VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, | |
| VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, | |
| //@vulkan1_1 | |
| VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000, | |
| VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001, | |
| VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002, | |
| VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003, | |
| VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004, | |
| VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005, | |
| VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006, | |
| VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007, | |
| VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008, | |
| VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009, | |
| VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010, | |
| VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011, | |
| VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012, | |
| VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013, | |
| VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014, | |
| VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015, | |
| VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016, | |
| VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017, | |
| VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018, | |
| VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019, | |
| VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020, | |
| VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021, | |
| VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022, | |
| VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023, | |
| VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024, | |
| VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025, | |
| VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026, | |
| VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027, | |
| VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028, | |
| VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029, | |
| VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030, | |
| VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, | |
| VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, | |
| VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, | |
| //@extension("VK_IMG_format_pvrtc") // 28 | |
| VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, | |
| VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, | |
| VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, | |
| VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003, | |
| VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004, | |
| VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, | |
| VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, | |
| VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, | |
| //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000, | |
| VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001, | |
| VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002, | |
| VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003, | |
| VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004, | |
| VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005, | |
| VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006, | |
| VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007, | |
| VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008, | |
| VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009, | |
| VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010, | |
| VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011, | |
| VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012, | |
| VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013, | |
| VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014, | |
| VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015, | |
| VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016, | |
| VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017, | |
| VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018, | |
| VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019, | |
| VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020, | |
| VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021, | |
| VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022, | |
| VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023, | |
| VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024, | |
| VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025, | |
| VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026, | |
| VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027, | |
| VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028, | |
| VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029, | |
| VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030, | |
| VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031, | |
| VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032, | |
| VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033, | |
| } | |
| /// Structure type enumerant | |
| enum VkStructureType { | |
| VK_STRUCTURE_TYPE_APPLICATION_INFO = 0, | |
| VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1, | |
| VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2, | |
| VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3, | |
| VK_STRUCTURE_TYPE_SUBMIT_INFO = 4, | |
| VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5, | |
| VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6, | |
| VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7, | |
| VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8, | |
| VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9, | |
| VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10, | |
| VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11, | |
| VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12, | |
| VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13, | |
| VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14, | |
| VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15, | |
| VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16, | |
| VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17, | |
| VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18, | |
| VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19, | |
| VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20, | |
| VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21, | |
| VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22, | |
| VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23, | |
| VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24, | |
| VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25, | |
| VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26, | |
| VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27, | |
| VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28, | |
| VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29, | |
| VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30, | |
| VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31, | |
| VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32, | |
| VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33, | |
| VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34, | |
| VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35, | |
| VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36, | |
| VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37, | |
| VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38, | |
| VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39, | |
| VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40, | |
| VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41, | |
| VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42, | |
| VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43, | |
| VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44, | |
| VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45, | |
| VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46, | |
| VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47, | |
| VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48, | |
| //@vulkan1_1 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000, | |
| VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000, | |
| VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000, | |
| VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000, | |
| VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001, | |
| VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006, | |
| VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013, | |
| VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001, | |
| VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000, | |
| VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001, | |
| VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002, | |
| VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003, | |
| VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001, | |
| VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002, | |
| VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004, | |
| VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006, | |
| VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000, | |
| VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001, | |
| VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002, | |
| VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003, | |
| VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000, | |
| VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, | |
| VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003, | |
| VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000, | |
| VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001, | |
| VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002, | |
| VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004, | |
| VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005, | |
| VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000, | |
| VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002, | |
| VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004, | |
| VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000, | |
| VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001, | |
| VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000, | |
| VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001, | |
| VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000, | |
| VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000, | |
| VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, | |
| VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, | |
| //@extension("VK_KHR_swapchain") // 2 | |
| VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, | |
| VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, | |
| // added as interaction from VK_KHR_device_group / VK 1.1 | |
| VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008, | |
| VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009, | |
| VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012, | |
| //@extension("VK_KHR_display") // 3 | |
| VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000, | |
| VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001, | |
| //@extension("VK_KHR_display_swapchain") // 4 | |
| VK_STRUCTURE_TYPE_DISPLAY_DISPLAY_PRESENT_INFO_KHR = 1000003000, | |
| //@extension("VK_KHR_xlib_surface") // 5 | |
| VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, | |
| //@extension("VK_KHR_xcb_surface") // 6 | |
| VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000, | |
| //@extension("VK_KHR_wayland_surface") // 7 | |
| VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, | |
| //@extension("VK_KHR_android_surface") // 9 | |
| VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, | |
| //@extension("VK_KHR_win32_surface") // 10 | |
| VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, | |
| //@extension("VK_ANDROID_native_buffer") // 11 | |
| VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID = 1000010000, | |
| VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_ANDROID = 1000010001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_ANDROID = 1000010002, | |
| //@extension("VK_EXT_debug_report") // 12 | |
| VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, | |
| //@extension("VK_AMD_rasterization_order") // 19 | |
| VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000, | |
| //@extension("VK_EXT_debug_marker") // 23 | |
| VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000, | |
| VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001, | |
| VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002, | |
| //@extension("VK_NV_dedicated_allocation") // 27 | |
| VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, | |
| VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, | |
| VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, | |
| //@extension("VK_EXT_transform_feedback") // 29 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, | |
| VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, | |
| //@extension("VK_AMD_texture_gather_bias_lod") // 42 | |
| VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, | |
| //@extension("VK_NV_corner_sampled_image") // 51 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, | |
| //@extension("VK_KHR_multiview") // 54 | |
| VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = 1000053000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = 1000053001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = 1000053002, | |
| //@extension("VK_NV_external_memory") // 57 | |
| VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, | |
| VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, | |
| //@extension("VK_NV_external_memory_win32") // 58 | |
| VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000, | |
| VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001, | |
| //@extension("VK_NV_win32_keyed_mutex") // 59 | |
| VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, | |
| //@extension("VK_KHR_get_physical_device_properties2") // 60 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001, | |
| VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002, | |
| VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004, | |
| VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006, | |
| VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008, | |
| //@extension("VK_KHR_device_group") // 61 | |
| VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = 1000060000, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = 1000060003, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = 1000060004, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = 1000060005, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = 1000060006, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, | |
| // tokens 08-12 are listed with VK_KHR_swapchain | |
| VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060013, | |
| VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = 1000060014, | |
| //@extension("VK_EXT_validation_flags") // 62 | |
| VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, | |
| //@extension("VK_NN_vi_surface") // 63 | |
| VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, | |
| //@extension("VK_EXT_astc_decode_mode") // 68 | |
| VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, | |
| //@extension("VK_KHR_device_group_creation") // 71 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = 1000070000, | |
| VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = 1000070001, | |
| //@extension("VK_KHR_external_memory_capabilities") // 72 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000, | |
| VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002, | |
| VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004, | |
| //@extension("VK_KHR_external_memory") // 73 | |
| VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000, | |
| VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001, | |
| VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002, | |
| //@extension("VK_KHR_external_memory_win32") // 74 | |
| VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, | |
| VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001, | |
| VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002, | |
| //@extension("VK_KHR_external_memory_fd") // 75 | |
| VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000, | |
| VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001, | |
| //@extension("VK_KHR_win32_keyed_mutex") // 76 | |
| VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000, | |
| //@extension("VK_KHR_external_semaphore_capabilities") // 77 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000, | |
| VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001, | |
| //@extension("VK_KHR_external_semaphore") // 78 | |
| VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000, | |
| //@extension("VK_KHR_external_semaphore_win32") // 79 | |
| VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000, | |
| VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001, | |
| VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002, | |
| //@extension("VK_KHR_external_semaphore_fd") // 80 | |
| VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, | |
| VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, | |
| //@extension("VK_KHR_push_descriptor") // 81 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, | |
| //@extension("VK_KHR_16bit_storage") // 84 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000, | |
| //@extension("VK_KHR_incremental_present") // 85 | |
| VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, | |
| //@extension("VK_EXT_conditional_rendering") // 82 | |
| VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, | |
| VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, | |
| //@extension("VK_KHR_shader_float16_int8") // 83 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = 1000082000, | |
| //@extension("VK_KHR_descriptor_update_template") // 86 | |
| VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000, | |
| //@extension("VK_NVX_device_generated_commands") // 87 | |
| VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, | |
| VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, | |
| VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002, | |
| VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003, | |
| VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004, | |
| VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005, | |
| //@extension("VK_NV_clip_space_w_scaling") // 88 | |
| VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, | |
| //@extension("VK_EXT_display_surface_counter") // 91 | |
| VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, | |
| //@extension("VK_EXT_display_control") // 92 | |
| VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, | |
| VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001, | |
| VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002, | |
| VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003, | |
| //@extension("VK_GOOGLE_display_timing") // 93 | |
| VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000, | |
| //@extension("VK_NVX_multiview_per_view_attributes") // 98 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000, | |
| //@extension("VK_NV_viewport_swizzle") // 99 | |
| VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000, | |
| //@extension("VK_EXT_discard_rectangles") // 100 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000, | |
| VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, | |
| //@extension("VK_EXT_conservative_rasterization") // 102 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, | |
| VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, | |
| //@extension("VK_KHR_create_renderpass2") // 110 | |
| VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000, | |
| VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001, | |
| VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002, | |
| VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003, | |
| VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004, | |
| VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005, | |
| VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006, | |
| //@extension("VK_EXT_hdr_metadata") // 106 | |
| VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, | |
| //@extension("VK_KHR_shared_presentable_image") // 112 | |
| VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, | |
| //@extension("VK_KHR_external_fence_capabilities") // 113 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000, | |
| VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001, | |
| //@extension("VK_KHR_external_fence") // 114 | |
| VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000, | |
| //@extension("VK_KHR_external_fence_win32") // 115 | |
| VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000, | |
| VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001, | |
| VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, | |
| //@extension("VK_KHR_external_fence_fd") // 117 | |
| VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, | |
| VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, | |
| //@extension("VK_KHR_maintenance2") // 118 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000, | |
| VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001, | |
| VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002, | |
| VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003, | |
| //@extension("VK_KHR_get_surface_capabilities2") // 120 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, | |
| VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, | |
| VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, | |
| //@extension("VK_KHR_variable_pointers") // 121 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000, | |
| //@extension("VK_KHR_display_properties2") // 122 | |
| VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000, | |
| VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001, | |
| VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002, | |
| VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003, | |
| VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004, | |
| //@extension("VK_MVK_ios_surface") // 123 | |
| VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, | |
| //@extension("VK_MVK_macos_surface") // 124 | |
| VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, | |
| //@extension("VK_KHR_dedicated_allocation") // 128 | |
| VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000, | |
| VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001, | |
| //@extension("VK_EXT_debug_utils") // 129 | |
| VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000, | |
| VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001, | |
| VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002, | |
| VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003, | |
| VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004, | |
| //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 | |
| VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000, | |
| VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001, | |
| VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002, | |
| VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003, | |
| VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, | |
| VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, | |
| //@extension("VK_EXT_sampler_filter_minmax") // 131 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000, | |
| VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001, | |
| //@extension("VK_EXT_inline_uniform_block") // 139 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001, | |
| VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002, | |
| VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003, | |
| //@extension("VK_EXT_sample_locations") // 144 | |
| VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, | |
| VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, | |
| VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003, | |
| VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004, | |
| //@extension("VK_KHR_get_memory_requirements2") // 147 | |
| VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000, | |
| VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001, | |
| VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002, | |
| VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003, | |
| VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004, | |
| //@extension("VK_KHR_image_format_list") // 148 | |
| VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000, | |
| //@extension("VK_EXT_blend_operation_advanced") // 149 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001, | |
| VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, | |
| //@extension("VK_NV_fragment_coverage_to_color") // 150 | |
| VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, | |
| //@extension("VK_NV_framebuffer_mixed_samples") // 153 | |
| VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, | |
| //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000, | |
| VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001, | |
| VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002, | |
| VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004, | |
| VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005, | |
| //@extension("VK_EXT_image_drm_format_modifier") // 159 | |
| VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, | |
| VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, | |
| VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, | |
| VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, | |
| VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, | |
| //@extension("VK_KHR_bind_memory2") // 158 | |
| VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000, | |
| VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001, | |
| //@extension("VK_EXT_validation_cache") // 161 | |
| VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, | |
| VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, | |
| //@extension("VK_EXT_descriptor_indexing") // 162 | |
| VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002, | |
| VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003, | |
| VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004, | |
| //@extension("VK_NV_shading_rate_image") // 165 | |
| VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002, | |
| VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000, | |
| VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001, | |
| VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003, | |
| VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004, | |
| VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005, | |
| VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006, | |
| VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007, | |
| VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009, | |
| VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011, | |
| VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012, | |
| //@extension("VK_NV_representative_fragment_test") // 167 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000, | |
| VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001, | |
| //@extension("VK_KHR_maintenance3") // 169 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = 1000168000, | |
| VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = 1000168001, | |
| //@extension("VK_EXT_global_priority") // 175 | |
| VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, | |
| //@extension("VK_KHR_8bit_storage") // 178 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000, | |
| //@extension("VK_EXT_external_memory_host") // 179 | |
| VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, | |
| VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, | |
| //@extension("VK_KHR_shader_atomic_int64") // 181 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000, | |
| //@extension("VK_EXT_calibrated_timestamps") // 185 | |
| VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, | |
| //@extension("VK_KHR_driver_properties") // 197 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000, | |
| //@extension("VK_KHR_shader_float_controls") // 198 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000, | |
| //@extension("VK_AMD_shader_core_properties") // 186 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, | |
| //@extension("VK_AMD_memory_overallocation_behavior") // 190 | |
| VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, | |
| //@extension("VK_EXT_vertex_attribute_divisor") // 191 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, | |
| VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, | |
| //@extension("VK_NV_device_diagnostic_checkpoints") // 207 | |
| VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, | |
| VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, | |
| //@extension("VK_KHR_vulkan_memory_model") // 212 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, | |
| //@extension("VK_EXT_pci_bus_info") // 213 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, | |
| //@extension("VK_FUCHSIA_imagepipe_surface") // 215 | |
| VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, | |
| //@extension("VK_EXT_fragment_density_map") // 219 | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, | |
| VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, | |
| //@extension("VK_EXT_scalar_block_layout") | |
| VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, | |
| //@extension("VK_EXT_separate_stencil_usage") // 247 | |
| VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000, | |
| } | |
| enum VkSubpassContents { | |
| VK_SUBPASS_CONTENTS_INLINE = 0x00000000, | |
| VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 0x00000001, | |
| } | |
| enum VkPipelineCacheHeaderVersion { | |
| VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, | |
| } | |
| @lastUnused(-11) | |
| /// Error and return codes | |
| enum VkResult { | |
| // Return codes for successful operation execution (positive values) | |
| VK_SUCCESS = 0, | |
| VK_NOT_READY = 1, | |
| VK_TIMEOUT = 2, | |
| VK_EVENT_SET = 3, | |
| VK_EVENT_RESET = 4, | |
| VK_INCOMPLETE = 5, | |
| //@extension("VK_KHR_swapchain") // 2 | |
| VK_SUBOPTIMAL_KHR = 1000001003, | |
| // Error codes (negative values) | |
| VK_ERROR_OUT_OF_HOST_MEMORY = 0xFFFFFFFF, // -1 | |
| VK_ERROR_OUT_OF_DEVICE_MEMORY = 0xFFFFFFFE, // -2 | |
| VK_ERROR_INITIALIZATION_FAILED = 0xFFFFFFFD, // -3 | |
| VK_ERROR_DEVICE_LOST = 0xFFFFFFFC, // -4 | |
| VK_ERROR_MEMORY_MAP_FAILED = 0xFFFFFFFB, // -5 | |
| VK_ERROR_LAYER_NOT_PRESENT = 0xFFFFFFFA, // -6 | |
| VK_ERROR_EXTENSION_NOT_PRESENT = 0xFFFFFFF9, // -7 | |
| VK_ERROR_FEATURE_NOT_PRESENT = 0xFFFFFFF8, // -8 | |
| VK_ERROR_INCOMPATIBLE_DRIVER = 0xFFFFFFF7, // -9 | |
| VK_ERROR_TOO_MANY_OBJECTS = 0xFFFFFFF6, // -10 | |
| VK_ERROR_FORMAT_NOT_SUPPORTED = 0xFFFFFFF5, // -11 | |
| VK_ERROR_FRAGMENTED_POOL = 0xFFFFFFF4, // -12 | |
| //@vulkan1_1 | |
| VK_ERROR_OUT_OF_POOL_MEMORY = 0xC4642878, // -1000069000 | |
| VK_ERROR_INVALID_EXTERNAL_HANDLE = 0xC4641CBD, // -1000072003 | |
| //@extension("VK_KHR_surface") // 1 | |
| VK_ERROR_SURFACE_LOST_KHR = 0xC4653600, // -1000000000 | |
| VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = 0xC46535FF, // -1000000001 | |
| //@extension("VK_KHR_swapchain") // 2 | |
| VK_ERROR_OUT_OF_DATE_KHR = 0xC4653214, // -1000001004 | |
| //@extension("VK_KHR_display_swapchain") // 4 | |
| VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = 0xC4652A47, // -1000003001 | |
| //@extension("VK_EXT_debug_report") // 12 | |
| VK_ERROR_VALIDATION_FAILED_EXT = 0xC4650B07, // -1000011001 | |
| //@extension("VK_NV_glsl_shader") // 13 | |
| VK_ERROR_INVALID_SHADER_NV = 0xC4650720, // -1000012000 | |
| //@extension("VK_KHR_maintenance1") // 70 | |
| VK_ERROR_OUT_OF_POOL_MEMORY_KHR = 0xC4642878, // -1000069000 | |
| //@extension("VK_KHR_external_memory") // 73 | |
| VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = 0xC4641CBD, // -1000072003 | |
| //@extension("VK_EXT_image_drm_format_modifier") // 159 | |
| VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = 0xC462CCD0, // -1000158000 | |
| //@extension("VK_EXT_descriptor_indexing") // 162 | |
| VK_ERROR_FRAGMENTATION_EXT = 0xc462c118, // -1000161000 | |
| //@extension("VK_EXT_global_priority") // 175 | |
| VK_ERROR_NOT_PERMITTED_EXT = 0xC4628E4F, // -1000174001 | |
| } | |
| enum VkDynamicState { | |
| VK_DYNAMIC_STATE_VIEWPORT = 0x00000000, | |
| VK_DYNAMIC_STATE_SCISSOR = 0x00000001, | |
| VK_DYNAMIC_STATE_LINE_WIDTH = 0x00000002, | |
| VK_DYNAMIC_STATE_DEPTH_BIAS = 0x00000003, | |
| VK_DYNAMIC_STATE_BLEND_CONSTANTS = 0x00000004, | |
| VK_DYNAMIC_STATE_DEPTH_BOUNDS = 0x00000005, | |
| VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 0x00000006, | |
| VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 0x00000007, | |
| VK_DYNAMIC_STATE_STENCIL_REFERENCE = 0x00000008, | |
| //@extension("VK_NV_clip_space_w_scaling") // 88 | |
| VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, | |
| //@extension("VK_EXT_discard_rectangles") // 100 | |
| VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, | |
| //@extension("VK_EXT_sample_locations") // 144 | |
| VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, | |
| //@extension("VK_NV_shading_rate_image") // 165 | |
| VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, | |
| VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, | |
| //@extension("VK_NV_scissor_exclusive") // 206 | |
| VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, | |
| } | |
| enum VkObjectType { | |
| VK_OBJECT_TYPE_UNKNOWN = 0, | |
| VK_OBJECT_TYPE_INSTANCE = 1, | |
| VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, | |
| VK_OBJECT_TYPE_DEVICE = 3, | |
| VK_OBJECT_TYPE_QUEUE = 4, | |
| VK_OBJECT_TYPE_SEMAPHORE = 5, | |
| VK_OBJECT_TYPE_COMMAND_BUFFER = 6, | |
| VK_OBJECT_TYPE_FENCE = 7, | |
| VK_OBJECT_TYPE_DEVICE_MEMORY = 8, | |
| VK_OBJECT_TYPE_BUFFER = 9, | |
| VK_OBJECT_TYPE_IMAGE = 10, | |
| VK_OBJECT_TYPE_EVENT = 11, | |
| VK_OBJECT_TYPE_QUERY_POOL = 12, | |
| VK_OBJECT_TYPE_BUFFER_VIEW = 13, | |
| VK_OBJECT_TYPE_IMAGE_VIEW = 14, | |
| VK_OBJECT_TYPE_SHADER_MODULE = 15, | |
| VK_OBJECT_TYPE_PIPELINE_CACHE = 16, | |
| VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, | |
| VK_OBJECT_TYPE_RENDER_PASS = 18, | |
| VK_OBJECT_TYPE_PIPELINE = 19, | |
| VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, | |
| VK_OBJECT_TYPE_SAMPLER = 21, | |
| VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, | |
| VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, | |
| VK_OBJECT_TYPE_FRAMEBUFFER = 24, | |
| VK_OBJECT_TYPE_COMMAND_POOL = 25, | |
| //@vulkan1_1 | |
| VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, | |
| VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, | |
| //@extension("VK_KHR_surface") // 1 | |
| VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, | |
| //@extension("VK_KHR_swapchain") // 2 | |
| VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, | |
| //@extension("VK_KHR_display") // 3 | |
| VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, | |
| VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, | |
| //@extension("VK_KHR_debug_report") // 12 | |
| VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, | |
| //@extension("VK_KHR_descriptor_update_template") // 86 | |
| VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000, | |
| //@extension("VK_NVX_device_generated_commands") // 87 | |
| VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000, | |
| VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, | |
| //@extension("VK_EXT_debug_utils") // 129 | |
| VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, | |
| //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000, | |
| //@extension("VK_EXT_validation_cache") // 161 | |
| VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, | |
| } | |
| //@vulkan1_1 enums | |
| enum VkPointClippingBehavior { | |
| VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, | |
| VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, | |
| } | |
| enum VkTessellationDomainOrigin { | |
| VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0, | |
| VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1, | |
| } | |
| enum VkSamplerYcbcrModelConversion { | |
| VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0, | |
| VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1, | |
| VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2, | |
| VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3, | |
| VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4, | |
| } | |
| enum VkSamplerYcbcrRange { | |
| VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0, | |
| VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1, | |
| } | |
| enum VkChromaLocation { | |
| VK_CHROMA_LOCATION_COSITED_EVEN = 0, | |
| VK_CHROMA_LOCATION_MIDPOINT = 1, | |
| } | |
| enum VkDescriptorUpdateTemplateType { | |
| VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0, | |
| VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, | |
| } | |
| enum VkVendorId { | |
| VK_VENDOR_ID_VIV = 0x10001, | |
| VK_VENDOR_ID_VSI = 0x10002, | |
| VK_VENDOR_ID_KAZAN = 0x10003, | |
| } | |
| @extension("VK_KHR_surface") // 1 | |
| enum VkPresentModeKHR { | |
| VK_PRESENT_MODE_IMMEDIATE_KHR = 0x00000000, | |
| VK_PRESENT_MODE_MAILBOX_KHR = 0x00000001, | |
| VK_PRESENT_MODE_FIFO_KHR = 0x00000002, | |
| VK_PRESENT_MODE_FIFO_RELAXED_KHR = 0x00000003, | |
| //@extension("VK_KHR_shared_presentable_image") // 112 | |
| VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, | |
| VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, | |
| } | |
| @extension("VK_KHR_surface") // 1 | |
| enum VkColorSpaceKHR { | |
| VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0x00000000, | |
| //@extension("VK_EXT_swapchain_colorspace") // 105 | |
| VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, | |
| VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, | |
| VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003, | |
| VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, | |
| VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, | |
| VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, | |
| VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, | |
| VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, | |
| VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, | |
| VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, | |
| VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, | |
| VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, | |
| VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, | |
| VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, | |
| } | |
| @extension("VK_EXT_debug_report") // 12 | |
| enum VkDebugReportObjectTypeEXT { | |
| VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31, | |
| VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32, | |
| //extension("VK_EXT_validation_cache") // 161 | |
| VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33, | |
| //extension("VK_KHR_descriptor_update_template") // 86 | |
| VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000, | |
| //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000, | |
| } | |
| @extension("VK_AMD_rasterization_order") // 19 | |
| enum VkRasterizationOrderAMD { | |
| VK_RASTERIZATION_ORDER_STRICT_AMD = 0, | |
| VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, | |
| } | |
| @extension("VK_AMD_shader_info") // 43 | |
| enum VkShaderInfoTypeAMD { | |
| VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0, | |
| VK_SHADER_INFO_TYPE_BINARY_AMD = 1, | |
| VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2, | |
| } | |
| @extension("VK_EXT_validation_flags") // 62 | |
| enum VkValidationCheckEXT { | |
| VK_VALIDATION_CHECK_ALL_EXT = 0, | |
| VK_VALIDATION_CHECK_SHADERS_EXT = 1, | |
| } | |
| @extension("VK_KHR_descriptor_update_template") // 86 | |
| enum VkDescriptorUpdateTemplateTypeKHR { | |
| VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0, | |
| VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| enum VkIndirectCommandsTokenTypeNVX { | |
| VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0, | |
| VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1, | |
| VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2, | |
| VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3, | |
| VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4, | |
| VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5, | |
| VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6, | |
| VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7, | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| enum VkObjectEntryTypeNVX { | |
| VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0, | |
| VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1, | |
| VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2, | |
| VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3, | |
| VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4, | |
| } | |
| @extension("VK_EXT_display_control") // 92 | |
| enum VkDisplayPowerStateEXT { | |
| VK_DISPLAY_POWER_STATE_OFF_EXT = 0, | |
| VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1, | |
| VK_DISPLAY_POWER_STATE_ON_EXT = 2, | |
| } | |
| @extension("VK_EXT_display_control") // 92 | |
| enum VkDeviceEventTypeEXT { | |
| VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, | |
| } | |
| @extension("VK_EXT_display_control") // 92 | |
| enum VkDisplayEventTypeEXT { | |
| VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0, | |
| } | |
| @extension("VK_NV_viewport_swizzle") // 99 | |
| enum VkViewportCoordinateSwizzleNV { | |
| VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0, | |
| VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1, | |
| VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2, | |
| VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3, | |
| VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4, | |
| VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5, | |
| VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6, | |
| VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7, | |
| } | |
| @extension("VK_EXT_discard_rectangles") // 100 | |
| enum VkDiscardRectangleModeEXT { | |
| VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, | |
| VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, | |
| } | |
| @extension("VK_EXT_conservative_rasterization") // 102 | |
| enum VkConservativeRasterizationModeEXT { | |
| VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, | |
| VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, | |
| VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2, | |
| } | |
| @extension("VK_KHR_maintenance2") // 118 | |
| enum VkPointClippingBehaviorKHR { | |
| VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0, | |
| VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1, | |
| } | |
| @extension("VK_KHR_maintenance2") // 118 | |
| enum VkTessellationDomainOriginKHR { | |
| VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0, | |
| VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1, | |
| } | |
| @extension("VK_EXT_sampler_filter_minmax") // 131 | |
| enum VkSamplerReductionModeEXT { | |
| VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0, | |
| VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1, | |
| VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2, | |
| } | |
| @extension("VK_EXT_blend_operation_advanced") // 149 | |
| enum VkBlendOverlapEXT { | |
| VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, | |
| VK_BLEND_OVERLAP_DISJOINT_EXT = 1, | |
| VK_BLEND_OVERLAP_CONJOINT_EXT = 2, | |
| } | |
| @extension("VK_NV_framebuffer_mixed_samples") // 153 | |
| enum VkCoverageModulationModeNV { | |
| VK_COVERAGE_MODULATION_MODE_NONE_NV = 0, | |
| VK_COVERAGE_MODULATION_MODE_RGB_NV = 1, | |
| VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2, | |
| VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3, | |
| } | |
| @extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| enum VkSamplerYcbcrModelConversionKHR { | |
| VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0, | |
| VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1, | |
| VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2, | |
| VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3, | |
| VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4, | |
| } | |
| @extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| enum VkSamplerYcbcrRangeKHR { | |
| VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0, | |
| VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1, | |
| } | |
| @extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| enum VkChromaLocationKHR { | |
| VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0, | |
| VK_CHROMA_LOCATION_MIDPOINT_KHR = 1, | |
| } | |
| @extension("VK_EXT_validation_cache") // 161 | |
| enum VkValidationCacheHeaderVersionEXT { | |
| VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| enum VkShadingRatePaletteEntryNV { | |
| VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0, | |
| VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1, | |
| VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2, | |
| VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3, | |
| VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4, | |
| VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5, | |
| VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6, | |
| VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7, | |
| VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8, | |
| VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9, | |
| VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10, | |
| VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11, | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| enum VkCoarseSampleOrderTypeNV { | |
| VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0, | |
| VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1, | |
| VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2, | |
| VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3, | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| enum VkRayTracingShaderGroupTypeNV { | |
| VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0, | |
| VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1, | |
| VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2, | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| enum VkGeometryTypeNV { | |
| VK_GEOMETRY_TYPE_TRIANGLES_NV = 0, | |
| VK_GEOMETRY_TYPE_AABBS_NV = 1, | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| enum VkAccelerationStructureTypeNV { | |
| VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0, | |
| VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1, | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| enum VkCopyAccelerationStructureModeNV { | |
| VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0, | |
| VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1, | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| enum VkAccelerationStructureMemoryRequirementsTypeNV { | |
| VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0, | |
| VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1, | |
| VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2, | |
| } | |
| @extension("VK_EXT_global_priority") // 175 | |
| enum VkQueueGlobalPriorityEXT { | |
| VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128, | |
| VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256, | |
| VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512, | |
| VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024, | |
| } | |
| @extension("VK_EXT_calibrated_timestamps") // 185 | |
| enum VkTimeDomainEXT { | |
| VK_TIME_DOMAIN_DEVICE_EXT = 0, | |
| VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1, | |
| VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2, | |
| VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3, | |
| } | |
| @extension("VK_AMD_memory_overallocation_behavior") // 190 | |
| enum VkMemoryOverallocationBehaviorAMD { | |
| VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0, | |
| VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1, | |
| VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2, | |
| } | |
| @extension("VK_KHR_driver_properties") // 197 | |
| enum VkDriverIdKHR { | |
| VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1, | |
| VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2, | |
| VK_DRIVER_ID_MESA_RADV_KHR = 3, | |
| VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4, | |
| VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5, | |
| VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6, | |
| VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7, | |
| VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8, | |
| VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9, | |
| VK_DRIVER_ID_GOOGLE_PASTEL_KHR = 10, | |
| } | |
| ///////////////// | |
| // Bitfields // | |
| ///////////////// | |
| /// Queue capabilities | |
| type VkFlags VkQueueFlags | |
| bitfield VkQueueFlagBits { | |
| VK_QUEUE_GRAPHICS_BIT = 0x00000001, /// Queue supports graphics operations | |
| VK_QUEUE_COMPUTE_BIT = 0x00000002, /// Queue supports compute operations | |
| VK_QUEUE_TRANSFER_BIT = 0x00000004, /// Queue supports transfer operations | |
| VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, /// Queue supports sparse resource memory management operations | |
| //@vulkan1_1 | |
| VK_QUEUE_PROTECTED_BIT = 0x00000010, | |
| } | |
| /// Memory properties passed into vkAllocMemory(). | |
| type VkFlags VkMemoryPropertyFlags | |
| bitfield VkMemoryPropertyFlagBits { | |
| VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, | |
| VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, | |
| VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004, | |
| VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, | |
| VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, | |
| //@vulkan1_1 | |
| VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, | |
| } | |
| /// Memory heap flags | |
| type VkFlags VkMemoryHeapFlags | |
| bitfield VkMemoryHeapFlagBits { | |
| VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, | |
| //@vulkan1_1 | |
| VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, | |
| //@extension("VK_KHR_device_group_creation") // 71 | |
| VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = 0x00000002, | |
| } | |
| /// Access flags | |
| type VkFlags VkAccessFlags | |
| bitfield VkAccessFlagBits { | |
| VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, | |
| VK_ACCESS_INDEX_READ_BIT = 0x00000002, | |
| VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, | |
| VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, | |
| VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, | |
| VK_ACCESS_SHADER_READ_BIT = 0x00000020, | |
| VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, | |
| VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, | |
| VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, | |
| VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, | |
| VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, | |
| VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, | |
| VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, | |
| VK_ACCESS_HOST_READ_BIT = 0x00002000, | |
| VK_ACCESS_HOST_WRITE_BIT = 0x00004000, | |
| VK_ACCESS_MEMORY_READ_BIT = 0x00008000, | |
| VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, | |
| //@extension("VK_NVX_device_generated_commands") // 87 | |
| VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, | |
| VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, | |
| //@extension("VK_EXT_blend_operation_advanced") // 149 | |
| VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, | |
| //@extension("VK_EXT_conditional_rendering") // 82 | |
| VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, | |
| //@extension("VK_NV_shading_rate_image") // 165 | |
| VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000, | |
| VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000, | |
| //@extension("VK_EXT_fragment_density_map") // 219 | |
| VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, | |
| //@extension("VK_EXT_transform_feedback") // 29 | |
| VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, | |
| VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, | |
| VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, | |
| } | |
| /// Buffer usage flags | |
| type VkFlags VkBufferUsageFlags | |
| bitfield VkBufferUsageFlagBits { | |
| VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations | |
| VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations | |
| VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, /// Can be used as TBO | |
| VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, /// Can be used as IBO | |
| VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, /// Can be used as UBO | |
| VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, /// Can be used as SSBO | |
| VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, /// Can be used as source of fixed function index fetch (index buffer) | |
| VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, /// Can be used as source of fixed function vertex fetch (VBO) | |
| VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, /// Can be the source of indirect parameters (e.g. indirect buffer, parameter buffer) | |
| //@extension("VK_EXT_conditional_rendering") // 82 | |
| VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400, | |
| //@extension("VK_EXT_transform_feedback") // 29 | |
| VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, | |
| VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, | |
| } | |
| /// Buffer creation flags | |
| type VkFlags VkBufferCreateFlags | |
| bitfield VkBufferCreateFlagBits { | |
| VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Buffer should support sparse backing | |
| VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Buffer should support sparse backing with partial residency | |
| VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, /// Buffer should support constent data access to physical memory blocks mapped into multiple locations of sparse buffers | |
| //@vulkan1_1 | |
| VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, | |
| } | |
| /// Shader stage flags | |
| type VkFlags VkShaderStageFlags | |
| bitfield VkShaderStageFlagBits { | |
| VK_SHADER_STAGE_VERTEX_BIT = 0x00000001, | |
| VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, | |
| VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, | |
| VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, | |
| VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, | |
| VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, | |
| VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, | |
| VK_SHADER_STAGE_ALL = 0x7FFFFFFF, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100, | |
| VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200, | |
| VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400, | |
| VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800, | |
| VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000, | |
| VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000, | |
| //@extension("VK_NV_mesh_shader") // 203 | |
| VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040, | |
| VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080, | |
| } | |
| /// Descriptor pool create flags | |
| type VkFlags VkDescriptorPoolCreateFlags | |
| bitfield VkDescriptorPoolCreateFlagBits { | |
| VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, | |
| //@extension("VK_EXT_descriptor_indexing") // 162 | |
| VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002, | |
| } | |
| /// Descriptor pool reset flags | |
| type VkFlags VkDescriptorPoolResetFlags | |
| //bitfield VkDescriptorPoolResetFlagBits { | |
| //} | |
| /// Image usage flags | |
| type VkFlags VkImageUsageFlags | |
| bitfield VkImageUsageFlagBits { | |
| VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, /// Can be used as a source of transfer operations | |
| VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, /// Can be used as a destination of transfer operations | |
| VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, /// Can be sampled from (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types) | |
| VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, /// Can be used as storage image (STORAGE_IMAGE descriptor type) | |
| VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, /// Can be used as framebuffer color attachment | |
| VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, /// Can be used as framebuffer depth/stencil attachment | |
| VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, /// Image data not needed outside of rendering | |
| VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, /// Can be used as framebuffer input attachment | |
| //@extension("VK_NV_shading_rate_image") // 165 | |
| VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, | |
| //@extension("VK_EXT_fragment_density_map") // 219 | |
| VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, | |
| } | |
| /// Image creation flags | |
| type VkFlags VkImageCreateFlags | |
| bitfield VkImageCreateFlagBits { | |
| VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, /// Image should support sparse backing | |
| VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, /// Image should support sparse backing with partial residency | |
| VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, /// Image should support constent data access to physical memory blocks mapped into multiple locations of sparse images | |
| VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, /// Allows image views to have different format than the base image | |
| VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, /// Allows creating image views with cube type from the created image | |
| //@vulkan1_1 | |
| VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020, | |
| VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040, | |
| VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080, | |
| VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, | |
| VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, | |
| VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400, | |
| VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, | |
| //@extension("VK_KHR_maintenance1") // 70 | |
| VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020, | |
| //@extension("VK_KHR_device_group") // 61 | |
| VK_IMAGE_CREATE_BIND_SFR_BIT_KHR = 0x00000040, | |
| //@extension("VK_KHR_maintenance2") // 118 | |
| VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080, | |
| VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100, | |
| //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200, | |
| //@extension("VK_KHR_bind_memory2") // 158 | |
| VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400, | |
| //@extension("VK_EXT_sample_locations") // 144 | |
| VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, | |
| //@extension("VK_NV_corner_sampled_image") // 51 | |
| VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, | |
| //@extension("VK_EXT_fragment_density_map") // 219 | |
| VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, | |
| } | |
| /// Image view creation flags | |
| type VkFlags VkImageViewCreateFlags | |
| bitfield VkImageViewCreateFlagBits { | |
| //@extension("VK_EXT_fragment_density_map") // 219 | |
| VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, | |
| } | |
| /// Pipeline creation flags | |
| type VkFlags VkPipelineCreateFlags | |
| bitfield VkPipelineCreateFlagBits { | |
| VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, | |
| VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, | |
| VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, | |
| //@vulkan1_1 | |
| VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, | |
| VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010, | |
| //@extension("VK_KHR_device_group") // 61 | |
| VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008, | |
| VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = 0x00000010, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, | |
| } | |
| /// Color component flags | |
| type VkFlags VkColorComponentFlags | |
| bitfield VkColorComponentFlagBits { | |
| VK_COLOR_COMPONENT_R_BIT = 0x00000001, | |
| VK_COLOR_COMPONENT_G_BIT = 0x00000002, | |
| VK_COLOR_COMPONENT_B_BIT = 0x00000004, | |
| VK_COLOR_COMPONENT_A_BIT = 0x00000008, | |
| } | |
| /// Fence creation flags | |
| type VkFlags VkFenceCreateFlags | |
| bitfield VkFenceCreateFlagBits { | |
| VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001, | |
| } | |
| /// Semaphore creation flags | |
| type VkFlags VkSemaphoreCreateFlags | |
| //bitfield VkSemaphoreCreateFlagBits { | |
| //} | |
| /// Format capability flags | |
| type VkFlags VkFormatFeatureFlags | |
| bitfield VkFormatFeatureFlagBits { | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, /// Format can be used for sampled images (SAMPLED_IMAGE and COMBINED_IMAGE_SAMPLER descriptor types) | |
| VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, /// Format can be used for storage images (STORAGE_IMAGE descriptor type) | |
| VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, /// Format supports atomic operations in case it's used for storage images | |
| VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, /// Format can be used for uniform texel buffers (TBOs) | |
| VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, /// Format can be used for storage texel buffers (IBOs) | |
| VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, /// Format supports atomic operations in case it's used for storage texel buffers | |
| VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, /// Format can be used for vertex buffers (VBOs) | |
| VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, /// Format can be used for color attachment images | |
| VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, /// Format supports blending in case it's used for color attachment images | |
| VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, /// Format can be used for depth/stencil attachment images | |
| VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, /// Format can be used as the source image of blits with vkCommandBlitImage | |
| VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, /// Format can be used as the destination image of blits with vkCommandBlitImage | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, | |
| //@vulkan1_1 | |
| VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000, | |
| VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000, | |
| VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000, | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000, | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000, | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000, | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, | |
| VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, | |
| VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, | |
| //@extension("VK_IMG_filter_cubic") // 16 | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, | |
| //@extension("VK_KHR_maintenance1") // 70 | |
| VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000, | |
| VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000, | |
| //@extension("VK_EXT_sampler_filter_minmax") // 131 | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, | |
| //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000, | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000, | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000, | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000, | |
| VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000, | |
| VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000, | |
| VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000, | |
| } | |
| /// Query control flags | |
| type VkFlags VkQueryControlFlags | |
| bitfield VkQueryControlFlagBits { | |
| VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001, | |
| } | |
| /// Query result flags | |
| type VkFlags VkQueryResultFlags | |
| bitfield VkQueryResultFlagBits { | |
| VK_QUERY_RESULT_64_BIT = 0x00000001, /// Results of the queries are written to the destination buffer as 64-bit values | |
| VK_QUERY_RESULT_WAIT_BIT = 0x00000002, /// Results of the queries are waited on before proceeding with the result copy | |
| VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, /// Besides the results of the query, the availability of the results is also written | |
| VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, /// Copy the partial results of the query even if the final results aren't available | |
| } | |
| /// Shader module creation flags | |
| type VkFlags VkShaderModuleCreateFlags | |
| //bitfield VkShaderModuleCreateFlagBits { | |
| //} | |
| /// Event creation flags | |
| type VkFlags VkEventCreateFlags | |
| //bitfield VkEventCreateFlagBits { | |
| //} | |
| /// Command buffer usage flags | |
| type VkFlags VkCommandBufferUsageFlags | |
| bitfield VkCommandBufferUsageFlagBits { | |
| VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, | |
| VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, | |
| VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, | |
| } | |
| /// Pipeline statistics flags | |
| type VkFlags VkQueryPipelineStatisticFlags | |
| bitfield VkQueryPipelineStatisticFlagBits { | |
| VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, /// Optional | |
| VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, /// Optional | |
| VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, /// Optional | |
| VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, /// Optional | |
| VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, /// Optional | |
| VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, /// Optional | |
| VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, /// Optional | |
| VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, /// Optional | |
| VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, /// Optional | |
| VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, /// Optional | |
| VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, /// Optional | |
| } | |
| /// Memory mapping flags | |
| type VkFlags VkMemoryMapFlags | |
| //bitfield VkMemoryMapFlagBits { | |
| //} | |
| /// Bitfield of image aspects | |
| type VkFlags VkImageAspectFlags | |
| bitfield VkImageAspectFlagBits { | |
| VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, | |
| VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, | |
| VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, | |
| VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, | |
| //@vulkan1_1 | |
| VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, | |
| VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, | |
| VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, | |
| //@extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010, | |
| VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020, | |
| VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040, | |
| //@extension("VK_EXT_transform_feedback") // 29 | |
| VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, | |
| VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, | |
| VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, | |
| VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, | |
| } | |
| /// Sparse memory bind flags | |
| type VkFlags VkSparseMemoryBindFlags | |
| bitfield VkSparseMemoryBindFlagBits { | |
| VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, | |
| } | |
| /// Sparse image memory requirements flags | |
| type VkFlags VkSparseImageFormatFlags | |
| bitfield VkSparseImageFormatFlagBits { | |
| VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, /// Image uses a single miptail region for all array slices | |
| 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. | |
| VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, /// Image uses a non-standard sparse block size | |
| } | |
| /// Pipeline stages | |
| type VkFlags VkPipelineStageFlags | |
| bitfield VkPipelineStageFlagBits { | |
| VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, /// Before subsequent commands are processed | |
| VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, /// Draw/DispatchIndirect command fetch | |
| VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, /// Vertex/index fetch | |
| VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, /// Vertex shading | |
| VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, /// Tessellation control shading | |
| VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, /// Tessellation evaluation shading | |
| VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, /// Geometry shading | |
| VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, /// Fragment shading | |
| VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, /// Early fragment (depth/stencil) tests | |
| VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, /// Late fragment (depth/stencil) tests | |
| VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, /// Color attachment writes | |
| VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, /// Compute shading | |
| VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, /// Transfer/copy operations | |
| VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, | |
| VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, /// Indicates host (CPU) is a source/sink of the dependency | |
| VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, /// All stages of the graphics pipeline | |
| VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, /// All graphics, compute, copy, and transition commands | |
| //@extension("VK_NVX_device_generated_commands") // 87 | |
| VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, | |
| //@extension("VK_EXT_conditional_rendering") // 82 | |
| VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, | |
| //@extension("VK_NV_mesh_shader") // 203 | |
| VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, | |
| VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_PIPELINE_STAGE_RAY_TRACING_BIT_NV = 0x00200000, | |
| //@extension("VK_NV_shading_rate_image") // 165 | |
| VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, | |
| //@extension("VK_EXT_fragment_density_map") // 219 | |
| VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, | |
| //@extension("VK_EXT_transform_feedback") // 29 | |
| VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, | |
| //@extension("VK_NV_ray_tracing") // 166 | |
| VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000, | |
| } | |
| /// Render pass attachment description flags | |
| type VkFlags VkAttachmentDescriptionFlags | |
| bitfield VkAttachmentDescriptionFlagBits { | |
| VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, /// The attachment may alias physical memory of another attachment in the same renderpass | |
| } | |
| /// Subpass description flags | |
| type VkFlags VkSubpassDescriptionFlags | |
| bitfield VkSubpassDescriptionFlagBits { | |
| //@extension("VK_NVX_multiview_per_view_attributes") // 98 | |
| VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, | |
| VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, | |
| } | |
| /// Command pool creation flags | |
| type VkFlags VkCommandPoolCreateFlags | |
| bitfield VkCommandPoolCreateFlagBits { | |
| VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, /// Command buffers have a short lifetime | |
| VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, /// Command buffers may release their memory individually | |
| //@vulkan1_1 | |
| VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004, | |
| } | |
| /// Command pool reset flags | |
| type VkFlags VkCommandPoolResetFlags | |
| bitfield VkCommandPoolResetFlagBits { | |
| VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the pool | |
| } | |
| type VkFlags VkCommandBufferResetFlags | |
| bitfield VkCommandBufferResetFlagBits { | |
| VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, /// Release resources owned by the buffer | |
| } | |
| type VkFlags VkSampleCountFlags | |
| bitfield VkSampleCountFlagBits { | |
| VK_SAMPLE_COUNT_1_BIT = 0x00000001, | |
| VK_SAMPLE_COUNT_2_BIT = 0x00000002, | |
| VK_SAMPLE_COUNT_4_BIT = 0x00000004, | |
| VK_SAMPLE_COUNT_8_BIT = 0x00000008, | |
| VK_SAMPLE_COUNT_16_BIT = 0x00000010, | |
| VK_SAMPLE_COUNT_32_BIT = 0x00000020, | |
| VK_SAMPLE_COUNT_64_BIT = 0x00000040, | |
| } | |
| type VkFlags VkStencilFaceFlags | |
| bitfield VkStencilFaceFlagBits { | |
| VK_STENCIL_FACE_FRONT_BIT = 0x00000001, /// Front face | |
| VK_STENCIL_FACE_BACK_BIT = 0x00000002, /// Back face | |
| VK_STENCIL_FRONT_AND_BACK = 0x00000003, | |
| } | |
| /// Instance creation flags | |
| type VkFlags VkInstanceCreateFlags | |
| //bitfield VkInstanceCreateFlagBits { | |
| //} | |
| /// Device creation flags | |
| type VkFlags VkDeviceCreateFlags | |
| //bitfield VkDeviceCreateFlagBits { | |
| //} | |
| /// Device queue creation flags | |
| type VkFlags VkDeviceQueueCreateFlags | |
| @vulkan1_1 | |
| bitfield VkDeviceQueueCreateFlagBits { | |
| VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001, | |
| } | |
| /// Query pool creation flags | |
| type VkFlags VkQueryPoolCreateFlags | |
| //bitfield VkQueryPoolCreateFlagBits { | |
| //} | |
| /// Buffer view creation flags | |
| type VkFlags VkBufferViewCreateFlags | |
| //bitfield VkBufferViewCreateFlagBits { | |
| //} | |
| /// Pipeline cache creation flags | |
| type VkFlags VkPipelineCacheCreateFlags | |
| //bitfield VkPipelineCacheCreateFlagBits { | |
| //} | |
| /// Pipeline shader stage creation flags | |
| type VkFlags VkPipelineShaderStageCreateFlags | |
| //bitfield VkPipelineShaderStageCreateFlagBits { | |
| //} | |
| /// Descriptor set layout creation flags | |
| type VkFlags VkDescriptorSetLayoutCreateFlags | |
| bitfield VkDescriptorSetLayoutCreateFlagBits { | |
| //@extension("VK_KHR_push_descriptor") // 81 | |
| VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, | |
| //@extension("VK_EXT_descriptor_indexing") // 162 | |
| VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002, | |
| } | |
| /// Pipeline vertex input state creation flags | |
| type VkFlags VkPipelineVertexInputStateCreateFlags | |
| //bitfield VkPipelineVertexInputStateCreateFlagBits { | |
| //} | |
| /// Pipeline input assembly state creation flags | |
| type VkFlags VkPipelineInputAssemblyStateCreateFlags | |
| //bitfield VkPipelineInputAssemblyStateCreateFlagBits { | |
| //} | |
| /// Tessellation state creation flags | |
| type VkFlags VkPipelineTessellationStateCreateFlags | |
| //bitfield VkPipelineTessellationStateCreateFlagBits { | |
| //} | |
| /// Viewport state creation flags | |
| type VkFlags VkPipelineViewportStateCreateFlags | |
| //bitfield VkPipelineViewportStateCreateFlagBits { | |
| //} | |
| /// Rasterization state creation flags | |
| type VkFlags VkPipelineRasterizationStateCreateFlags | |
| //bitfield VkPipelineRasterizationStateCreateFlagBits { | |
| //} | |
| /// Multisample state creation flags | |
| type VkFlags VkPipelineMultisampleStateCreateFlags | |
| //bitfield VkPipelineMultisampleStateCreateFlagBits { | |
| //} | |
| /// Color blend state creation flags | |
| type VkFlags VkPipelineColorBlendStateCreateFlags | |
| //bitfield VkPipelineColorBlendStateCreateFlagBits { | |
| //} | |
| /// Depth/stencil state creation flags | |
| type VkFlags VkPipelineDepthStencilStateCreateFlags | |
| //bitfield VkPipelineDepthStencilStateCreateFlagBits { | |
| //} | |
| /// Dynamic state creation flags | |
| type VkFlags VkPipelineDynamicStateCreateFlags | |
| //bitfield VkPipelineDynamicStateCreateFlagBits { | |
| //} | |
| /// Pipeline layout creation flags | |
| type VkFlags VkPipelineLayoutCreateFlags | |
| //bitfield VkPipelineLayoutCreateFlagBits { | |
| //} | |
| /// Sampler creation flags | |
| type VkFlags VkSamplerCreateFlags | |
| bitfield VkSamplerCreateFlagBits { | |
| //@extension("VK_EXT_fragment_density_map") // 219 | |
| VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001, | |
| VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002, | |
| } | |
| /// Render pass creation flags | |
| type VkFlags VkRenderPassCreateFlags | |
| //bitfield VkRenderPassCreateFlagBits { | |
| //} | |
| /// Framebuffer creation flags | |
| type VkFlags VkFramebufferCreateFlags | |
| //bitfield VkFramebufferCreateFlagBits { | |
| //} | |
| /// Dependency flags | |
| type VkFlags VkDependencyFlags | |
| bitfield VkDependencyFlagBits { | |
| VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, | |
| //@vulkan1_1 | |
| VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, | |
| VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, | |
| //@extension("VK_KHR_multiview") // 54 | |
| VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = 0x00000002, | |
| //@extension("VK_KHR_device_group") // 61 | |
| VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = 0x00000004, | |
| } | |
| /// Cull mode flags | |
| type VkFlags VkCullModeFlags | |
| bitfield VkCullModeFlagBits { | |
| VK_CULL_MODE_NONE = 0x00000000, | |
| VK_CULL_MODE_FRONT_BIT = 0x00000001, | |
| VK_CULL_MODE_BACK_BIT = 0x00000002, | |
| VK_CULL_MODE_FRONT_AND_BACK = 0x00000003, | |
| } | |
| //@vulkan1_1 flags | |
| /// Subgroup feature flags | |
| type VkFlags VkSubgroupFeatureFlags | |
| bitfield VkSubgroupFeatureFlagBits { | |
| VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001, | |
| VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002, | |
| VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004, | |
| VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008, | |
| VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010, | |
| VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020, | |
| VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040, | |
| VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080, | |
| //@extension("VK_NV_shader_subgroup_partitioned") // 199 | |
| VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100, | |
| } | |
| /// Peer memory feature flags | |
| type VkFlags VkPeerMemoryFeatureFlags | |
| bitfield VkPeerMemoryFeatureFlagBits { | |
| VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001, | |
| VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002, | |
| VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004, | |
| VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008, | |
| } | |
| /// Memory allocation flags | |
| type VkFlags VkMemoryAllocateFlags | |
| bitfield VkMemoryAllocateFlagBits { | |
| VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001, | |
| } | |
| type VkFlags VkCommandPoolTrimFlags | |
| //bitfield VkCommandPoolTrimFlagBits { | |
| //} | |
| type VkFlags VkDescriptorUpdateTemplateCreateFlags | |
| //bitfield VkDescriptorUpdateTemplateCreateFlagBits { | |
| //} | |
| /// External memory handle type flags | |
| type VkFlags VkExternalMemoryHandleTypeFlags | |
| bitfield VkExternalMemoryHandleTypeFlagBits { | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040, | |
| //@extension("VK_EXT_external_memory_host") // 179 | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, | |
| //@extension("VK_EXT_external_memory_dma_buf") // 126 | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200, | |
| //@extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400, | |
| } | |
| /// External memory feature flags | |
| type VkFlags VkExternalMemoryFeatureFlags | |
| bitfield VkExternalMemoryFeatureFlagBits { | |
| VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001, | |
| VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002, | |
| VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004, | |
| } | |
| /// External fence handle type flags | |
| type VkFlags VkExternalFenceHandleTypeFlags | |
| bitfield VkExternalFenceHandleTypeFlagBits { | |
| VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, | |
| VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, | |
| VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, | |
| VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008, | |
| } | |
| /// External fence feature flags | |
| type VkFlags VkExternalFenceFeatureFlags | |
| bitfield VkExternalFenceFeatureFlagBits { | |
| VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001, | |
| VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002, | |
| } | |
| /// Fence import flags | |
| type VkFlags VkFenceImportFlags | |
| bitfield VkFenceImportFlagBits { | |
| VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001, | |
| } | |
| /// Semaphore import flags | |
| type VkFlags VkSemaphoreImportFlags | |
| bitfield VkSemaphoreImportFlagBits { | |
| VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001, | |
| } | |
| /// External semaphore handle type flags | |
| type VkFlags VkExternalSemaphoreHandleTypeFlags | |
| bitfield VkExternalSemaphoreHandleTypeFlagBits { | |
| VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, | |
| VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, | |
| VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, | |
| VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008, | |
| VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, | |
| } | |
| /// External semaphore feature flags | |
| type VkFlags VkExternalSemaphoreFeatureFlags | |
| bitfield VkExternalSemaphoreFeatureFlagBits { | |
| VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001, | |
| VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002, | |
| } | |
| @extension("VK_KHR_surface") // 1 | |
| type VkFlags VkSurfaceTransformFlagsKHR | |
| @extension("VK_KHR_surface") // 1 | |
| bitfield VkSurfaceTransformFlagBitsKHR { | |
| VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, | |
| VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, | |
| VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, | |
| VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, | |
| VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, | |
| VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, | |
| VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, | |
| VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, | |
| VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, | |
| } | |
| @extension("VK_KHR_surface") // 1 | |
| type VkFlags VkCompositeAlphaFlagsKHR | |
| @extension("VK_KHR_surface") // 1 | |
| bitfield VkCompositeAlphaFlagBitsKHR { | |
| VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, | |
| VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, | |
| VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, | |
| VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, | |
| } | |
| @extension("VK_KHR_swapchain") // 2 | |
| type VkFlags VkSwapchainCreateFlagsKHR | |
| @extension("VK_KHR_swapchain") // 2 | |
| bitfield VkSwapchainCreateFlagBitsKHR { | |
| //@vulkan1_1 | |
| VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, | |
| VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, | |
| //@extension("VK_KHR_swapchain_mutable_format") // 201 | |
| VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, | |
| } | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| type VkFlags VkDeviceGroupPresentModeFlagsKHR | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| bitfield VkDeviceGroupPresentModeFlagBitsKHR { | |
| VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001, | |
| VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002, | |
| VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004, | |
| VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008, | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| type VkFlags VkDisplayPlaneAlphaFlagsKHR | |
| @extension("VK_KHR_display") // 3 | |
| bitfield VkDisplayPlaneAlphaFlagBitsKHR { | |
| VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, | |
| VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, | |
| VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004, | |
| VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008, | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| type VkFlags VkDisplaySurfaceCreateFlagsKHR | |
| //@extension("VK_KHR_display") // 3 | |
| //bitfield VkDisplaySurfaceCreateFlagBitsKHR { | |
| //} | |
| @extension("VK_KHR_display") // 3 | |
| type VkFlags VkDisplayModeCreateFlagsKHR | |
| //@extension("VK_KHR_display") // 3 | |
| //bitfield VkDisplayModeCreateFlagBitsKHR { | |
| //} | |
| @extension("VK_KHR_xlib_surface") // 5 | |
| type VkFlags VkXlibSurfaceCreateFlagsKHR | |
| //@extension("VK_KHR_xlib_surface") // 5 | |
| //bitfield VkXlibSurfaceCreateFlagBitsKHR { | |
| //} | |
| @extension("VK_KHR_xcb_surface") // 6 | |
| type VkFlags VkXcbSurfaceCreateFlagsKHR | |
| //@extension("VK_KHR_xcb_surface") // 6 | |
| //bitfield VkXcbSurfaceCreateFlagBitsKHR { | |
| //} | |
| @extension("VK_KHR_wayland_surface") // 7 | |
| type VkFlags VkWaylandSurfaceCreateFlagsKHR | |
| //@extension("VK_KHR_wayland_surface") // 7 | |
| //bitfield VkWaylandSurfaceCreateFlagBitsKHR { | |
| //} | |
| @extension("VK_KHR_android_surface") // 9 | |
| type VkFlags VkAndroidSurfaceCreateFlagsKHR | |
| //@extension("VK_KHR_android_surface") // 9 | |
| //bitfield VkAndroidSurfaceCreateFlagBitsKHR { | |
| //} | |
| @extension("VK_KHR_win32_surface") // 10 | |
| type VkFlags VkWin32SurfaceCreateFlagsKHR | |
| //@extension("VK_KHR_win32_surface") // 10 | |
| //bitfield VkWin32SurfaceCreateFlagBitsKHR { | |
| //} | |
| @extension("VK_ANDROID_native_buffer") // 11 | |
| type VkFlags VkSwapchainImageUsageFlagsANDROID | |
| @extension("VK_ANDROID_native_buffer") // 11 | |
| bitfield VkSwapchainImageUsageFlagBitsANDROID { | |
| VK_SWAPCHAIN_IMAGE_USAGE_FLAGS_SHARED_BIT_ANDROID = 0x00000001, | |
| } | |
| @extension("VK_EXT_debug_report") // 12 | |
| type VkFlags VkDebugReportFlagsEXT | |
| @extension("VK_EXT_debug_report") // 12 | |
| bitfield VkDebugReportFlagBitsEXT { | |
| VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, | |
| VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002, | |
| VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004, | |
| VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008, | |
| VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010, | |
| } | |
| @extension("VK_EXT_transform_feedback") // 29 | |
| type VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT | |
| //@extension("VK_EXT_transform_feedback") // 29 | |
| //bitfield VkPipelineRasterizationStateStreamCreateFlagBitsEXT { | |
| //} | |
| @extension("VK_NV_external_memory_capabilities") // 56 | |
| type VkFlags VkExternalMemoryHandleTypeFlagsNV | |
| @extension("VK_NV_external_memory_capabilities") // 56 | |
| bitfield VkExternalMemoryHandleTypeFlagBitsNV { | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008, | |
| } | |
| @extension("VK_NV_external_memory_capabilities") // 56 | |
| type VkFlags VkExternalMemoryFeatureFlagsNV | |
| @extension("VK_NV_external_memory_capabilities") // 56 | |
| bitfield VkExternalMemoryFeatureFlagBitsNV { | |
| VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001, | |
| VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002, | |
| VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004, | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| type VkFlags VkPeerMemoryFeatureFlagsKHR | |
| @extension("VK_KHR_device_group") // 61 | |
| bitfield VkPeerMemoryFeatureFlagBitsKHR { | |
| VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = 0x00000001, | |
| VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = 0x00000002, | |
| VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = 0x00000004, | |
| VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = 0x00000008, | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| type VkFlags VkMemoryAllocateFlagsKHR | |
| @extension("VK_KHR_device_group") // 61 | |
| bitfield VkMemoryAllocateFlagBitsKHR { | |
| VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = 0x00000001, | |
| } | |
| @extension("VK_NN_vi_surface") // 63 | |
| type VkFlags VkViSurfaceCreateFlagsNN | |
| //@extension("VK_NN_vi_surface") // 63 | |
| //bitfield VkViSurfaceCreateFlagBitsNN { | |
| //} | |
| @extension("VK_KHR_maintenance1") // 70 | |
| type VkFlags VkCommandPoolTrimFlagsKHR | |
| //@extension("VK_KHR_maintenance1") // 70 | |
| //bitfield VkCommandPoolTrimFlagBitsKHR { | |
| //} | |
| @extension("VK_KHR_external_memory_capabilities") // 72 | |
| type VkFlags VkExternalMemoryHandleTypeFlagsKHR | |
| @extension("VK_KHR_external_memory_capabilities") // 72 | |
| bitfield VkExternalMemoryHandleTypeFlagBitsKHR { | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020, | |
| VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040, | |
| } | |
| @extension("VK_KHR_external_memory_capabilities") // 72 | |
| type VkFlags VkExternalMemoryFeatureFlagsKHR | |
| @extension("VK_KHR_external_memory_capabilities") // 72 | |
| bitfield VkExternalMemoryFeatureFlagBitsKHR { | |
| VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001, | |
| VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002, | |
| VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004, | |
| } | |
| @extension("VK_KHR_external_semaphore_capabilities") // 77 | |
| type VkFlags VkExternalSemaphoreHandleTypeFlagsKHR | |
| @extension("VK_KHR_external_semaphore_capabilities") // 77 | |
| bitfield VkExternalSemaphoreHandleTypeFlagBitsKHR { | |
| VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001 | |
| VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002 | |
| VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004 | |
| VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008 | |
| VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FENCE_FD_BIT_KHR = 0x00000010 | |
| } | |
| @extension("VK_KHR_external_semaphore_capabilities") // 77 | |
| type VkFlags VkExternalSemaphoreFeatureFlagsKHR | |
| @extension("VK_KHR_external_semaphore_capabilities") // 77 | |
| bitfield VkExternalSemaphoreFeatureFlagBitsKHR { | |
| VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001, | |
| VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002, | |
| } | |
| @extension("VK_KHR_external_semaphore") // 78 | |
| type VkFlags VkSemaphoreImportFlagsKHR | |
| @extension("VK_KHR_external_semaphore") // 78 | |
| bitfield VkSemaphoreImportFlagBitsKHR { | |
| VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001, | |
| } | |
| @extension("VK_EXT_conditional_rendering") // 82 | |
| type VkFlags VkConditionalRenderingFlagsEXT | |
| @extension("VK_EXT_conditional_rendering") // 82 | |
| bitfield VkConditionalRenderingFlagBitsEXT { | |
| VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001, | |
| } | |
| @extension("VK_KHR_descriptor_update_template") // 86 | |
| type VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR | |
| //@extension("VK_KHR_descriptor_update_template") // 86 | |
| //bitfield VkDescriptorUpdateTemplateCreateFlagBitsKHR { | |
| //} | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| type VkFlags VkIndirectCommandsLayoutUsageFlagsNVX | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| bitfield VkIndirectCommandsLayoutUsageFlagBitsNVX { | |
| VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001, | |
| VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002, | |
| VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004, | |
| VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008, | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| type VkFlags VkObjectEntryUsageFlagsNVX | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| bitfield VkObjectEntryUsageFlagBitsNVX { | |
| VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001, | |
| VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002, | |
| } | |
| @extension("VK_EXT_display_surface_counter") // 91 | |
| type VkFlags VkSurfaceCounterFlagsEXT | |
| @extension("VK_EXT_display_surface_counter") // 91 | |
| bitfield VkSurfaceCounterFlagBitsEXT { | |
| VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001, | |
| } | |
| @extension("VK_NV_viewport_swizzle") // 99 | |
| type VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV | |
| //@extension("VK_NV_viewport_swizzle") // 99 | |
| //bitfield VkPipelineViewportSwizzleStateCreateFlagBitsNV { | |
| //} | |
| @extension("VK_EXT_discard_rectangles") // 100 | |
| type VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT | |
| //@extension("VK_EXT_discard_rectangles") // 100 | |
| //bitfield VkPipelineDiscardRectangleStateCreateFlagBitsEXT { | |
| //} | |
| @extension("VK_EXT_conservative_rasterization") // 102 | |
| type VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT | |
| //@extension("VK_EXT_conservative_rasterization") // 102 | |
| //bitfield VkPipelineRasterizationConservativeStateCreateFlagBitsEXT { | |
| //} | |
| @extension("VK_KHR_external_fence_capabilities") // 113 | |
| type VkFlags VkExternalFenceHandleTypeFlagsKHR | |
| @extension("VK_KHR_external_fence_capabilities") // 113 | |
| bitfield VkExternalFenceHandleTypeFlagBitsKHR { | |
| VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, | |
| VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, | |
| VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, | |
| VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008, | |
| } | |
| @extension("VK_KHR_external_fence_capabilities") // 113 | |
| type VkFlags VkExternalFenceFeatureFlagsKHR | |
| @extension("VK_KHR_external_fence_capabilities") // 113 | |
| bitfield VkExternalFenceFeatureFlagBitsKHR { | |
| VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001, | |
| VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002, | |
| } | |
| @extension("VK_KHR_external_fence") // 114 | |
| type VkFlags VkFenceImportFlagsKHR | |
| @extension("VK_KHR_external_fence") // 114 | |
| bitfield VkFenceImportFlagBitsKHR { | |
| VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001, | |
| } | |
| @extension("VK_MVK_ios_surface") // 123 | |
| type VkFlags VkIOSSurfaceCreateFlagsMVK | |
| //@extension("VK_MVK_ios_surface") // 123 | |
| //bitfield VkIOSSurfaceCreateFlagBitsMVK { | |
| //} | |
| @extension("VK_MVK_macos_surface") // 124 | |
| type VkFlags VkMacOSSurfaceCreateFlagsMVK | |
| //@extension("VK_MVK_macos_surface") // 124 | |
| //bitfield VkMacOSSurfaceCreateFlagBitsMVK { | |
| //} | |
| @extension("VK_EXT_debug_utils") // 129 | |
| type VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT | |
| //@extension("VK_EXT_debug_utils") // 129 | |
| //bitfield VkDebugUtilsMessengerCallbackDataFlagBitsEXT { | |
| //} | |
| @extension("VK_EXT_debug_utils") // 129 | |
| type VkFlags VkDebugUtilsMessengerCreateFlagsEXT | |
| //@extension("VK_EXT_debug_utils") // 129 | |
| //bitfield VkDebugUtilsMessengerCreateFlagBitsEXT { | |
| //} | |
| @extension("VK_EXT_debug_utils") // 129 | |
| type VkFlags VkDebugUtilsMessageSeverityFlagsEXT | |
| @extension("VK_EXT_debug_utils") // 129 | |
| bitfield VkDebugUtilsMessageSeverityFlagBitsEXT { | |
| VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001, | |
| VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010, | |
| VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100, | |
| VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000, | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| type VkFlags VkDebugUtilsMessageTypeFlagsEXT | |
| @extension("VK_EXT_debug_utils") // 129 | |
| bitfield VkDebugUtilsMessageTypeFlagBitsEXT { | |
| VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001, | |
| VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002, | |
| VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004, | |
| } | |
| @extension("VK_NV_fragment_coverage_to_color") // 150 | |
| type VkFlags VkPipelineCoverageToColorStateCreateFlagsNV | |
| @extension("VK_NV_fragment_coverage_to_color") // 150 | |
| //bitfield VkPipelineCoverageToColorStateCreateFlagBitsNV { | |
| //} | |
| @extension("VK_NV_framebuffer_mixed_samples") // 153 | |
| type VkFlags VkPipelineCoverageModulationStateCreateFlagsNV | |
| @extension("VK_NV_framebuffer_mixed_samples") // 153 | |
| //bitfield VkPipelineCoverageModulationStateCreateFlagBitsNV { | |
| //} | |
| @extension("VK_EXT_validation_cache") // 161 | |
| type VkFlags VkValidationCacheCreateFlagsEXT | |
| @extension("VK_EXT_validation_cache") // 161 | |
| //bitfield VkValidationCacheCreateFlagBitsEXT { | |
| //} | |
| @extension("VK_EXT_descriptor_indexing") // 162 | |
| type VkFlags VkDescriptorBindingFlagsEXT | |
| @extension("VK_EXT_descriptor_indexing") // 162 | |
| bitfield VkDescriptorBindingFlagBitsEXT { | |
| VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001, | |
| VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002, | |
| VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004, | |
| VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008, | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| type VkFlags VkGeometryFlagsNV | |
| @extension("VK_NV_ray_tracing") // 166 | |
| bitfield VkGeometryFlagBitsNV { | |
| VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001, | |
| VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002, | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| type VkFlags VkGeometryInstanceFlagsNV | |
| @extension("VK_NV_ray_tracing") // 166 | |
| bitfield VkGeometryInstanceFlagBitsNV { | |
| VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001, | |
| VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002, | |
| VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004, | |
| VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008, | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| type VkFlags VkBuildAccelerationStructureFlagsNV | |
| @extension("VK_NV_ray_tracing") // 166 | |
| bitfield VkBuildAccelerationStructureFlagBitsNV { | |
| VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001, | |
| VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002, | |
| VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004, | |
| VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008, | |
| VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010, | |
| } | |
| @extension("VK_FUCHSIA_imagepipe_surface") // 215 | |
| type VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA | |
| //@extension("VK_FUCHSIA_imagepipe_surface") // 215 | |
| //bitfield VkImagePipeSurfaceCreateFlagBitsFUCHSIA { | |
| //} | |
| ////////////////// | |
| // Structures // | |
| ////////////////// | |
| class VkOffset2D { | |
| s32 x | |
| s32 y | |
| } | |
| class VkOffset3D { | |
| s32 x | |
| s32 y | |
| s32 z | |
| } | |
| class VkExtent2D { | |
| u32 width | |
| u32 height | |
| } | |
| class VkExtent3D { | |
| u32 width | |
| u32 height | |
| u32 depth | |
| } | |
| class VkViewport { | |
| f32 x | |
| f32 y | |
| f32 width | |
| f32 height | |
| f32 minDepth | |
| f32 maxDepth | |
| } | |
| class VkRect2D { | |
| VkOffset2D offset | |
| VkExtent2D extent | |
| } | |
| class VkClearRect { | |
| VkRect2D rect | |
| u32 baseArrayLayer | |
| u32 layerCount | |
| } | |
| class VkComponentMapping { | |
| VkComponentSwizzle r | |
| VkComponentSwizzle g | |
| VkComponentSwizzle b | |
| VkComponentSwizzle a | |
| } | |
| class VkPhysicalDeviceProperties { | |
| u32 apiVersion | |
| u32 driverVersion | |
| u32 vendorID | |
| u32 deviceID | |
| VkPhysicalDeviceType deviceType | |
| char[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] deviceName | |
| u8[VK_UUID_SIZE] pipelineCacheUUID | |
| VkPhysicalDeviceLimits limits | |
| VkPhysicalDeviceSparseProperties sparseProperties | |
| } | |
| class VkExtensionProperties { | |
| char[VK_MAX_EXTENSION_NAME_SIZE] extensionName /// extension name | |
| u32 specVersion /// version of the extension specification implemented | |
| } | |
| class VkLayerProperties { | |
| char[VK_MAX_EXTENSION_NAME_SIZE] layerName /// layer name | |
| u32 specVersion /// version of the layer specification implemented | |
| u32 implementationVersion /// build or release version of the layer's library | |
| char[VK_MAX_DESCRIPTION_SIZE] description /// Free-form description of the layer | |
| } | |
| class VkSubmitInfo { | |
| VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_SUBMIT_INFO | |
| const void* pNext /// Next structure in chain | |
| u32 waitSemaphoreCount | |
| const VkSemaphore* pWaitSemaphores | |
| const VkPipelineStageFlags* pWaitDstStageMask | |
| u32 commandBufferCount | |
| const VkCommandBuffer* pCommandBuffers | |
| u32 signalSemaphoreCount | |
| const VkSemaphore* pSignalSemaphores | |
| } | |
| class VkApplicationInfo { | |
| VkStructureType sType /// Type of structure. Should be VK_STRUCTURE_TYPE_APPLICATION_INFO | |
| const void* pNext /// Next structure in chain | |
| const char* pApplicationName | |
| u32 applicationVersion | |
| const char* pEngineName | |
| u32 engineVersion | |
| u32 apiVersion | |
| } | |
| class VkAllocationCallbacks { | |
| void* pUserData | |
| PFN_vkAllocationFunction pfnAllocation | |
| PFN_vkReallocationFunction pfnReallocation | |
| PFN_vkFreeFunction pfnFree | |
| PFN_vkInternalAllocationNotification pfnInternalAllocation | |
| PFN_vkInternalFreeNotification pfnInternalFree | |
| } | |
| class VkDeviceQueueCreateInfo { | |
| VkStructureType sStype /// Should be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkDeviceQueueCreateFlags flags | |
| u32 queueFamilyIndex | |
| u32 queueCount | |
| const f32* pQueuePriorities | |
| } | |
| class VkDeviceCreateInfo { | |
| VkStructureType sType /// Should be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkDeviceCreateFlags flags | |
| u32 queueCreateInfoCount | |
| const VkDeviceQueueCreateInfo* pQueueCreateInfos | |
| u32 enabledLayerCount | |
| const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled | |
| u32 enabledExtensionCount | |
| const char* const* ppEnabledExtensionNames | |
| const VkPhysicalDeviceFeatures* pEnabledFeatures | |
| } | |
| class VkInstanceCreateInfo { | |
| VkStructureType sType /// Should be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkInstanceCreateFlags flags | |
| const VkApplicationInfo* pApplicationInfo | |
| u32 enabledLayerCount | |
| const char* const* ppEnabledLayerNames /// Ordered list of layer names to be enabled | |
| u32 enabledExtensionCount | |
| const char* const* ppEnabledExtensionNames /// Extension names to be enabled | |
| } | |
| class VkQueueFamilyProperties { | |
| VkQueueFlags queueFlags /// Queue flags | |
| u32 queueCount | |
| u32 timestampValidBits | |
| VkExtent3D minImageTransferGranularity | |
| } | |
| class VkPhysicalDeviceMemoryProperties { | |
| u32 memoryTypeCount | |
| VkMemoryType[VK_MAX_MEMORY_TYPES] memoryTypes | |
| u32 memoryHeapCount | |
| VkMemoryHeap[VK_MAX_MEMORY_HEAPS] memoryHeaps | |
| } | |
| class VkMemoryAllocateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkDeviceSize allocationSize /// Size of memory allocation | |
| u32 memoryTypeIndex /// Index of the of the memory type to allocate from | |
| } | |
| class VkMemoryRequirements { | |
| VkDeviceSize size /// Specified in bytes | |
| VkDeviceSize alignment /// Specified in bytes | |
| u32 memoryTypeBits /// Bitfield of the allowed memory type indices into memoryTypes[] for this object | |
| } | |
| class VkSparseImageFormatProperties { | |
| VkImageAspectFlagBits aspectMask | |
| VkExtent3D imageGranularity | |
| VkSparseImageFormatFlags flags | |
| } | |
| class VkSparseImageMemoryRequirements { | |
| VkSparseImageFormatProperties formatProperties | |
| u32 imageMipTailFirstLod | |
| VkDeviceSize imageMipTailSize /// Specified in bytes, must be a multiple of image block size / alignment | |
| VkDeviceSize imageMipTailOffset /// Specified in bytes, must be a multiple of image block size / alignment | |
| VkDeviceSize imageMipTailStride /// Specified in bytes, must be a multiple of image block size / alignment | |
| } | |
| class VkMemoryType { | |
| VkMemoryPropertyFlags propertyFlags /// Memory properties of this memory type | |
| u32 heapIndex /// Index of the memory heap allocations of this memory type are taken from | |
| } | |
| class VkMemoryHeap { | |
| VkDeviceSize size /// Available memory in the heap | |
| VkMemoryHeapFlags flags /// Flags for the heap | |
| } | |
| class VkMappedMemoryRange { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE | |
| const void* pNext /// Pointer to next structure | |
| VkDeviceMemory memory /// Mapped memory object | |
| VkDeviceSize offset /// Offset within the mapped memory the range starts from | |
| VkDeviceSize size /// Size of the range within the mapped memory | |
| } | |
| class VkFormatProperties { | |
| VkFormatFeatureFlags linearTilingFeatures /// Format features in case of linear tiling | |
| VkFormatFeatureFlags optimalTilingFeatures /// Format features in case of optimal tiling | |
| VkFormatFeatureFlags bufferFeatures /// Format features supported by buffers | |
| } | |
| class VkImageFormatProperties { | |
| VkExtent3D maxExtent /// max image dimensions for this resource type | |
| u32 maxMipLevels /// max number of mipmap levels for this resource type | |
| u32 maxArrayLayers /// max array layers for this resource type | |
| VkSampleCountFlags sampleCounts /// supported sample counts for this resource type | |
| VkDeviceSize maxResourceSize /// max size (in bytes) of this resource type | |
| } | |
| class VkDescriptorImageInfo { | |
| VkSampler sampler | |
| VkImageView imageView | |
| VkImageLayout imageLayout | |
| } | |
| class VkDescriptorBufferInfo { | |
| VkBuffer buffer /// Buffer used for this descriptor when the descriptor is UNIFORM_BUFFER[_DYNAMIC] | |
| VkDeviceSize offset /// Base offset from buffer start in bytes to update in the descriptor set. | |
| VkDeviceSize range /// Size in bytes of the buffer resource for this descriptor update. | |
| } | |
| class VkWriteDescriptorSet { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET | |
| const void* pNext /// Pointer to next structure | |
| VkDescriptorSet dstSet /// Destination descriptor set | |
| u32 dstBinding /// Binding within the destination descriptor set to write | |
| u32 dstArrayElement /// Array element within the destination binding to write | |
| u32 descriptorCount /// Number of descriptors to write (determines the size of the array pointed by <pDescriptors>) | |
| VkDescriptorType descriptorType /// Descriptor type to write (determines which fields of the array pointed by <pDescriptors> are going to be used) | |
| const VkDescriptorImageInfo* pImageInfo | |
| const VkDescriptorBufferInfo* pBufferInfo | |
| const VkBufferView* pTexelBufferView | |
| } | |
| class VkCopyDescriptorSet { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET | |
| const void* pNext /// Pointer to next structure | |
| VkDescriptorSet srcSet /// Source descriptor set | |
| u32 srcBinding /// Binding within the source descriptor set to copy from | |
| u32 srcArrayElement /// Array element within the source binding to copy from | |
| VkDescriptorSet dstSet /// Destination descriptor set | |
| u32 dstBinding /// Binding within the destination descriptor set to copy to | |
| u32 dstArrayElement /// Array element within the destination binding to copy to | |
| u32 descriptorCount /// Number of descriptors to copy | |
| } | |
| class VkBufferCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO | |
| const void* pNext /// Pointer to next structure. | |
| VkBufferCreateFlags flags /// Buffer creation flags | |
| VkDeviceSize size /// Specified in bytes | |
| VkBufferUsageFlags usage /// Buffer usage flags | |
| VkSharingMode sharingMode | |
| u32 queueFamilyIndexCount | |
| const u32* pQueueFamilyIndices | |
| } | |
| class VkBufferViewCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO | |
| const void* pNext /// Pointer to next structure. | |
| VkBufferViewCreateFlags flags | |
| VkBuffer buffer | |
| VkFormat format /// Optionally specifies format of elements | |
| VkDeviceSize offset /// Specified in bytes | |
| VkDeviceSize range /// View size specified in bytes | |
| } | |
| class VkImageSubresource { | |
| VkImageAspectFlagBits aspectMask | |
| u32 mipLevel | |
| u32 arrayLayer | |
| } | |
| class VkImageSubresourceRange { | |
| VkImageAspectFlags aspectMask | |
| u32 baseMipLevel | |
| u32 levelCount | |
| u32 baseArrayLayer | |
| u32 layerCount | |
| } | |
| class VkMemoryBarrier { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_MEMORY_BARRIER | |
| const void* pNext /// Pointer to next structure. | |
| VkAccessFlags srcAccessMask | |
| VkAccessFlags dstAccessMask | |
| } | |
| class VkBufferMemoryBarrier { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER | |
| const void* pNext /// Pointer to next structure. | |
| VkAccessFlags srcAccessMask | |
| VkAccessFlags dstAccessMask | |
| u32 srcQueueFamilyIndex /// Queue family to transition ownership from | |
| u32 dstQueueFamilyIndex /// Queue family to transition ownership to | |
| VkBuffer buffer /// Buffer to sync | |
| VkDeviceSize offset /// Offset within the buffer to sync | |
| VkDeviceSize size /// Amount of bytes to sync | |
| } | |
| class VkImageMemoryBarrier { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER | |
| const void* pNext /// Pointer to next structure. | |
| VkAccessFlags srcAccessMask | |
| VkAccessFlags dstAccessMask | |
| VkImageLayout oldLayout /// Current layout of the image | |
| VkImageLayout newLayout /// New layout to transition the image to | |
| u32 srcQueueFamilyIndex /// Queue family to transition ownership from | |
| u32 dstQueueFamilyIndex /// Queue family to transition ownership to | |
| VkImage image /// Image to sync | |
| VkImageSubresourceRange subresourceRange /// Subresource range to sync | |
| } | |
| class VkImageCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure. | |
| VkImageCreateFlags flags /// Image creation flags | |
| VkImageType imageType | |
| VkFormat format | |
| VkExtent3D extent | |
| u32 mipLevels | |
| u32 arrayLayers | |
| VkSampleCountFlagBits samples | |
| VkImageTiling tiling | |
| VkImageUsageFlags usage /// Image usage flags | |
| VkSharingMode sharingMode /// Cross-queue-family sharing mode | |
| u32 queueFamilyIndexCount /// Number of queue families to share across | |
| const u32* pQueueFamilyIndices /// Array of queue family indices to share across | |
| VkImageLayout initialLayout /// Initial image layout for all subresources | |
| } | |
| class VkSubresourceLayout { | |
| VkDeviceSize offset /// Specified in bytes | |
| VkDeviceSize size /// Specified in bytes | |
| VkDeviceSize rowPitch /// Specified in bytes | |
| VkDeviceSize arrayPitch /// Specified in bytes | |
| VkDeviceSize depthPitch /// Specified in bytes | |
| } | |
| class VkImageViewCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkImageViewCreateFlags flags | |
| VkImage image | |
| VkImageViewType viewType | |
| VkFormat format | |
| VkComponentMapping components | |
| VkImageSubresourceRange subresourceRange | |
| } | |
| class VkBufferCopy { | |
| VkDeviceSize srcOffset /// Specified in bytes | |
| VkDeviceSize dstOffset /// Specified in bytes | |
| VkDeviceSize size /// Specified in bytes | |
| } | |
| class VkSparseMemoryBind { | |
| VkDeviceSize resourceOffset /// Specified in bytes | |
| VkDeviceSize size /// Specified in bytes | |
| VkDeviceMemory memory | |
| VkDeviceSize memoryOffset /// Specified in bytes | |
| VkSparseMemoryBindFlags flags | |
| } | |
| class VkSparseImageMemoryBind { | |
| VkImageSubresource subresource | |
| VkOffset3D offset | |
| VkExtent3D extent | |
| VkDeviceMemory memory | |
| VkDeviceSize memoryOffset /// Specified in bytes | |
| VkSparseMemoryBindFlags flags | |
| } | |
| class VkSparseBufferMemoryBindInfo { | |
| VkBuffer buffer | |
| u32 bindCount | |
| const VkSparseMemoryBind* pBinds | |
| } | |
| class VkSparseImageOpaqueMemoryBindInfo { | |
| VkImage image | |
| u32 bindCount | |
| const VkSparseMemoryBind* pBinds | |
| } | |
| class VkSparseImageMemoryBindInfo { | |
| VkImage image | |
| u32 bindCount | |
| const VkSparseMemoryBind* pBinds | |
| } | |
| class VkBindSparseInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO | |
| const void* pNext | |
| u32 waitSemaphoreCount | |
| const VkSemaphore* pWaitSemaphores | |
| u32 numBufferBinds | |
| const VkSparseBufferMemoryBindInfo* pBufferBinds | |
| u32 numImageOpaqueBinds | |
| const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds | |
| u32 numImageBinds | |
| const VkSparseImageMemoryBindInfo* pImageBinds | |
| u32 signalSemaphoreCount | |
| const VkSemaphore* pSignalSemaphores | |
| } | |
| class VkImageSubresourceLayers { | |
| VkImageAspectFlags aspectMask | |
| u32 mipLevel | |
| u32 baseArrayLayer | |
| u32 layerCount | |
| } | |
| class VkImageCopy { | |
| VkImageSubresourceLayers srcSubresource | |
| VkOffset3D srcOffset /// Specified in pixels for both compressed and uncompressed images | |
| VkImageSubresourceLayers dstSubresource | |
| VkOffset3D dstOffset /// Specified in pixels for both compressed and uncompressed images | |
| VkExtent3D extent /// Specified in pixels for both compressed and uncompressed images | |
| } | |
| class VkImageBlit { | |
| VkImageSubresourceLayers srcSubresource | |
| VkOffset3D[2] srcOffsets | |
| VkImageSubresourceLayers dstSubresource | |
| VkOffset3D[2] dstOffsets | |
| } | |
| class VkBufferImageCopy { | |
| VkDeviceSize bufferOffset /// Specified in bytes | |
| u32 bufferRowLength /// Specified in texels | |
| u32 bufferImageHeight | |
| VkImageSubresourceLayers imageSubresource | |
| VkOffset3D imageOffset /// Specified in pixels for both compressed and uncompressed images | |
| VkExtent3D imageExtent /// Specified in pixels for both compressed and uncompressed images | |
| } | |
| class VkImageResolve { | |
| VkImageSubresourceLayers srcSubresource | |
| VkOffset3D srcOffset | |
| VkImageSubresourceLayers dstSubresource | |
| VkOffset3D dstOffset | |
| VkExtent3D extent | |
| } | |
| class VkShaderModuleCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkShaderModuleCreateFlags flags /// Reserved | |
| platform.size_t codeSize /// Specified in bytes | |
| const u32* pCode /// Binary code of size codeSize | |
| } | |
| class VkDescriptorSetLayoutBinding { | |
| u32 binding | |
| VkDescriptorType descriptorType /// Type of the descriptors in this binding | |
| u32 descriptorCount /// Number of descriptors in this binding | |
| VkShaderStageFlags stageFlags /// Shader stages this binding is visible to | |
| const VkSampler* pImmutableSamplers /// Immutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains <count> number of elements) | |
| } | |
| class VkDescriptorSetLayoutCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkDescriptorSetLayoutCreateFlags flags | |
| u32 bindingCount /// Number of bindings in the descriptor set layout | |
| const VkDescriptorSetLayoutBinding* pBindings /// Array of descriptor set layout bindings | |
| } | |
| class VkDescriptorPoolSize { | |
| VkDescriptorType type | |
| u32 descriptorCount | |
| } | |
| class VkDescriptorPoolCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkDescriptorPoolCreateFlags flags | |
| u32 maxSets | |
| u32 poolSizeCount | |
| const VkDescriptorPoolSize* pPoolSizes | |
| } | |
| class VkDescriptorSetAllocateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkDescriptorPool descriptorPool | |
| u32 setCount | |
| const VkDescriptorSetLayout* pSetLayouts | |
| } | |
| class VkSpecializationMapEntry { | |
| u32 constantID /// The SpecConstant ID specified in the BIL | |
| u32 offset /// Offset of the value in the data block | |
| platform.size_t size /// Size in bytes of the SpecConstant | |
| } | |
| class VkSpecializationInfo { | |
| u32 mapEntryCount /// Number of entries in the map | |
| const VkSpecializationMapEntry* pMapEntries /// Array of map entries | |
| platform.size_t dataSize /// Size in bytes of pData | |
| const void* pData /// Pointer to SpecConstant data | |
| } | |
| class VkPipelineShaderStageCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineShaderStageCreateFlags flags | |
| VkShaderStageFlagBits stage | |
| VkShaderModule module | |
| const char* pName | |
| const VkSpecializationInfo* pSpecializationInfo | |
| } | |
| class VkComputePipelineCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineCreateFlags flags /// Pipeline creation flags | |
| VkPipelineShaderStageCreateInfo stage | |
| VkPipelineLayout layout /// Interface layout of the pipeline | |
| 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 | |
| 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 | |
| } | |
| class VkVertexInputBindingDescription { | |
| u32 binding /// Vertex buffer binding id | |
| u32 stride /// Distance between vertices in bytes (0 = no advancement) | |
| VkVertexInputRate inputRate /// Rate at which binding is incremented | |
| } | |
| class VkVertexInputAttributeDescription { | |
| u32 location /// location of the shader vertex attrib | |
| u32 binding /// Vertex buffer binding id | |
| VkFormat format /// format of source data | |
| u32 offset /// Offset of first element in bytes from base of vertex | |
| } | |
| class VkPipelineVertexInputStateCreateInfo { | |
| VkStructureType sType /// Should be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineVertexInputStateCreateFlags flags | |
| u32 vertexBindingDescriptionCount /// number of bindings | |
| const VkVertexInputBindingDescription* pVertexBindingDescriptions | |
| u32 vertexAttributeDescriptionCount /// number of attributes | |
| const VkVertexInputAttributeDescription* pVertexAttributeDescriptions | |
| } | |
| class VkPipelineInputAssemblyStateCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineInputAssemblyStateCreateFlags flags | |
| VkPrimitiveTopology topology | |
| VkBool32 primitiveRestartEnable | |
| } | |
| class VkPipelineTessellationStateCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineTessellationStateCreateFlags flags | |
| u32 patchControlPoints | |
| } | |
| class VkPipelineViewportStateCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineViewportStateCreateFlags flags | |
| u32 viewportCount | |
| const VkViewport* pViewports | |
| u32 scissorCount | |
| const VkRect2D* pScissors | |
| } | |
| class VkPipelineRasterizationStateCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineRasterizationStateCreateFlags flags | |
| VkBool32 depthClampEnable | |
| VkBool32 rasterizerDiscardEnable | |
| VkPolygonMode polygonMode /// optional (GL45) | |
| VkCullModeFlags cullMode | |
| VkFrontFace frontFace | |
| VkBool32 depthBiasEnable | |
| f32 depthBiasConstantFactor | |
| f32 depthBiasClamp | |
| f32 depthBiasSlopeFactor | |
| f32 lineWidth | |
| } | |
| class VkPipelineMultisampleStateCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineMultisampleStateCreateFlags flags | |
| VkSampleCountFlagBits rasterizationSamples /// Number of samples used for rasterization | |
| VkBool32 sampleShadingEnable /// optional (GL45) | |
| f32 minSampleShading /// optional (GL45) | |
| const VkSampleMask* pSampleMask | |
| VkBool32 alphaToCoverageEnable | |
| VkBool32 alphaToOneEnable | |
| } | |
| class VkPipelineColorBlendAttachmentState { | |
| VkBool32 blendEnable | |
| VkBlendFactor srcColorBlendFactor | |
| VkBlendFactor dstColorBlendFactor | |
| VkBlendOp colorBlendOp | |
| VkBlendFactor srcAlphaBlendFactor | |
| VkBlendFactor dstAlphaBlendFactor | |
| VkBlendOp alphaBlendOp | |
| VkColorComponentFlags colorWriteMask | |
| } | |
| class VkPipelineColorBlendStateCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineColorBlendStateCreateFlags flags | |
| VkBool32 logicOpEnable | |
| VkLogicOp logicOp | |
| u32 attachmentCount /// # of pAttachments | |
| const VkPipelineColorBlendAttachmentState* pAttachments | |
| f32[4] blendConstants | |
| } | |
| class VkStencilOpState { | |
| VkStencilOp failOp | |
| VkStencilOp passOp | |
| VkStencilOp depthFailOp | |
| VkCompareOp compareOp | |
| u32 compareMask | |
| u32 writeMask | |
| u32 reference | |
| } | |
| class VkPipelineDepthStencilStateCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineDepthStencilStateCreateFlags flags | |
| VkBool32 depthTestEnable | |
| VkBool32 depthWriteEnable | |
| VkCompareOp depthCompareOp | |
| VkBool32 depthBoundsTestEnable /// optional (depth_bounds_test) | |
| VkBool32 stencilTestEnable | |
| VkStencilOpState front | |
| VkStencilOpState back | |
| f32 minDepthBounds | |
| f32 maxDepthBounds | |
| } | |
| class VkPipelineDynamicStateCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineDynamicStateCreateFlags flags | |
| u32 dynamicStateCount | |
| const VkDynamicState* pDynamicStates | |
| } | |
| class VkGraphicsPipelineCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineCreateFlags flags /// Pipeline creation flags | |
| u32 stageCount | |
| const VkPipelineShaderStageCreateInfo* pStages /// One entry for each active shader stage | |
| const VkPipelineVertexInputStateCreateInfo* pVertexInputState | |
| const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState | |
| const VkPipelineTessellationStateCreateInfo* pTessellationState | |
| const VkPipelineViewportStateCreateInfo* pViewportState | |
| const VkPipelineRasterizationStateCreateInfo* pRasterizationState | |
| const VkPipelineMultisampleStateCreateInfo* pMultisampleState | |
| const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState | |
| const VkPipelineColorBlendStateCreateInfo* pColorBlendState | |
| const VkPipelineDynamicStateCreateInfo* pDynamicState | |
| VkPipelineLayout layout /// Interface layout of the pipeline | |
| VkRenderPass renderPass | |
| u32 subpass | |
| 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 | |
| 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 | |
| } | |
| class VkPipelineCacheCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineCacheCreateFlags flags | |
| platform.size_t initialDataSize /// Size of initial data to populate cache, in bytes | |
| const void* pInitialData /// Initial data to populate cache | |
| } | |
| class VkPushConstantRange { | |
| VkShaderStageFlags stageFlags /// Which stages use the range | |
| u32 offset /// Start of the range, in bytes | |
| u32 size /// Length of the range, in bytes | |
| } | |
| class VkPipelineLayoutCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkPipelineLayoutCreateFlags flags | |
| u32 descriptorSetCount /// Number of descriptor sets interfaced by the pipeline | |
| const VkDescriptorSetLayout* pSetLayouts /// Array of <setCount> number of descriptor set layout objects defining the layout of the | |
| u32 pushConstantRangeCount /// Number of push-constant ranges used by the pipeline | |
| const VkPushConstantRange* pPushConstantRanges /// Array of pushConstantRangeCount number of ranges used by various shader stages | |
| } | |
| class VkSamplerCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkSamplerCreateFlags flags | |
| VkFilter magFilter /// Filter mode for magnification | |
| VkFilter minFilter /// Filter mode for minifiation | |
| VkSamplerMipmapMode mipmapMode /// Mipmap selection mode | |
| VkSamplerAddressMode addressModeU | |
| VkSamplerAddressMode addressModeV | |
| VkSamplerAddressMode addressModeW | |
| f32 mipLodBias | |
| VkBool32 anisotropyEnable | |
| f32 maxAnisotropy | |
| VkBool32 compareEnable | |
| VkCompareOp compareOp | |
| f32 minLod | |
| f32 maxLod | |
| VkBorderColor borderColor | |
| VkBool32 unnormalizedCoordinates | |
| } | |
| class VkCommandPoolCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkCommandPoolCreateFlags flags /// Command pool creation flags | |
| u32 queueFamilyIndex | |
| } | |
| class VkCommandBufferAllocateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkCommandPool commandPool | |
| VkCommandBufferLevel level | |
| u32 commandBufferCount | |
| } | |
| class VkCommandBufferInheritanceInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkRenderPass renderPass /// Render pass for secondary command buffers | |
| u32 subpass | |
| VkFramebuffer framebuffer /// Framebuffer for secondary command buffers | |
| VkBool32 occlusionQueryEnable | |
| VkQueryControlFlags queryFlags | |
| VkQueryPipelineStatisticFlags pipelineStatistics | |
| } | |
| class VkCommandBufferBeginInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkCommandBufferUsageFlags flags /// Command buffer usage flags | |
| const VkCommandBufferInheritanceInfo* pInheritanceInfo | |
| } | |
| class VkRenderPassBeginInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkRenderPass renderPass | |
| VkFramebuffer framebuffer | |
| VkRect2D renderArea | |
| u32 clearValueCount | |
| const VkClearValue* pClearValues | |
| } | |
| @union | |
| /// Union allowing specification of floating point, integer, or unsigned integer color data. Actual value selected is based on image/attachment being cleared. | |
| class VkClearColorValue { | |
| f32[4] float32 | |
| s32[4] int32 | |
| u32[4] uint32 | |
| } | |
| class VkClearDepthStencilValue { | |
| f32 depth | |
| u32 stencil | |
| } | |
| @union | |
| /// Union allowing specification of color, depth, and stencil color values. Actual value selected is based on attachment being cleared. | |
| class VkClearValue { | |
| VkClearColorValue color | |
| VkClearDepthStencilValue depthStencil | |
| } | |
| class VkClearAttachment { | |
| VkImageAspectFlags aspectMask | |
| u32 colorAttachment | |
| VkClearValue clearValue | |
| } | |
| class VkAttachmentDescription { | |
| VkAttachmentDescriptionFlags flags | |
| VkFormat format | |
| VkSampleCountFlagBits samples | |
| VkAttachmentLoadOp loadOp /// Load op for color or depth data | |
| VkAttachmentStoreOp storeOp /// Store op for color or depth data | |
| VkAttachmentLoadOp stencilLoadOp /// Load op for stencil data | |
| VkAttachmentStoreOp stencilStoreOp /// Store op for stencil data | |
| VkImageLayout initialLayout | |
| VkImageLayout finalLayout | |
| } | |
| class VkAttachmentReference { | |
| u32 attachment | |
| VkImageLayout layout | |
| } | |
| class VkSubpassDescription { | |
| VkSubpassDescriptionFlags flags | |
| VkPipelineBindPoint pipelineBindPoint /// Must be VK_PIPELINE_BIND_POINT_GRAPHICS for now | |
| u32 inputAttachmentCount | |
| const VkAttachmentReference* pInputAttachments | |
| u32 colorAttachmentCount | |
| const VkAttachmentReference* pColorAttachments | |
| const VkAttachmentReference* pResolveAttachments | |
| const VkAttachmentReference* pDepthStencilAttachment | |
| u32 preserveAttachmentCount | |
| const u32* pPreserveAttachments | |
| } | |
| class VkSubpassDependency { | |
| u32 srcSubpass | |
| u32 dstSubpass | |
| VkPipelineStageFlags srcStageMask | |
| VkPipelineStageFlags dstStageMask | |
| VkAccessFlags srcAccessMask | |
| VkAccessFlags dstAccessMask | |
| VkDependencyFlags dependencyFlags | |
| } | |
| class VkRenderPassCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkRenderPassCreateFlags flags | |
| u32 attachmentCount | |
| const VkAttachmentDescription* pAttachments | |
| u32 subpassCount | |
| const VkSubpassDescription* pSubpasses | |
| u32 dependencyCount | |
| const VkSubpassDependency* pDependencies | |
| } | |
| class VkEventCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkEventCreateFlags flags /// Event creation flags | |
| } | |
| class VkFenceCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkFenceCreateFlags flags /// Fence creation flags | |
| } | |
| class VkPhysicalDeviceFeatures { | |
| VkBool32 robustBufferAccess /// out of bounds buffer accesses are well defined | |
| VkBool32 fullDrawIndexUint32 /// full 32-bit range of indices for indexed draw calls | |
| VkBool32 imageCubeArray /// image views which are arrays of cube maps | |
| VkBool32 independentBlend /// blending operations are controlled per-attachment | |
| VkBool32 geometryShader /// geometry stage | |
| VkBool32 tessellationShader /// tessellation control and evaluation stage | |
| VkBool32 sampleRateShading /// per-sample shading and interpolation | |
| VkBool32 dualSrcBlend /// blend operations which take two sources | |
| VkBool32 logicOp /// logic operations | |
| VkBool32 multiDrawIndirect /// multi draw indirect | |
| VkBool32 drawIndirectFirstInstance | |
| VkBool32 depthClamp /// depth clamping | |
| VkBool32 depthBiasClamp /// depth bias clamping | |
| VkBool32 fillModeNonSolid /// point and wireframe fill modes | |
| VkBool32 depthBounds /// depth bounds test | |
| VkBool32 wideLines /// lines with width greater than 1 | |
| VkBool32 largePoints /// points with size greater than 1 | |
| VkBool32 alphaToOne /// The fragment alpha channel can be forced to maximum representable alpha value | |
| VkBool32 multiViewport | |
| VkBool32 samplerAnisotropy | |
| VkBool32 textureCompressionETC2 /// ETC texture compression formats | |
| VkBool32 textureCompressionASTC_LDR /// ASTC LDR texture compression formats | |
| VkBool32 textureCompressionBC /// BC1-7 texture compressed formats | |
| VkBool32 occlusionQueryPrecise | |
| VkBool32 pipelineStatisticsQuery /// pipeline statistics query | |
| VkBool32 vertexPipelineStoresAndAtomics | |
| VkBool32 fragmentStoresAndAtomics | |
| VkBool32 shaderTessellationAndGeometryPointSize | |
| VkBool32 shaderImageGatherExtended /// texture gather with run-time values and independent offsets | |
| VkBool32 shaderStorageImageExtendedFormats /// the extended set of formats can be used for storage images | |
| VkBool32 shaderStorageImageMultisample /// multisample images can be used for storage images | |
| VkBool32 shaderStorageImageReadWithoutFormat | |
| VkBool32 shaderStorageImageWriteWithoutFormat | |
| VkBool32 shaderUniformBufferArrayDynamicIndexing /// arrays of uniform buffers can be accessed with dynamically uniform indices | |
| VkBool32 shaderSampledImageArrayDynamicIndexing /// arrays of sampled images can be accessed with dynamically uniform indices | |
| VkBool32 shaderStorageBufferArrayDynamicIndexing /// arrays of storage buffers can be accessed with dynamically uniform indices | |
| VkBool32 shaderStorageImageArrayDynamicIndexing /// arrays of storage images can be accessed with dynamically uniform indices | |
| VkBool32 shaderClipDistance /// clip distance in shaders | |
| VkBool32 shaderCullDistance /// cull distance in shaders | |
| VkBool32 shaderFloat64 /// 64-bit floats (doubles) in shaders | |
| VkBool32 shaderInt64 /// 64-bit integers in shaders | |
| VkBool32 shaderInt16 /// 16-bit integers in shaders | |
| VkBool32 shaderResourceResidency /// shader can use texture operations that return resource residency information (requires sparseNonResident support) | |
| VkBool32 shaderResourceMinLod /// shader can use texture operations that specify minimum resource LOD | |
| VkBool32 sparseBinding /// Sparse resources support: Resource memory can be managed at opaque page level rather than object level | |
| VkBool32 sparseResidencyBuffer /// Sparse resources support: GPU can access partially resident buffers | |
| VkBool32 sparseResidencyImage2D /// Sparse resources support: GPU can access partially resident 2D (non-MSAA non-DepthStencil) images | |
| VkBool32 sparseResidencyImage3D /// Sparse resources support: GPU can access partially resident 3D images | |
| VkBool32 sparseResidency2Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 2 samples | |
| VkBool32 sparseResidency4Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 4 samples | |
| VkBool32 sparseResidency8Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 8 samples | |
| VkBool32 sparseResidency16Samples /// Sparse resources support: GPU can access partially resident MSAA 2D images with 16 samples | |
| VkBool32 sparseResidencyAliased /// Sparse resources support: GPU can correctly access data aliased into multiple locations (opt-in) | |
| VkBool32 variableMultisampleRate | |
| VkBool32 inheritedQueries | |
| } | |
| class VkPhysicalDeviceLimits { | |
| /// resource maximum sizes | |
| u32 maxImageDimension1D /// max 1D image dimension | |
| u32 maxImageDimension2D /// max 2D image dimension | |
| u32 maxImageDimension3D /// max 3D image dimension | |
| u32 maxImageDimensionCube /// max cubemap image dimension | |
| u32 maxImageArrayLayers /// max layers for image arrays | |
| u32 maxTexelBufferElements | |
| u32 maxUniformBufferRange /// max uniform buffer size (bytes) | |
| u32 maxStorageBufferRange /// max storage buffer size (bytes) | |
| u32 maxPushConstantsSize /// max size of the push constants pool (bytes) | |
| /// memory limits | |
| u32 maxMemoryAllocationCount /// max number of device memory allocations supported | |
| u32 maxSamplerAllocationCount | |
| VkDeviceSize bufferImageGranularity /// Granularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage | |
| VkDeviceSize sparseAddressSpaceSize /// Total address space available for sparse allocations (bytes) | |
| /// descriptor set limits | |
| u32 maxBoundDescriptorSets /// max number of descriptors sets that can be bound to a pipeline | |
| u32 maxPerStageDescriptorSamplers /// max num of samplers allowed per-stage in a descriptor set | |
| u32 maxPerStageDescriptorUniformBuffers /// max num of uniform buffers allowed per-stage in a descriptor set | |
| u32 maxPerStageDescriptorStorageBuffers /// max num of storage buffers allowed per-stage in a descriptor set | |
| u32 maxPerStageDescriptorSampledImages /// max num of sampled images allowed per-stage in a descriptor set | |
| u32 maxPerStageDescriptorStorageImages /// max num of storage images allowed per-stage in a descriptor set | |
| u32 maxPerStageDescriptorInputAttachments | |
| u32 maxPerStageResources | |
| u32 maxDescriptorSetSamplers /// max num of samplers allowed in all stages in a descriptor set | |
| u32 maxDescriptorSetUniformBuffers /// max num of uniform buffers allowed in all stages in a descriptor set | |
| u32 maxDescriptorSetUniformBuffersDynamic /// max num of dynamic uniform buffers allowed in all stages in a descriptor set | |
| u32 maxDescriptorSetStorageBuffers /// max num of storage buffers allowed in all stages in a descriptor set | |
| u32 maxDescriptorSetStorageBuffersDynamic /// max num of dynamic storage buffers allowed in all stages in a descriptor set | |
| u32 maxDescriptorSetSampledImages /// max num of sampled images allowed in all stages in a descriptor set | |
| u32 maxDescriptorSetStorageImages /// max num of storage images allowed in all stages in a descriptor set | |
| u32 maxDescriptorSetInputAttachments | |
| /// vertex stage limits | |
| u32 maxVertexInputAttributes /// max num of vertex input attribute slots | |
| u32 maxVertexInputBindings /// max num of vertex input binding slots | |
| u32 maxVertexInputAttributeOffset /// max vertex input attribute offset added to vertex buffer offset | |
| u32 maxVertexInputBindingStride /// max vertex input binding stride | |
| u32 maxVertexOutputComponents /// max num of output components written by vertex shader | |
| /// tessellation control stage limits | |
| u32 maxTessellationGenerationLevel /// max level supported by tess primitive generator | |
| u32 maxTessellationPatchSize /// max patch size (vertices) | |
| u32 maxTessellationControlPerVertexInputComponents /// max num of input components per-vertex in TCS | |
| u32 maxTessellationControlPerVertexOutputComponents /// max num of output components per-vertex in TCS | |
| u32 maxTessellationControlPerPatchOutputComponents /// max num of output components per-patch in TCS | |
| u32 maxTessellationControlTotalOutputComponents /// max total num of per-vertex and per-patch output components in TCS | |
| u32 maxTessellationEvaluationInputComponents /// max num of input components per vertex in TES | |
| u32 maxTessellationEvaluationOutputComponents /// max num of output components per vertex in TES | |
| /// geometry stage limits | |
| u32 maxGeometryShaderInvocations /// max invocation count supported in geometry shader | |
| u32 maxGeometryInputComponents /// max num of input components read in geometry stage | |
| u32 maxGeometryOutputComponents /// max num of output components written in geometry stage | |
| u32 maxGeometryOutputVertices /// max num of vertices that can be emitted in geometry stage | |
| u32 maxGeometryTotalOutputComponents /// max total num of components (all vertices) written in geometry stage | |
| /// fragment stage limits | |
| u32 maxFragmentInputComponents /// max num of input compontents read in fragment stage | |
| u32 maxFragmentOutputAttachments /// max num of output attachments written in fragment stage | |
| u32 maxFragmentDualSrcAttachments /// max num of output attachments written when using dual source blending | |
| u32 maxFragmentCombinedOutputResources /// max total num of storage buffers, storage images and output buffers | |
| /// compute stage limits | |
| u32 maxComputeSharedMemorySize /// max total storage size of work group local storage (bytes) | |
| u32[3] maxComputeWorkGroupCount /// max num of compute work groups that may be dispatched by a single command (x,y,z) | |
| u32 maxComputeWorkGroupInvocations /// max total compute invocations in a single local work group | |
| u32[3] maxComputeWorkGroupSize /// max local size of a compute work group (x,y,z) | |
| u32 subPixelPrecisionBits /// num bits of subpixel precision in screen x and y | |
| u32 subTexelPrecisionBits /// num bits of subtexel precision | |
| u32 mipmapPrecisionBits /// num bits of mipmap precision | |
| u32 maxDrawIndexedIndexValue /// max index value for indexed draw calls (for 32-bit indices) | |
| u32 maxDrawIndirectCount | |
| f32 maxSamplerLodBias /// max absolute sampler level of detail bias | |
| f32 maxSamplerAnisotropy /// max degree of sampler anisotropy | |
| u32 maxViewports /// max number of active viewports | |
| u32[2] maxViewportDimensions /// max viewport dimensions (x,y) | |
| f32[2] viewportBoundsRange /// viewport bounds range (min,max) | |
| u32 viewportSubPixelBits /// num bits of subpixel precision for viewport | |
| platform.size_t minMemoryMapAlignment /// min required alignment of pointers returned by MapMemory (bytes) | |
| VkDeviceSize minTexelBufferOffsetAlignment /// min required alignment for texel buffer offsets (bytes) | |
| VkDeviceSize minUniformBufferOffsetAlignment /// min required alignment for uniform buffer sizes and offsets (bytes) | |
| VkDeviceSize minStorageBufferOffsetAlignment /// min required alignment for storage buffer offsets (bytes) | |
| s32 minTexelOffset /// min texel offset for OpTextureSampleOffset | |
| u32 maxTexelOffset /// max texel offset for OpTextureSampleOffset | |
| s32 minTexelGatherOffset /// min texel offset for OpTextureGatherOffset | |
| u32 maxTexelGatherOffset /// max texel offset for OpTextureGatherOffset | |
| f32 minInterpolationOffset /// furthest negative offset for interpolateAtOffset | |
| f32 maxInterpolationOffset /// furthest positive offset for interpolateAtOffset | |
| u32 subPixelInterpolationOffsetBits /// num of subpixel bits for interpolateAtOffset | |
| u32 maxFramebufferWidth /// max width for a framebuffer | |
| u32 maxFramebufferHeight /// max height for a framebuffer | |
| u32 maxFramebufferLayers /// max layer count for a layered framebuffer | |
| VkSampleCountFlags framebufferColorSampleCounts | |
| VkSampleCountFlags framebufferDepthSampleCounts | |
| VkSampleCountFlags framebufferStencilSampleCounts | |
| VkSampleCountFlags framebufferNoAttachmentSampleCounts | |
| u32 maxColorAttachments /// max num of framebuffer color attachments | |
| VkSampleCountFlags sampledImageColorSampleCounts | |
| VkSampleCountFlags sampledImageIntegerSampleCounts | |
| VkSampleCountFlags sampledImageDepthSampleCounts | |
| VkSampleCountFlags sampledImageStencilSampleCounts | |
| VkSampleCountFlags storageImageSampleCounts | |
| u32 maxSampleMaskWords /// max num of sample mask words | |
| VkBool32 timestampComputeAndGraphics | |
| f32 timestampPeriod | |
| u32 maxClipDistances /// max number of clip distances | |
| u32 maxCullDistances /// max number of cull distances | |
| u32 maxCombinedClipAndCullDistances /// max combined number of user clipping | |
| u32 discreteQueuePriorities | |
| f32[2] pointSizeRange /// range (min,max) of supported point sizes | |
| f32[2] lineWidthRange /// range (min,max) of supported line widths | |
| f32 pointSizeGranularity /// granularity of supported point sizes | |
| f32 lineWidthGranularity /// granularity of supported line widths | |
| VkBool32 strictLines | |
| VkBool32 standardSampleLocations | |
| VkDeviceSize optimalBufferCopyOffsetAlignment | |
| VkDeviceSize optimalBufferCopyRowPitchAlignment | |
| VkDeviceSize nonCoherentAtomSize | |
| } | |
| class VkPhysicalDeviceSparseProperties { | |
| VkBool32 residencyStandard2DBlockShape /// Sparse resources support: GPU will access all 2D (single sample) sparse resources using the standard block shapes (based on pixel format) | |
| VkBool32 residencyStandard2DMultisampleBlockShape /// Sparse resources support: GPU will access all 2D (multisample) sparse resources using the standard block shapes (based on pixel format) | |
| VkBool32 residencyStandard3DBlockShape /// Sparse resources support: GPU will access all 3D sparse resources using the standard block shapes (based on pixel format) | |
| 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 | |
| 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 | |
| } | |
| class VkSemaphoreCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkSemaphoreCreateFlags flags /// Semaphore creation flags | |
| } | |
| class VkQueryPoolCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkQueryPoolCreateFlags flags | |
| VkQueryType queryType | |
| u32 queryCount | |
| VkQueryPipelineStatisticFlags pipelineStatistics /// Optional | |
| } | |
| class VkFramebufferCreateInfo { | |
| VkStructureType sType /// Must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO | |
| const void* pNext /// Pointer to next structure | |
| VkFramebufferCreateFlags flags | |
| VkRenderPass renderPass | |
| u32 attachmentCount | |
| const VkImageView* pAttachments | |
| u32 width | |
| u32 height | |
| u32 layers | |
| } | |
| class VkDrawIndirectCommand { | |
| u32 vertexCount | |
| u32 instanceCount | |
| u32 firstVertex | |
| u32 firstInstance | |
| } | |
| class VkDrawIndexedIndirectCommand { | |
| u32 indexCount | |
| u32 instanceCount | |
| u32 firstIndex | |
| s32 vertexOffset | |
| u32 firstInstance | |
| } | |
| class VkDispatchIndirectCommand { | |
| u32 x | |
| u32 y | |
| u32 z | |
| } | |
| class VkBaseOutStructure { | |
| VkStructureType sType | |
| void* pNext | |
| } | |
| class VkBaseInStructure { | |
| VkStructureType sType | |
| const void* pNext | |
| } | |
| //@vulkan1_1 structures | |
| class VkPhysicalDeviceSubgroupProperties { | |
| VkStructureType sType | |
| void* pNext | |
| u32 subgroupSize | |
| VkShaderStageFlags supportedStages | |
| VkSubgroupFeatureFlags supportedOperations | |
| VkBool32 quadOperationsInAllStages | |
| } | |
| class VkBindBufferMemoryInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBuffer buffer | |
| VkDeviceMemory memory | |
| VkDeviceSize memoryOffset | |
| } | |
| class VkBindImageMemoryInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImage image | |
| VkDeviceMemory memory | |
| VkDeviceSize memoryOffset | |
| } | |
| class VkPhysicalDevice16BitStorageFeatures { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 storageBuffer16BitAccess | |
| VkBool32 uniformAndStorageBuffer16BitAccess | |
| VkBool32 storagePushConstant16 | |
| VkBool32 storageInputOutput16 | |
| } | |
| class VkMemoryDedicatedRequirements { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 prefersDedicatedAllocation | |
| VkBool32 requiresDedicatedAllocation | |
| } | |
| class VkMemoryDedicatedAllocateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImage image | |
| VkBuffer buffer | |
| } | |
| class VkMemoryAllocateFlagsInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkMemoryAllocateFlags flags | |
| u32 deviceMask | |
| } | |
| class VkDeviceGroupRenderPassBeginInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 deviceMask | |
| u32 deviceRenderAreaCount | |
| const VkRect2D* pDeviceRenderAreas | |
| } | |
| class VkDeviceGroupCommandBufferBeginInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 deviceMask | |
| } | |
| class VkDeviceGroupSubmitInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 waitSemaphoreCount | |
| const u32* pWaitSemaphoreDeviceIndices | |
| u32 commandBufferCount | |
| const u32* pCommandBufferDeviceMasks | |
| u32 signalSemaphoreCount | |
| const u32* pSignalSemaphoreDeviceIndices | |
| } | |
| class VkDeviceGroupBindSparseInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 resourceDeviceIndex | |
| u32 memoryDeviceIndex | |
| } | |
| class VkBindBufferMemoryDeviceGroupInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 deviceIndexCount | |
| const u32* pDeviceIndices | |
| } | |
| class VkBindImageMemoryDeviceGroupInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 deviceIndexCount | |
| const u32* pDeviceIndices | |
| u32 splitInstanceBindRegionCount | |
| const VkRect2D* pSplitInstanceBindRegions | |
| } | |
| class VkPhysicalDeviceGroupProperties { | |
| VkStructureType sType | |
| void* pNext | |
| u32 physicalDeviceCount | |
| VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices | |
| VkBool32 subsetAllocation | |
| } | |
| class VkDeviceGroupDeviceCreateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 physicalDeviceCount | |
| const VkPhysicalDevice* pPhysicalDevices | |
| } | |
| class VkBufferMemoryRequirementsInfo2 { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBuffer buffer | |
| } | |
| class VkImageMemoryRequirementsInfo2 { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImage image | |
| } | |
| class VkImageSparseMemoryRequirementsInfo2 { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImage image | |
| } | |
| class VkMemoryRequirements2 { | |
| VkStructureType sType | |
| void* pNext | |
| VkMemoryRequirements memoryRequirements | |
| } | |
| class VkSparseImageMemoryRequirements2 { | |
| VkStructureType sType | |
| void* pNext | |
| VkSparseImageMemoryRequirements memoryRequirements | |
| } | |
| class VkPhysicalDeviceFeatures2 { | |
| VkStructureType sType | |
| void* pNext | |
| VkPhysicalDeviceFeatures features | |
| } | |
| class VkPhysicalDeviceProperties2 { | |
| VkStructureType sType | |
| void* pNext | |
| VkPhysicalDeviceProperties properties | |
| } | |
| class VkFormatProperties2 { | |
| VkStructureType sType | |
| void* pNext | |
| VkFormatProperties formatProperties | |
| } | |
| class VkImageFormatProperties2 { | |
| VkStructureType sType | |
| void* pNext | |
| VkImageFormatProperties imageFormatProperties | |
| } | |
| class VkPhysicalDeviceImageFormatInfo2 { | |
| VkStructureType sType | |
| const void* pNext | |
| VkFormat format | |
| VkImageType type | |
| VkImageTiling tiling | |
| VkImageUsageFlags usage | |
| VkImageCreateFlags flags | |
| } | |
| class VkQueueFamilyProperties2 { | |
| VkStructureType sType | |
| void* pNext | |
| VkQueueFamilyProperties queueFamilyProperties | |
| } | |
| class VkPhysicalDeviceMemoryProperties2 { | |
| VkStructureType sType | |
| void* pNext | |
| VkPhysicalDeviceMemoryProperties memoryProperties | |
| } | |
| class VkSparseImageFormatProperties2 { | |
| VkStructureType sType | |
| void* pNext | |
| VkSparseImageFormatProperties properties | |
| } | |
| class VkPhysicalDeviceSparseImageFormatInfo2 { | |
| VkStructureType sType | |
| const void* pNext | |
| VkFormat format | |
| VkImageType type | |
| VkSampleCountFlagBits samples | |
| VkImageUsageFlags usage | |
| VkImageTiling tiling | |
| } | |
| class VkPhysicalDevicePointClippingProperties { | |
| VkStructureType sType | |
| void* pNext | |
| VkPointClippingBehavior pointClippingBehavior | |
| } | |
| class VkInputAttachmentAspectReference { | |
| u32 subpass | |
| u32 inputAttachmentIndex | |
| VkImageAspectFlags aspectMask | |
| } | |
| class VkRenderPassInputAttachmentAspectCreateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 aspectReferenceCount | |
| const VkInputAttachmentAspectReference* pAspectReferences | |
| } | |
| class VkImageViewUsageCreateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImageUsageFlags usage | |
| } | |
| class VkPipelineTessellationDomainOriginStateCreateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkTessellationDomainOrigin domainOrigin | |
| } | |
| class VkRenderPassMultiviewCreateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 subpassCount | |
| const u32* pViewMasks | |
| u32 dependencyCount | |
| const s32* pViewOffsets | |
| u32 correlationMaskCount | |
| const u32* pCorrelationMasks | |
| } | |
| class VkPhysicalDeviceMultiviewFeatures { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 multiview | |
| VkBool32 multiviewGeometryShader | |
| VkBool32 multiviewTessellationShader | |
| } | |
| class VkPhysicalDeviceMultiviewProperties { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxMultiviewViewCount | |
| u32 maxMultiviewInstanceIndex | |
| } | |
| class VkPhysicalDeviceVariablePointerFeatures { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 variablePointersStorageBuffer | |
| VkBool32 variablePointers | |
| } | |
| class VkPhysicalDeviceProtectedMemoryFeatures { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 protectedMemory | |
| } | |
| class VkPhysicalDeviceProtectedMemoryProperties { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 protectedNoFault | |
| } | |
| class VkDeviceQueueInfo2 { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDeviceQueueCreateFlags flags | |
| u32 queueFamilyIndex | |
| u32 queueIndex | |
| } | |
| class VkProtectedSubmitInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBool32 protectedSubmit | |
| } | |
| class VkSamplerYcbcrConversionCreateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkFormat format | |
| VkSamplerYcbcrModelConversion ycbcrModel | |
| VkSamplerYcbcrRange ycbcrRange | |
| VkComponentMapping components | |
| VkChromaLocation xChromaOffset | |
| VkChromaLocation yChromaOffset | |
| VkFilter chromaFilter | |
| VkBool32 forceExplicitReconstruction | |
| } | |
| class VkSamplerYcbcrConversionInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSamplerYcbcrConversion conversion | |
| } | |
| class VkBindImagePlaneMemoryInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImageAspectFlagBits planeAspect | |
| } | |
| class VkImagePlaneMemoryRequirementsInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImageAspectFlagBits planeAspect | |
| } | |
| class VkPhysicalDeviceSamplerYcbcrConversionFeatures { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 samplerYcbcrConversion | |
| } | |
| class VkSamplerYcbcrConversionImageFormatProperties { | |
| VkStructureType sType | |
| void* pNext | |
| u32 combinedImageSamplerDescriptorCount | |
| } | |
| class VkDescriptorUpdateTemplateEntry { | |
| u32 dstBinding | |
| u32 dstArrayElement | |
| u32 descriptorCount | |
| VkDescriptorType descriptorType | |
| platform.size_t offset | |
| platform.size_t stride | |
| } | |
| class VkDescriptorUpdateTemplateCreateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDescriptorUpdateTemplateCreateFlags flags | |
| u32 descriptorUpdateEntryCount | |
| const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries | |
| VkDescriptorUpdateTemplateType templateType | |
| VkDescriptorSetLayout descriptorSetLayout | |
| VkPipelineBindPoint pipelineBindPoint | |
| VkPipelineLayout pipelineLayout | |
| u32 set | |
| } | |
| class VkExternalMemoryProperties { | |
| VkExternalMemoryFeatureFlags externalMemoryFeatures | |
| VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes | |
| VkExternalMemoryHandleTypeFlags compatibleHandleTypes | |
| } | |
| class VkPhysicalDeviceExternalImageFormatInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlagBits handleType | |
| } | |
| class VkExternalImageFormatProperties { | |
| VkStructureType sType | |
| void* pNext | |
| VkExternalMemoryProperties externalMemoryProperties | |
| } | |
| class VkPhysicalDeviceExternalBufferInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBufferCreateFlags flags | |
| VkBufferUsageFlags usage | |
| VkExternalMemoryHandleTypeFlagBits handleType | |
| } | |
| class VkExternalBufferProperties { | |
| VkStructureType sType | |
| void* pNext | |
| VkExternalMemoryProperties externalMemoryProperties | |
| } | |
| class VkPhysicalDeviceIDProperties { | |
| VkStructureType sType | |
| void* pNext | |
| u8[VK_UUID_SIZE] deviceUUID | |
| u8[VK_UUID_SIZE] driverUUID | |
| u8[VK_LUID_SIZE] deviceLUID | |
| u32 deviceNodeMask | |
| VkBool32 deviceLUIDValid | |
| } | |
| class VkExternalMemoryImageCreateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlags handleTypes | |
| } | |
| class VkExternalMemoryBufferCreateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlags handleTypes | |
| } | |
| class VkExportMemoryAllocateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlags handleTypes | |
| } | |
| class VkPhysicalDeviceExternalFenceInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalFenceHandleTypeFlagBits handleType | |
| } | |
| class VkExternalFenceProperties { | |
| VkStructureType sType | |
| void* pNext | |
| VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes | |
| VkExternalFenceHandleTypeFlags compatibleHandleTypes | |
| VkExternalFenceFeatureFlags externalFenceFeatures | |
| } | |
| class VkExportFenceCreateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalFenceHandleTypeFlags handleTypes | |
| } | |
| class VkExportSemaphoreCreateInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalSemaphoreHandleTypeFlags handleTypes | |
| } | |
| class VkPhysicalDeviceExternalSemaphoreInfo { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalSemaphoreHandleTypeFlagBits handleType | |
| } | |
| class VkExternalSemaphoreProperties { | |
| VkStructureType sType | |
| void* pNext | |
| VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes | |
| VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes | |
| VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures | |
| } | |
| class VkPhysicalDeviceMaintenance3Properties { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxPerSetDescriptors | |
| VkDeviceSize maxMemoryAllocationSize | |
| } | |
| class VkDescriptorSetLayoutSupport { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 supported | |
| } | |
| class VkPhysicalDeviceShaderDrawParameterFeatures { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 shaderDrawParameters | |
| } | |
| @extension("VK_KHR_surface") // 1 | |
| class VkSurfaceCapabilitiesKHR { | |
| u32 minImageCount | |
| u32 maxImageCount | |
| VkExtent2D currentExtent | |
| VkExtent2D minImageExtent | |
| VkExtent2D maxImageExtent | |
| u32 maxImageArrayLayers | |
| VkSurfaceTransformFlagsKHR supportedTransforms | |
| VkSurfaceTransformFlagBitsKHR currentTransform | |
| VkCompositeAlphaFlagsKHR supportedCompositeAlpha | |
| VkImageUsageFlags supportedUsageFlags | |
| } | |
| @extension("VK_KHR_surface") // 1 | |
| class VkSurfaceFormatKHR { | |
| VkFormat format | |
| VkColorSpaceKHR colorSpace | |
| } | |
| @extension("VK_KHR_swapchain") // 2 | |
| class VkSwapchainCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSwapchainCreateFlagsKHR flags | |
| VkSurfaceKHR surface | |
| u32 minImageCount | |
| VkFormat imageFormat | |
| VkColorSpaceKHR imageColorSpace | |
| VkExtent2D imageExtent | |
| u32 imageArrayLayers | |
| VkImageUsageFlags imageUsage | |
| VkSharingMode sharingMode | |
| u32 queueFamilyIndexCount | |
| const u32* pQueueFamilyIndices | |
| VkSurfaceTransformFlagBitsKHR preTransform | |
| VkCompositeAlphaFlagBitsKHR compositeAlpha | |
| VkPresentModeKHR presentMode | |
| VkBool32 clipped | |
| VkSwapchainKHR oldSwapchain | |
| } | |
| @extension("VK_KHR_swapchain") // 2 | |
| class VkPresentInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 waitSemaphoreCount | |
| const VkSemaphore* pWaitSemaphores | |
| u32 swapchainCount | |
| const VkSwapchainKHR* pSwapchains | |
| const u32* pImageIndices | |
| VkResult* pResults | |
| } | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| class VkImageSwapchainCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSwapchainKHR swapchain | |
| } | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| class VkBindImageMemorySwapchainInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSwapchainKHR swapchain | |
| u32 imageIndex | |
| } | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| class VkAcquireNextImageInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSwapchainKHR swapchain | |
| u64 timeout | |
| VkSemaphore semaphore | |
| VkFence fence | |
| u32 deviceMask | |
| } | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| class VkDeviceGroupPresentCapabilitiesKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32[VK_MAX_DEVICE_GROUP_SIZE] presentMask | |
| VkDeviceGroupPresentModeFlagsKHR modes | |
| } | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| class VkDeviceGroupPresentInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 swapchainCount | |
| const u32* pDeviceMasks | |
| VkDeviceGroupPresentModeFlagBitsKHR mode | |
| } | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| class VkDeviceGroupSwapchainCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDeviceGroupPresentModeFlagsKHR modes | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| class VkDisplayPropertiesKHR { | |
| VkDisplayKHR display | |
| const char* displayName | |
| VkExtent2D physicalDimensions | |
| VkExtent2D physicalResolution | |
| VkSurfaceTransformFlagsKHR supportedTransforms | |
| VkBool32 planeReorderPossible | |
| VkBool32 persistentContent | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| class VkDisplayModeParametersKHR { | |
| VkExtent2D visibleRegion | |
| u32 refreshRate | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| class VkDisplayModePropertiesKHR { | |
| VkDisplayModeKHR displayMode | |
| VkDisplayModeParametersKHR parameters | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| class VkDisplayModeCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDisplayModeCreateFlagsKHR flags | |
| VkDisplayModeParametersKHR parameters | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| class VkDisplayPlanePropertiesKHR { | |
| VkDisplayKHR currentDisplay | |
| u32 currentStackIndex | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| class VkDisplayPlaneCapabilitiesKHR { | |
| VkDisplayPlaneAlphaFlagsKHR supportedAlpha | |
| VkOffset2D minSrcPosition | |
| VkOffset2D maxSrcPosition | |
| VkExtent2D minSrcExtent | |
| VkExtent2D maxSrcExtent | |
| VkOffset2D minDstPosition | |
| VkOffset2D maxDstPosition | |
| VkExtent2D minDstExtent | |
| VkExtent2D maxDstExtent | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| class VkDisplaySurfaceCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDisplaySurfaceCreateFlagsKHR flags | |
| VkDisplayModeKHR displayMode | |
| u32 planeIndex | |
| u32 planeStackIndex | |
| VkSurfaceTransformFlagBitsKHR transform | |
| f32 globalAlpha | |
| VkDisplayPlaneAlphaFlagBitsKHR alphaMode | |
| VkExtent2D imageExtent | |
| } | |
| @extension("VK_KHR_display_swapchain") // 4 | |
| class VkDisplayPresentInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkRect2D srcRect | |
| VkRect2D dstRect | |
| VkBool32 persistent | |
| } | |
| @extension("VK_KHR_xlib_surface") // 5 | |
| class VkXlibSurfaceCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkXlibSurfaceCreateFlagsKHR flags | |
| platform.Display* dpy | |
| platform.Window window | |
| } | |
| @extension("VK_KHR_xcb_surface") // 6 | |
| class VkXcbSurfaceCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkXcbSurfaceCreateFlagsKHR flags | |
| platform.xcb_connection_t* connection | |
| platform.xcb_window_t window | |
| } | |
| @extension("VK_KHR_wayland_surface") // 7 | |
| class VkWaylandSurfaceCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkWaylandSurfaceCreateFlagsKHR flags | |
| platform.wl_display* display | |
| platform.wl_surface* surface | |
| } | |
| @extension("VK_KHR_android_surface") // 9 | |
| class VkAndroidSurfaceCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkAndroidSurfaceCreateFlagsKHR flags | |
| platform.ANativeWindow* window | |
| } | |
| @extension("VK_KHR_win32_surface") // 10 | |
| class VkWin32SurfaceCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkWin32SurfaceCreateFlagsKHR flags | |
| platform.HINSTANCE hinstance | |
| platform.HWND hwnd | |
| } | |
| @extension("VK_ANDROID_native_buffer") // 11 | |
| @internal class Gralloc1Usage { | |
| u64 consumer | |
| u64 producer | |
| } | |
| @extension("VK_ANDROID_native_buffer") // 11 | |
| class VkNativeBufferANDROID { | |
| VkStructureType sType | |
| const void* pNext | |
| platform.buffer_handle_t handle | |
| s32 stride | |
| s32 format | |
| s32 usage | |
| Gralloc1Usage usage2 | |
| } | |
| @extension("VK_ANDROID_native_buffer") // 11 | |
| class VkSwapchainImageCreateInfoANDROID { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSwapchainImageUsageFlagsANDROID flags | |
| } | |
| @extension("VK_ANDROID_native_buffer") // 11 | |
| class VkPhysicalDevicePresentationPropertiesANDROID { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 sharedImage | |
| } | |
| @extension("VK_EXT_debug_report") // 12 | |
| class VkDebugReportCallbackCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDebugReportFlagsEXT flags | |
| PFN_vkDebugReportCallbackEXT pfnCallback | |
| void* pUserData | |
| } | |
| @extension("VK_AMD_rasterization_order") // 19 | |
| class VkPipelineRasterizationStateRasterizationOrderAMD { | |
| VkStructureType sType | |
| const void* pNext | |
| VkRasterizationOrderAMD rasterizationOrder | |
| } | |
| @extension("VK_EXT_debug_marker") // 23 | |
| class VkDebugMarkerObjectNameInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDebugReportObjectTypeEXT objectType | |
| u64 object | |
| const char* pObjectName | |
| } | |
| @extension("VK_EXT_debug_marker") // 23 | |
| class VkDebugMarkerObjectTagInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDebugReportObjectTypeEXT objectType | |
| u64 object | |
| u64 tagName | |
| platform.size_t tagSize | |
| const void* pTag | |
| } | |
| @extension("VK_EXT_debug_marker") // 23 | |
| class VkDebugMarkerMarkerInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| const char* pMarkerName | |
| f32[4] color | |
| } | |
| @extension("VK_NV_dedicated_allocation") // 27 | |
| class VkDedicatedAllocationImageCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBool32 dedicatedAllocation | |
| } | |
| @extension("VK_NV_dedicated_allocation") // 27 | |
| class VkDedicatedAllocationBufferCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBool32 dedicatedAllocation | |
| } | |
| @extension("VK_NV_dedicated_allocation") // 27 | |
| class VkDedicatedAllocationMemoryAllocateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImage image | |
| VkBuffer buffer | |
| } | |
| @extension("VK_EXT_transform_feedback") // 29 | |
| class VkPhysicalDeviceTransformFeedbackFeaturesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 transformFeedback | |
| VkBool32 geometryStreams | |
| } | |
| @extension("VK_EXT_transform_feedback") // 29 | |
| class VkPhysicalDeviceTransformFeedbackPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxTransformFeedbackStreams | |
| u32 maxTransformFeedbackBuffers | |
| VkDeviceSize maxTransformFeedbackBufferSize | |
| u32 maxTransformFeedbackStreamDataSize | |
| u32 maxTransformFeedbackBufferDataSize | |
| u32 maxTransformFeedbackBufferDataStride | |
| VkBool32 transformFeedbackQueries | |
| VkBool32 transformFeedbackStreamsLinesTriangles | |
| VkBool32 transformFeedbackRasterizationStreamSelect | |
| VkBool32 transformFeedbackDraw | |
| } | |
| @extension("VK_EXT_transform_feedback") // 29 | |
| class VkPipelineRasterizationStateStreamCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkPipelineRasterizationStateStreamCreateFlagsEXT flags | |
| u32 rasterizationStream | |
| } | |
| @extension("VK_AMD_texture_gather_bias_lod") // 42 | |
| class VkTextureLODGatherFormatPropertiesAMD { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 supportsTextureGatherLODBiasAMD | |
| } | |
| @extension("VK_AMD_shader_info") // 43 | |
| class VkShaderResourceUsageAMD { | |
| u32 numUsedVgprs | |
| u32 numUsedSgprs | |
| u32 ldsSizePerLocalWorkGroup | |
| platform.size_t ldsUsageSizeInBytes | |
| platform.size_t scratchMemUsageInBytes | |
| } | |
| @extension("VK_AMD_shader_info") // 43 | |
| class VkShaderStatisticsInfoAMD { | |
| VkShaderStageFlags shaderStageMask | |
| VkShaderResourceUsageAMD resourceUsage | |
| u32 numPhysicalVgprs | |
| u32 numPhysicalSgprs | |
| u32 numAvailableVgprs | |
| u32 numAvailableSgprs | |
| u32[3] computeWorkGroupSize | |
| } | |
| @extension("VK_NV_corner_sampled_image") // 51 | |
| class VkPhysicalDeviceCornerSampledImageFeaturesNV { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 cornerSampledImage | |
| } | |
| @extension("VK_KHR_multiview") // 54 | |
| class VkRenderPassMultiviewCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 subpassCount | |
| const u32* pViewMasks | |
| u32 dependencyCount | |
| const s32* pViewOffsets | |
| u32 correlationMaskCount | |
| const u32* pCorrelationMasks | |
| } | |
| @extension("VK_KHR_multiview") // 54 | |
| class VkPhysicalDeviceMultiviewFeaturesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 multiview | |
| VkBool32 multiviewGeometryShader | |
| VkBool32 multiviewTessellationShader | |
| } | |
| @extension("VK_KHR_multiview") // 54 | |
| class VkPhysicalDeviceMultiviewPropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxMultiviewViewCount | |
| u32 maxMultiviewInstanceIndex | |
| } | |
| @extension("VK_NV_external_memory_capabilities") // 56 | |
| class VkExternalImageFormatPropertiesNV { | |
| VkImageFormatProperties imageFormatProperties | |
| VkExternalMemoryFeatureFlagsNV externalMemoryFeatures | |
| VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes | |
| VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes | |
| } | |
| @extension("VK_NV_external_memory") // 57 | |
| class VkExternalMemoryImageCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlagsNV handleTypes | |
| } | |
| @extension("VK_NV_external_memory") // 57 | |
| class VkExportMemoryAllocateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlagsNV handleTypes | |
| } | |
| @extension("VK_NV_external_memory_win32") // 58 | |
| class VkImportMemoryWin32HandleInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlagsNV handleType | |
| platform.HANDLE handle | |
| } | |
| @extension("VK_NV_external_memory_win32") // 58 | |
| class VkExportMemoryWin32HandleInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| const platform.SECURITY_ATTRIBUTES* pAttributes | |
| platform.DWORD dwAccess | |
| } | |
| @extension("VK_NV_win32_keyed_mutex") // 59 | |
| class VkWin32KeyedMutexAcquireReleaseInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 acquireCount | |
| const VkDeviceMemory* pAcquireSyncs | |
| const u64* pAcquireKeys | |
| const u32* pAcquireTimeoutMilliseconds | |
| u32 releaseCount | |
| const VkDeviceMemory* pReleaseSyncs | |
| const u64* pReleaseKeys | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| class VkPhysicalDeviceFeatures2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkPhysicalDeviceFeatures features | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| class VkPhysicalDeviceProperties2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkPhysicalDeviceProperties properties | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| class VkFormatProperties2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkFormatProperties formatProperties | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| class VkImageFormatProperties2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkImageFormatProperties imageFormatProperties | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| class VkPhysicalDeviceImageFormatInfo2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkFormat format | |
| VkImageType type | |
| VkImageTiling tiling | |
| VkImageUsageFlags usage | |
| VkImageCreateFlags flags | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| class VkQueueFamilyProperties2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkQueueFamilyProperties queueFamilyProperties | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| class VkPhysicalDeviceMemoryProperties2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkPhysicalDeviceMemoryProperties memoryProperties | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| class VkSparseImageFormatProperties2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkSparseImageFormatProperties properties | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| class VkPhysicalDeviceSparseImageFormatInfo2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkFormat format | |
| VkImageType type | |
| VkSampleCountFlagBits samples | |
| VkImageUsageFlags usage | |
| VkImageTiling tiling | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| class VkMemoryAllocateFlagsInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkMemoryAllocateFlagsKHR flags | |
| u32 deviceMask | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| class VkBindBufferMemoryDeviceGroupInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 deviceIndexCount | |
| const u32* pDeviceIndices | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| class VkBindImageMemoryDeviceGroupInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 deviceIndexCount | |
| const u32* pDeviceIndices | |
| u32 SFRRectCount | |
| const VkRect2D* pSFRRects | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| class VkDeviceGroupRenderPassBeginInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 deviceMask | |
| u32 deviceRenderAreaCount | |
| const VkRect2D* pDeviceRenderAreas | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| class VkDeviceGroupCommandBufferBeginInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 deviceMask | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| class VkDeviceGroupSubmitInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 waitSemaphoreCount | |
| const u32* pWaitSemaphoreDeviceIndices | |
| u32 commandBufferCount | |
| const u32* pCommandBufferDeviceMasks | |
| u32 signalSemaphoreCount | |
| const u32* pSignalSemaphoreDeviceIndices | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| class VkDeviceGroupBindSparseInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 resourceDeviceIndex | |
| u32 memoryDeviceIndex | |
| } | |
| @extension("VK_EXT_validation_flags") // 62 | |
| class VkValidationFlagsEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 disabledValidationCheckCount | |
| const VkValidationCheckEXT* pDisabledValidationChecks | |
| } | |
| @extension("VK_NN_vi_surface") // 63 | |
| class VkViSurfaceCreateInfoNN { | |
| VkStructureType sType | |
| const void* pNext | |
| VkViSurfaceCreateFlagsNN flags | |
| void* window | |
| } | |
| @extension("VK_EXT_astc_decode_mode") // 68 | |
| class VkImageViewASTCDecodeModeEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkFormat decodeMode | |
| } | |
| @extension("VK_EXT_astc_decode_mode") // 68 | |
| class VkPhysicalDeviceASTCDecodeFeaturesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 decodeModeSharedExponent | |
| } | |
| @extension("VK_KHR_device_group_creation") // 71 | |
| class VkPhysicalDeviceGroupPropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| u32 physicalDeviceCount | |
| VkPhysicalDevice[VK_MAX_DEVICE_GROUP_SIZE] physicalDevices | |
| VkBool32 subsetAllocation | |
| } | |
| @extension("VK_KHR_device_group_creation") // 71 | |
| class VkDeviceGroupDeviceCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 physicalDeviceCount | |
| const VkPhysicalDevice* pPhysicalDevices | |
| } | |
| @extension("VK_KHR_external_memory_capabilities") // 72 | |
| class VkExternalMemoryPropertiesKHR { | |
| VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures | |
| VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes | |
| VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes | |
| } | |
| @extension("VK_KHR_external_memory_capabilities") // 72 | |
| class VkPhysicalDeviceExternalImageFormatInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlagBitsKHR handleType | |
| } | |
| @extension("VK_KHR_external_memory_capabilities") // 72 | |
| class VkExternalImageFormatPropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkExternalMemoryPropertiesKHR externalMemoryProperties | |
| } | |
| @extension("VK_KHR_external_memory_capabilities") // 72 | |
| class VkPhysicalDeviceExternalBufferInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBufferCreateFlags flags | |
| VkBufferUsageFlags usage | |
| VkExternalMemoryHandleTypeFlagBitsKHR handleType | |
| } | |
| @extension("VK_KHR_external_memory_capabilities") // 72 | |
| class VkExternalBufferPropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkExternalMemoryPropertiesKHR externalMemoryProperties | |
| } | |
| @extension("VK_KHR_external_memory_capabilities") // 72 | |
| class VkPhysicalDeviceIDPropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| u8[VK_UUID_SIZE] deviceUUID | |
| u8[VK_UUID_SIZE] driverUUID | |
| u8[VK_LUID_SIZE] deviceLUID | |
| u32 deviceNodeMask | |
| VkBool32 deviceLUIDValid | |
| } | |
| @extension("VK_KHR_external_memory") // 73 | |
| class VkExternalMemoryImageCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlagsKHR handleTypes | |
| } | |
| @extension("VK_KHR_external_memory") // 73 | |
| class VkExternalMemoryBufferCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlagsKHR handleTypes | |
| } | |
| @extension("VK_KHR_external_memory") // 73 | |
| class VkExportMemoryAllocateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlagsKHR handleTypes | |
| } | |
| @extension("VK_KHR_external_memory_win32") // 74 | |
| class VkImportMemoryWin32HandleInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlagBitsKHR handleType | |
| platform.HANDLE handle | |
| platform.LPCWSTR name | |
| } | |
| @extension("VK_KHR_external_memory_win32") // 74 | |
| class VkExportMemoryWin32HandleInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| const platform.SECURITY_ATTRIBUTES* pAttributes | |
| platform.DWORD dwAccess | |
| platform.LPCWSTR name | |
| } | |
| @extension("VK_KHR_external_memory_win32") // 74 | |
| class VkMemoryWin32HandlePropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| u32 memoryTypeBits | |
| } | |
| @extension("VK_KHR_external_memory_win32") // 74 | |
| class VkMemoryGetWin32HandleInfoKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkDeviceMemory memory | |
| VkExternalMemoryHandleTypeFlagBitsKHR handleType | |
| } | |
| @extension("VK_KHR_external_memory_fd") // 75 | |
| class VkImportMemoryFdInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlagBitsKHR handleType | |
| int fd | |
| } | |
| @extension("VK_KHR_external_memory_fd") // 75 | |
| class VkMemoryFdPropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| u32 memoryTypeBits | |
| } | |
| @extension("VK_KHR_external_memory_fd") // 75 | |
| class VkMemoryGetFdInfoKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkDeviceMemory memory | |
| VkExternalMemoryHandleTypeFlagBitsKHR handleType | |
| } | |
| @extension("VK_KHR_win32_keyed_mutex") // 76 | |
| class VkWin32KeyedMutexAcquireReleaseInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 acquireCount | |
| const VkDeviceMemory* pAcquireSyncs | |
| const u64* pAcquireKeys | |
| const u32* pAcquireTimeouts | |
| u32 releaseCount | |
| const VkDeviceMemory* pReleaseSyncs | |
| const u64* pReleaseKeys | |
| } | |
| @extension("VK_KHR_external_semaphore_capabilities") // 77 | |
| class VkPhysicalDeviceExternalSemaphoreInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalSemaphoreHandleTypeFlagBitsKHR handleType | |
| } | |
| @extension("VK_KHR_external_semaphore_capabilities") // 77 | |
| class VkExternalSemaphorePropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes | |
| VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes | |
| VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures | |
| } | |
| @extension("VK_KHR_external_semaphore") // 78 | |
| class VkExportSemaphoreCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalSemaphoreHandleTypeFlagsKHR handleTypes | |
| } | |
| @extension("VK_KHR_external_semaphore_win32") // 79 | |
| class VkImportSemaphoreWin32HandleInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSemaphore semaphore | |
| VkSemaphoreImportFlagsKHR flags | |
| VkExternalSemaphoreHandleTypeFlagsKHR handleType | |
| platform.HANDLE handle | |
| platform.LPCWSTR name | |
| } | |
| @extension("VK_KHR_external_semaphore_win32") // 79 | |
| class VkExportSemaphoreWin32HandleInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| const platform.SECURITY_ATTRIBUTES* pAttributes | |
| platform.DWORD dwAccess | |
| platform.LPCWSTR name | |
| } | |
| @extension("VK_KHR_external_semaphore_win32") // 79 | |
| class VkD3D12FenceSubmitInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 waitSemaphoreValuesCount | |
| const u64* pWaitSemaphoreValues | |
| u32 signalSemaphoreValuesCount | |
| const u64* pSignalSemaphoreValues | |
| } | |
| @extension("VK_KHR_external_semaphore_win32") // 79 | |
| class VkSemaphoreGetWin32HandleInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSemaphore semaphore | |
| VkExternalSemaphoreHandleTypeFlagBitsKHR handleType | |
| } | |
| @extension("VK_KHR_external_semaphore_fd") // 80 | |
| class VkImportSemaphoreFdInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSemaphore semaphore | |
| VkSemaphoreImportFlagsKHR flags | |
| VkExternalSemaphoreHandleTypeFlagBitsKHR handleType | |
| s32 fd | |
| } | |
| @extension("VK_KHR_external_semaphore_fd") // 80 | |
| class VkSemaphoreGetFdInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSemaphore semaphore | |
| VkExternalSemaphoreHandleTypeFlagBitsKHR handleType | |
| } | |
| @extension("VK_KHR_push_descriptor") // 81 | |
| class VkPhysicalDevicePushDescriptorPropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxPushDescriptors | |
| } | |
| @extension("VK_EXT_conditional_rendering") // 82 | |
| class VkConditionalRenderingBeginInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBuffer buffer | |
| VkDeviceSize offset | |
| VkConditionalRenderingFlagsEXT flags | |
| } | |
| @extension("VK_EXT_conditional_rendering") // 82 | |
| class VkPhysicalDeviceConditionalRenderingFeaturesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 conditionalRendering | |
| VkBool32 inheritedConditionalRendering | |
| } | |
| @extension("VK_EXT_conditional_rendering") // 82 | |
| class VkCommandBufferInheritanceConditionalRenderingInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBool32 conditionalRenderingEnable | |
| } | |
| @extension("VK_KHR_shader_float16_int8") // 83 | |
| class VkPhysicalDeviceFloat16Int8FeaturesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 shaderFloat16 | |
| VkBool32 shaderInt8 | |
| } | |
| @extension("VK_KHR_16bit_storage") // 84 | |
| class VkPhysicalDevice16BitStorageFeaturesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 storageBuffer16BitAccess | |
| VkBool32 uniformAndStorageBuffer16BitAccess | |
| VkBool32 storagePushConstant16 | |
| VkBool32 storageInputOutput16 | |
| } | |
| @extension("VK_KHR_incremental_present") // 85 | |
| class VkRectLayerKHR { | |
| VkOffset2D offset | |
| VkExtent2D extent | |
| u32 layer | |
| } | |
| @extension("VK_KHR_incremental_present") // 85 | |
| class VkPresentRegionKHR { | |
| u32 rectangleCount | |
| const VkRectLayerKHR* pRectangles | |
| } | |
| @extension("VK_KHR_incremental_present") // 85 | |
| class VkPresentRegionsKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 swapchainCount | |
| const VkPresentRegionKHR* pRegions | |
| } | |
| @extension("VK_KHR_descriptor_update_template") // 86 | |
| class VkDescriptorUpdateTemplateEntryKHR { | |
| u32 dstBinding | |
| u32 dstArrayElement | |
| u32 descriptorCount | |
| VkDescriptorType descriptorType | |
| platform.size_t offset | |
| platform.size_t stride | |
| } | |
| @extension("VK_KHR_descriptor_update_template") // 86 | |
| class VkDescriptorUpdateTemplateCreateInfoKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkDescriptorUpdateTemplateCreateFlagsKHR flags | |
| u32 descriptorUpdateEntryCount | |
| const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries | |
| VkDescriptorUpdateTemplateTypeKHR templateType | |
| VkDescriptorSetLayout descriptorSetLayout | |
| VkPipelineBindPoint pipelineBindPoint | |
| VkPipelineLayout pipelineLayout | |
| u32 set | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkDeviceGeneratedCommandsFeaturesNVX { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBool32 computeBindingPointSupport | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkDeviceGeneratedCommandsLimitsNVX { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 maxIndirectCommandsLayoutTokenCount | |
| u32 maxObjectEntryCounts | |
| u32 minSequenceCountBufferOffsetAlignment | |
| u32 minSequenceIndexBufferOffsetAlignment | |
| u32 minCommandsTokenBufferOffsetAlignment | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkIndirectCommandsTokenNVX { | |
| VkIndirectCommandsTokenTypeNVX tokenType | |
| VkBuffer buffer | |
| VkDeviceSize offset | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkIndirectCommandsLayoutTokenNVX { | |
| VkIndirectCommandsTokenTypeNVX tokenType | |
| u32 bindingUnit | |
| u32 dynamicCount | |
| u32 divisor | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkIndirectCommandsLayoutCreateInfoNVX { | |
| VkStructureType sType | |
| const void* pNext | |
| VkPipelineBindPoint pipelineBindPoint | |
| VkIndirectCommandsLayoutUsageFlagsNVX flags | |
| u32 tokenCount | |
| const VkIndirectCommandsLayoutTokenNVX* pTokens | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkCmdProcessCommandsInfoNVX { | |
| VkStructureType sType | |
| const void* pNext | |
| VkObjectTableNVX objectTable | |
| VkIndirectCommandsLayoutNVX indirectCommandsLayout | |
| u32 indirectCommandsTokenCount | |
| const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens | |
| u32 maxSequencesCount | |
| VkCommandBuffer targetCommandBuffer | |
| VkBuffer sequencesCountBuffer | |
| VkDeviceSize sequencesCountOffset | |
| VkBuffer sequencesIndexBuffer | |
| VkDeviceSize sequencesIndexOffset | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkCmdReserveSpaceForCommandsInfoNVX { | |
| VkStructureType sType | |
| const void* pNext | |
| VkObjectTableNVX objectTable | |
| VkIndirectCommandsLayoutNVX indirectCommandsLayout | |
| u32 maxSequencesCount | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkObjectTableCreateInfoNVX { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 objectCount | |
| const VkObjectEntryTypeNVX* pObjectEntryTypes | |
| const u32* pObjectEntryCounts | |
| const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags | |
| u32 maxUniformBuffersPerDescriptor | |
| u32 maxStorageBuffersPerDescriptor | |
| u32 maxStorageImagesPerDescriptor | |
| u32 maxSampledImagesPerDescriptor | |
| u32 maxPipelineLayouts | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkObjectTableEntryNVX { | |
| VkObjectEntryTypeNVX type | |
| VkObjectEntryUsageFlagsNVX flags | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkObjectTablePipelineEntryNVX { | |
| VkObjectEntryTypeNVX type | |
| VkObjectEntryUsageFlagsNVX flags | |
| VkPipeline pipeline | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkObjectTableDescriptorSetEntryNVX { | |
| VkObjectEntryTypeNVX type | |
| VkObjectEntryUsageFlagsNVX flags | |
| VkPipelineLayout pipelineLayout | |
| VkDescriptorSet descriptorSet | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkObjectTableVertexBufferEntryNVX { | |
| VkObjectEntryTypeNVX type | |
| VkObjectEntryUsageFlagsNVX flags | |
| VkBuffer buffer | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkObjectTableIndexBufferEntryNVX { | |
| VkObjectEntryTypeNVX type | |
| VkObjectEntryUsageFlagsNVX flags | |
| VkBuffer buffer | |
| VkIndexType indexType | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| class VkObjectTablePushConstantEntryNVX { | |
| VkObjectEntryTypeNVX type | |
| VkObjectEntryUsageFlagsNVX flags | |
| VkPipelineLayout pipelineLayout | |
| VkShaderStageFlags stageFlags | |
| } | |
| @extension("VK_NV_clip_space_w_scaling") // 88 | |
| class VkViewportWScalingNV { | |
| f32 xcoeff | |
| f32 ycoeff | |
| } | |
| @extension("VK_NV_clip_space_w_scaling") // 88 | |
| class VkPipelineViewportWScalingStateCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBool32 viewportWScalingEnable | |
| u32 viewportCount | |
| const VkViewportWScalingNV* pViewportWScalings | |
| } | |
| @extension("VK_EXT_display_surface_counter") // 91 | |
| class VkSurfaceCapabilities2EXT { | |
| VkStructureType sType | |
| void* pNext | |
| u32 minImageCount | |
| u32 maxImageCount | |
| VkExtent2D currentExtent | |
| VkExtent2D minImageExtent | |
| VkExtent2D maxImageExtent | |
| u32 maxImageArrayLayers | |
| VkSurfaceTransformFlagsKHR supportedTransforms | |
| VkSurfaceTransformFlagBitsKHR currentTransform | |
| VkCompositeAlphaFlagsKHR supportedCompositeAlpha | |
| VkImageUsageFlags supportedUsageFlags | |
| VkSurfaceCounterFlagsEXT supportedSurfaceCounters | |
| } | |
| @extension("VK_EXT_display_control") // 92 | |
| class VkDisplayPowerInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDisplayPowerStateEXT powerState | |
| } | |
| @extension("VK_EXT_display_control") // 92 | |
| class VkDeviceEventInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDeviceEventTypeEXT deviceEvent | |
| } | |
| @extension("VK_EXT_display_control") // 92 | |
| class VkDisplayEventInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDisplayEventTypeEXT displayEvent | |
| } | |
| @extension("VK_EXT_display_control") // 92 | |
| class VkSwapchainCounterCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSurfaceCounterFlagsEXT surfaceCounters | |
| } | |
| @extension("VK_GOOGLE_display_timing") // 93 | |
| class VkRefreshCycleDurationGOOGLE { | |
| u64 refreshDuration | |
| } | |
| @extension("VK_GOOGLE_display_timing") // 93 | |
| class VkPastPresentationTimingGOOGLE { | |
| u32 presentID | |
| u64 desiredPresentTime | |
| u64 actualPresentTime | |
| u64 earliestPresentTime | |
| u64 presentMargin | |
| } | |
| @extension("VK_GOOGLE_display_timing") // 93 | |
| class VkPresentTimeGOOGLE { | |
| u32 presentID | |
| u64 desiredPresentTime | |
| } | |
| @extension("VK_GOOGLE_display_timing") // 93 | |
| class VkPresentTimesInfoGOOGLE { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 swapchainCount | |
| const VkPresentTimeGOOGLE* pTimes | |
| } | |
| @extension("VK_NVX_multiview_per_view_attributes") // 98 | |
| class VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 perViewPositionAllComponents | |
| } | |
| @extension("VK_NV_viewport_swizzle") // 99 | |
| class VkViewportSwizzleNV { | |
| VkViewportCoordinateSwizzleNV x | |
| VkViewportCoordinateSwizzleNV y | |
| VkViewportCoordinateSwizzleNV z | |
| VkViewportCoordinateSwizzleNV w | |
| } | |
| @extension("VK_NV_viewport_swizzle") // 99 | |
| class VkPipelineViewportSwizzleStateCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkPipelineViewportSwizzleStateCreateFlagsNV flags | |
| u32 viewportCount | |
| const VkViewportSwizzleNV* pViewportSwizzles | |
| } | |
| @extension("VK_EXT_discard_rectangles") // 100 | |
| class VkPhysicalDeviceDiscardRectanglePropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxDiscardRectangles | |
| } | |
| @extension("VK_EXT_discard_rectangles") // 100 | |
| class VkPipelineDiscardRectangleStateCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkPipelineDiscardRectangleStateCreateFlagsEXT flags | |
| VkDiscardRectangleModeEXT discardRectangleMode | |
| u32 discardRectangleCount | |
| const VkRect2D* pDiscardRectangles | |
| } | |
| @extension("VK_EXT_conservative_rasterization") // 102 | |
| class VkPhysicalDeviceConservativeRasterizationPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| f32 primitiveOverestimationSize | |
| f32 maxExtraPrimitiveOverestimationSize | |
| f32 extraPrimitiveOverestimationSizeGranularity | |
| VkBool32 primitiveUnderestimation | |
| VkBool32 conservativePointAndLineRasterization | |
| VkBool32 degenerateTrianglesRasterized | |
| VkBool32 degenerateLinesRasterized | |
| VkBool32 fullyCoveredFragmentShaderInputVariable | |
| VkBool32 conservativeRasterizationPostDepthCoverage | |
| } | |
| @extension("VK_EXT_conservative_rasterization") // 102 | |
| class VkPipelineRasterizationConservativeStateCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkPipelineRasterizationConservativeStateCreateFlagsEXT flags | |
| VkConservativeRasterizationModeEXT conservativeRasterizationMode | |
| f32 extraPrimitiveOverestimationSize | |
| } | |
| @extension("VK_EXT_hdr_metadata") // 106 | |
| class VkXYColorEXT { | |
| f32 x | |
| f32 y | |
| } | |
| @extension("VK_EXT_hdr_metadata") // 106 | |
| class VkHdrMetadataEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkXYColorEXT displayPrimaryRed | |
| VkXYColorEXT displayPrimaryGreen | |
| VkXYColorEXT displayPrimaryBlue | |
| VkXYColorEXT whitePoint | |
| f32 maxLuminance | |
| f32 minLuminance | |
| f32 maxContentLightLevel | |
| f32 maxFrameAverageLightLevel | |
| } | |
| @extension("VK_KHR_create_renderpass2") // 110 | |
| class VkAttachmentDescription2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkAttachmentDescriptionFlags flags | |
| VkFormat format | |
| VkSampleCountFlagBits samples | |
| VkAttachmentLoadOp loadOp | |
| VkAttachmentStoreOp storeOp | |
| VkAttachmentLoadOp stencilLoadOp | |
| VkAttachmentStoreOp stencilStoreOp | |
| VkImageLayout initialLayout | |
| VkImageLayout finalLayout | |
| } | |
| @extension("VK_KHR_create_renderpass2") // 110 | |
| class VkAttachmentReference2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 attachment | |
| VkImageLayout layout | |
| VkImageAspectFlags aspectMask | |
| } | |
| @extension("VK_KHR_create_renderpass2") // 110 | |
| class VkSubpassDescription2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSubpassDescriptionFlags flags | |
| VkPipelineBindPoint pipelineBindPoint | |
| u32 viewMask | |
| u32 inputAttachmentCount | |
| const VkAttachmentReference2KHR* pInputAttachments | |
| u32 colorAttachmentCount | |
| const VkAttachmentReference2KHR* pColorAttachments | |
| const VkAttachmentReference2KHR* pResolveAttachments | |
| const VkAttachmentReference2KHR* pDepthStencilAttachment | |
| u32 preserveAttachmentCount | |
| const u32* pPreserveAttachments | |
| } | |
| @extension("VK_KHR_create_renderpass2") // 110 | |
| class VkSubpassDependency2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 srcSubpass | |
| u32 dstSubpass | |
| VkPipelineStageFlags srcStageMask | |
| VkPipelineStageFlags dstStageMask | |
| VkAccessFlags srcAccessMask | |
| VkAccessFlags dstAccessMask | |
| VkDependencyFlags dependencyFlags | |
| s32 viewOffset | |
| } | |
| @extension("VK_KHR_create_renderpass2") // 110 | |
| class VkRenderPassCreateInfo2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkRenderPassCreateFlags flags | |
| u32 attachmentCount | |
| const VkAttachmentDescription2KHR* pAttachments | |
| u32 subpassCount | |
| const VkSubpassDescription2KHR* pSubpasses | |
| u32 dependencyCount | |
| const VkSubpassDependency2KHR* pDependencies | |
| u32 correlatedViewMaskCount | |
| const u32* pCorrelatedViewMasks | |
| } | |
| @extension("VK_KHR_create_renderpass2") // 110 | |
| class VkSubpassBeginInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSubpassContents contents | |
| } | |
| @extension("VK_KHR_create_renderpass2") // 110 | |
| class VkSubpassEndInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| } | |
| @extension("VK_KHR_shared_presentable_image") // 112 | |
| class VkSharedPresentSurfaceCapabilitiesKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImageUsageFlags sharedPresentSupportedUsageFlags | |
| } | |
| @extension("VK_KHR_external_fence_capabilities") // 113 | |
| class VkPhysicalDeviceExternalFenceInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalFenceHandleTypeFlagBitsKHR handleType | |
| } | |
| @extension("VK_KHR_external_fence_capabilities") // 113 | |
| class VkExternalFencePropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes | |
| VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes | |
| VkExternalFenceFeatureFlagsKHR externalFenceFeatures | |
| } | |
| @extension("VK_KHR_external_fence") // 114 | |
| class VkExportFenceCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalFenceHandleTypeFlagsKHR handleTypes | |
| } | |
| @extension("VK_KHR_external_fence_win32") // 115 | |
| class VkImportFenceWin32HandleInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkFence fence | |
| VkFenceImportFlagsKHR flags | |
| VkExternalFenceHandleTypeFlagBitsKHR handleType | |
| platform.HANDLE handle | |
| platform.LPCWSTR name | |
| } | |
| @extension("VK_KHR_external_fence_win32") // 115 | |
| class VkExportFenceWin32HandleInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| const platform.SECURITY_ATTRIBUTES* pAttributes | |
| platform.DWORD dwAccess | |
| platform.LPCWSTR name | |
| } | |
| @extension("VK_KHR_external_fence_win32") // 115 | |
| class VkFenceGetWin32HandleInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkFence fence | |
| VkExternalFenceHandleTypeFlagBitsKHR handleType | |
| } | |
| @extension("VK_KHR_external_fence_fd") // 116 | |
| class VkImportFenceFdInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkFence fence | |
| VkFenceImportFlagsKHR flags | |
| VkExternalFenceHandleTypeFlagBitsKHR handleType | |
| int fd | |
| } | |
| @extension("VK_KHR_external_fence_fd") // 116 | |
| class VkFenceGetFdInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkFence fence | |
| VkExternalFenceHandleTypeFlagBitsKHR handleType | |
| } | |
| @extension("VK_KHR_maintenance2") // 118 | |
| class VkPhysicalDevicePointClippingPropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkPointClippingBehaviorKHR pointClippingBehavior | |
| } | |
| @extension("VK_KHR_maintenance2") // 118 | |
| class VkInputAttachmentAspectReferenceKHR { | |
| u32 subpass | |
| u32 inputAttachmentIndex | |
| VkImageAspectFlags aspectMask | |
| } | |
| @extension("VK_KHR_maintenance2") // 118 | |
| class VkRenderPassInputAttachmentAspectCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 aspectReferenceCount | |
| const VkInputAttachmentAspectReferenceKHR* pAspectReferences | |
| } | |
| @extension("VK_KHR_maintenance2") // 118 | |
| class VkImageViewUsageCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImageUsageFlags usage | |
| } | |
| @extension("VK_KHR_maintenance2") // 118 | |
| class VkPipelineTessellationDomainOriginStateCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkTessellationDomainOriginKHR domainOrigin | |
| } | |
| @extension("VK_KHR_get_surface_capabilities2") // 120 | |
| class VkPhysicalDeviceSurfaceInfo2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSurfaceKHR surface | |
| } | |
| @extension("VK_KHR_get_surface_capabilities2") // 120 | |
| class VkSurfaceCapabilities2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkSurfaceCapabilitiesKHR surfaceCapabilities | |
| } | |
| @extension("VK_KHR_get_surface_capabilities2") // 120 | |
| class VkSurfaceFormat2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkSurfaceFormatKHR surfaceFormat | |
| } | |
| @extension("VK_KHR_variable_pointers") // 121 | |
| class VkPhysicalDeviceVariablePointerFeaturesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 variablePointersStorageBuffer | |
| VkBool32 variablePointers | |
| } | |
| @extension("VK_KHR_display_properties2") // 122 | |
| class VkDisplayProperties2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkDisplayPropertiesKHR displayProperties | |
| } | |
| @extension("VK_KHR_display_properties2") // 122 | |
| class VkDisplayPlaneProperties2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkDisplayPlanePropertiesKHR displayPlaneProperties | |
| } | |
| @extension("VK_KHR_display_properties2") // 122 | |
| class VkDisplayModeProperties2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkDisplayModePropertiesKHR displayModeProperties | |
| } | |
| @extension("VK_KHR_display_properties2") // 122 | |
| class VkDisplayPlaneInfo2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDisplayModeKHR mode | |
| u32 planeIndex | |
| } | |
| @extension("VK_KHR_display_properties2") // 122 | |
| class VkDisplayPlaneCapabilities2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkDisplayPlaneCapabilitiesKHR capabilities | |
| } | |
| @extension("VK_MVK_ios_surface") // 123 | |
| class VkIOSSurfaceCreateInfoMVK { | |
| VkStructureType sType | |
| const void* pNext | |
| VkIOSSurfaceCreateFlagsMVK flags | |
| const void* pView | |
| } | |
| @extension("VK_MVK_macos_surface") // 124 | |
| class VkMacOSSurfaceCreateInfoMVK { | |
| VkStructureType sType | |
| const void* pNext | |
| VkMacOSSurfaceCreateFlagsMVK flags | |
| const void* pView | |
| } | |
| @extension("VK_KHR_dedicated_allocation") // 128 | |
| class VkMemoryDedicatedRequirementsKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 prefersDedicatedAllocation | |
| VkBool32 requiresDedicatedAllocation | |
| } | |
| @extension("VK_KHR_dedicated_allocation") // 128 | |
| class VkMemoryDedicatedAllocateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImage image | |
| VkBuffer buffer | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| class VkDebugUtilsObjectNameInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkObjectType objectType | |
| u64 objectHandle | |
| const char* pObjectName | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| class VkDebugUtilsObjectTagInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkObjectType objectType | |
| u64 objectHandle | |
| u64 tagName | |
| platform.size_t tagSize | |
| const void* pTag | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| class VkDebugUtilsLabelEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| const char* pLabelName | |
| f32[4] color | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| class VkDebugUtilsMessengerCallbackDataEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDebugUtilsMessengerCallbackDataFlagsEXT flags | |
| const char* pMessageIdName | |
| s32 messageIdNumber | |
| const char* pMessage | |
| u32 queueLabelCount | |
| const VkDebugUtilsLabelEXT* pQueueLabels | |
| u32 cmdBufLabelCount | |
| const VkDebugUtilsLabelEXT* pCmdBufLabels | |
| u32 objectCount | |
| const VkDebugUtilsObjectNameInfoEXT* pObjects | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| class VkDebugUtilsMessengerCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDebugUtilsMessengerCreateFlagsEXT flags | |
| VkDebugUtilsMessageSeverityFlagsEXT messageSeverity | |
| VkDebugUtilsMessageTypeFlagsEXT messageTypes | |
| PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback | |
| void* pUserData | |
| } | |
| @extension("VK_ANDROID_external_memory_android_hardware_buffer") // 131 | |
| class VkAndroidHardwareBufferUsageANDROID { | |
| VkStructureType sType | |
| void* pNext | |
| u64 androidHardwareBufferUsage | |
| } | |
| @extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 | |
| class VkAndroidHardwareBufferPropertiesANDROID { | |
| VkStructureType sType | |
| void* pNext | |
| VkDeviceSize allocationSize | |
| u32 memoryTypeBits | |
| } | |
| @extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 | |
| class VkAndroidHardwareBufferFormatPropertiesANDROID { | |
| VkStructureType sType | |
| void* pNext | |
| VkFormat format | |
| u64 externalFormat | |
| VkFormatFeatureFlags formatFeatures | |
| VkComponentMapping samplerYcbcrConversionComponents | |
| VkSamplerYcbcrModelConversion suggestedYcbcrModel | |
| VkSamplerYcbcrRange suggestedYcbcrRange | |
| VkChromaLocation suggestedXChromaOffset | |
| VkChromaLocation suggestedYChromaOffset | |
| } | |
| @extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 | |
| class VkImportAndroidHardwareBufferInfoANDROID { | |
| VkStructureType sType | |
| const void* pNext | |
| platform.AHardwareBuffer* buffer | |
| } | |
| @extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 | |
| class VkMemoryGetAndroidHardwareBufferInfoANDROID { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDeviceMemory memory | |
| } | |
| @extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 | |
| class VkExternalFormatANDROID { | |
| VkStructureType sType | |
| void* pNext | |
| u64 externalFormat | |
| } | |
| @extension("VK_EXT_sampler_filter_minmax") // 131 | |
| class VkSamplerReductionModeCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSamplerReductionModeEXT reductionMode | |
| } | |
| @extension("VK_EXT_sampler_filter_minmax") // 131 | |
| class VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 filterMinmaxSingleComponentFormats | |
| VkBool32 filterMinmaxImageComponentMapping | |
| } | |
| @extension("VK_EXT_inline_uniform_block") // 139 | |
| class VkPhysicalDeviceInlineUniformBlockFeaturesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 inlineUniformBlock | |
| VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind | |
| } | |
| @extension("VK_EXT_inline_uniform_block") // 139 | |
| class VkPhysicalDeviceInlineUniformBlockPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxInlineUniformBlockSize | |
| u32 maxPerStageDescriptorInlineUniformBlocks | |
| u32 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks | |
| u32 maxDescriptorSetInlineUniformBlocks | |
| u32 maxDescriptorSetUpdateAfterBindInlineUniformBlocks | |
| } | |
| @extension("VK_EXT_inline_uniform_block") // 139 | |
| class VkWriteDescriptorSetInlineUniformBlockEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 dataSize | |
| const void* pData | |
| } | |
| @extension("VK_EXT_inline_uniform_block") // 139 | |
| class VkDescriptorPoolInlineUniformBlockCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 maxInlineUniformBlockBindings | |
| } | |
| @extension("VK_EXT_sample_locations") // 144 | |
| class VkSampleLocationEXT { | |
| f32 x | |
| f32 y | |
| } | |
| @extension("VK_EXT_sample_locations") // 144 | |
| class VkSampleLocationsInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSampleCountFlagBits sampleLocationsPerPixel | |
| VkExtent2D sampleLocationGridSize | |
| u32 sampleLocationsCount | |
| const VkSampleLocationEXT* pSampleLocations | |
| } | |
| @extension("VK_EXT_sample_locations") // 144 | |
| class VkAttachmentSampleLocationsEXT { | |
| u32 attachmentIndex | |
| VkSampleLocationsInfoEXT sampleLocationsInfo | |
| } | |
| @extension("VK_EXT_sample_locations") // 144 | |
| class VkSubpassSampleLocationsEXT { | |
| u32 subpassIndex | |
| VkSampleLocationsInfoEXT sampleLocationsInfo | |
| } | |
| @extension("VK_EXT_sample_locations") // 144 | |
| class VkRenderPassSampleLocationsBeginInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 attachmentInitialSampleLocationsCount | |
| const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations | |
| u32 postSubpassSampleLocationsCount | |
| const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations | |
| } | |
| @extension("VK_EXT_sample_locations") // 144 | |
| class VkPipelineSampleLocationsStateCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBool32 sampleLocationsEnable | |
| VkSampleLocationsInfoEXT sampleLocationsInfo | |
| } | |
| @extension("VK_EXT_sample_locations") // 144 | |
| class VkPhysicalDeviceSampleLocationsPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkSampleCountFlags sampleLocationSampleCounts | |
| VkExtent2D maxSampleLocationGridSize | |
| f32[2] sampleLocationCoordinateRange | |
| u32 sampleLocationSubPixelBits | |
| VkBool32 variableSampleLocations | |
| } | |
| @extension("VK_EXT_sample_locations") // 144 | |
| class VkMultisamplePropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkExtent2D maxSampleLocationGridSize | |
| } | |
| @extension("VK_KHR_get_memory_requirements2") // 147 | |
| class VkBufferMemoryRequirementsInfo2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBuffer buffer | |
| } | |
| @extension("VK_KHR_get_memory_requirements2") // 147 | |
| class VkImageMemoryRequirementsInfo2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImage image | |
| } | |
| @extension("VK_KHR_get_memory_requirements2") // 147 | |
| class VkImageSparseMemoryRequirementsInfo2KHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImage image | |
| } | |
| @extension("VK_KHR_get_memory_requirements2") // 147 | |
| class VkMemoryRequirements2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkMemoryRequirements memoryRequirements | |
| } | |
| @extension("VK_KHR_get_memory_requirements2") // 147 | |
| class VkSparseImageMemoryRequirements2KHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkSparseImageMemoryRequirements memoryRequirements | |
| } | |
| @extension("VK_KHR_image_format_list") // 148 | |
| class VkImageFormatListCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 viewFormatCount | |
| const VkFormat* pViewFormats | |
| } | |
| @extension("VK_EXT_blend_operation_advanced") // 149 | |
| class VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 advancedBlendCoherentOperations | |
| } | |
| @extension("VK_EXT_blend_operation_advanced") // 149 | |
| class VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| u32 advancedBlendMaxColorAttachments | |
| VkBool32 advancedBlendIndependentBlend | |
| VkBool32 advancedBlendNonPremultipliedSrcColor | |
| VkBool32 advancedBlendNonPremultipliedDstColor | |
| VkBool32 advancedBlendCorrelatedOverlap | |
| VkBool32 advancedBlendAllOperations | |
| } | |
| @extension("VK_EXT_blend_operation_advanced") // 149 | |
| class VkPipelineColorBlendAdvancedStateCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBool32 srcPremultiplied | |
| VkBool32 dstPremultiplied | |
| VkBlendOverlapEXT blendOverlap | |
| } | |
| @extension("VK_NV_fragment_coverage_to_color") // 150 | |
| class VkPipelineCoverageToColorStateCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkPipelineCoverageToColorStateCreateFlagsNV flags | |
| VkBool32 coverageToColorEnable | |
| u32 coverageToColorLocation | |
| } | |
| @extension("VK_NV_framebuffer_mixed_samples") // 153 | |
| class VkPipelineCoverageModulationStateCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkPipelineCoverageModulationStateCreateFlagsNV flags | |
| VkCoverageModulationModeNV coverageModulationMode | |
| VkBool32 coverageModulationTableEnable | |
| u32 coverageModulationTableCount | |
| const f32* pCoverageModulationTable | |
| } | |
| @extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| class VkSamplerYcbcrConversionCreateInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkFormat format | |
| VkSamplerYcbcrModelConversionKHR ycbcrModel | |
| VkSamplerYcbcrRangeKHR ycbcrRange | |
| VkComponentMapping components | |
| VkChromaLocationKHR xChromaOffset | |
| VkChromaLocationKHR yChromaOffset | |
| VkFilter chromaFilter | |
| VkBool32 forceExplicitReconstruction | |
| } | |
| @extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| class VkSamplerYcbcrConversionInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkSamplerYcbcrConversionKHR conversion | |
| } | |
| @extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| class VkBindImagePlaneMemoryInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImageAspectFlagBits planeAspect | |
| } | |
| @extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| class VkImagePlaneMemoryRequirementsInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImageAspectFlagBits planeAspect | |
| } | |
| @extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| class VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 samplerYcbcrConversion | |
| } | |
| @extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| class VkSamplerYcbcrConversionImageFormatPropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| u32 combinedImageSamplerDescriptorCount | |
| } | |
| @extension("VK_KHR_bind_memory2") // 158 | |
| class VkBindBufferMemoryInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBuffer buffer | |
| VkDeviceMemory memory | |
| VkDeviceSize memoryOffset | |
| } | |
| @extension("VK_KHR_bind_memory2") // 158 | |
| class VkBindImageMemoryInfoKHR { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImage image | |
| VkDeviceMemory memory | |
| VkDeviceSize memoryOffset | |
| } | |
| @extension("VK_EXT_image_drm_format_modifier") // 159 | |
| class VkDrmFormatModifierPropertiesEXT { | |
| u64 drmFormatModifier | |
| u32 drmFormatModifierPlaneCount | |
| VkFormatFeatureFlags drmFormatModifierTilingFeatures | |
| } | |
| @extension("VK_EXT_image_drm_format_modifier") // 159 | |
| class VkDrmFormatModifierPropertiesListEXT { | |
| VkStructureType sType | |
| void* pNext | |
| u32 drmFormatModifierCount | |
| VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties | |
| } | |
| @extension("VK_EXT_image_drm_format_modifier") // 159 | |
| class VkPhysicalDeviceImageDrmFormatModifierInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| u64 drmFormatModifier | |
| VkSharingMode sharingMode | |
| u32 queueFamilyIndexCount | |
| const u32* pQueueFamilyIndices | |
| } | |
| @extension("VK_EXT_image_drm_format_modifier") // 159 | |
| class VkImageDrmFormatModifierListCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 drmFormatModifierCount | |
| const u64* pDrmFormatModifiers | |
| } | |
| @extension("VK_EXT_image_drm_format_modifier") // 159 | |
| class VkImageDrmFormatModifierExplicitCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| u64 drmFormatModifier | |
| u32 drmFormatModifierPlaneCount | |
| const VkSubresourceLayout* pPlaneLayouts | |
| } | |
| @extension("VK_EXT_image_drm_format_modifier") // 159 | |
| class VkImageDrmFormatModifierPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| u64 drmFormatModifier | |
| } | |
| @extension("VK_EXT_validation_cache") // 161 | |
| class VkValidationCacheCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkValidationCacheCreateFlagsEXT flags | |
| platform.size_t initialDataSize | |
| const void* pInitialData | |
| } | |
| @extension("VK_EXT_validation_cache") // 161 | |
| class VkShaderModuleValidationCacheCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkValidationCacheEXT validationCache | |
| } | |
| @extension("VK_EXT_descriptor_indexing") // 162 | |
| class VkDescriptorSetLayoutBindingFlagsCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 bindingCount | |
| const VkDescriptorBindingFlagsEXT* pBindingFlags | |
| } | |
| @extension("VK_EXT_descriptor_indexing") // 162 | |
| class VkPhysicalDeviceDescriptorIndexingFeaturesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 shaderInputAttachmentArrayDynamicIndexing | |
| VkBool32 shaderUniformTexelBufferArrayDynamicIndexing | |
| VkBool32 shaderStorageTexelBufferArrayDynamicIndexing | |
| VkBool32 shaderUniformBufferArrayNonUniformIndexing | |
| VkBool32 shaderSampledImageArrayNonUniformIndexing | |
| VkBool32 shaderStorageBufferArrayNonUniformIndexing | |
| VkBool32 shaderStorageImageArrayNonUniformIndexing | |
| VkBool32 shaderInputAttachmentArrayNonUniformIndexing | |
| VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing | |
| VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing | |
| VkBool32 descriptorBindingUniformBufferUpdateAfterBind | |
| VkBool32 descriptorBindingSampledImageUpdateAfterBind | |
| VkBool32 descriptorBindingStorageImageUpdateAfterBind | |
| VkBool32 descriptorBindingStorageBufferUpdateAfterBind | |
| VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind | |
| VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind | |
| VkBool32 descriptorBindingUpdateUnusedWhilePending | |
| VkBool32 descriptorBindingPartiallyBound | |
| VkBool32 descriptorBindingVariableDescriptorCount | |
| VkBool32 runtimeDescriptorArray | |
| } | |
| @extension("VK_EXT_descriptor_indexing") // 162 | |
| class VkPhysicalDeviceDescriptorIndexingPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxUpdateAfterBindDescriptorsInAllPools | |
| VkBool32 shaderUniformBufferArrayNonUniformIndexingNative | |
| VkBool32 shaderSampledImageArrayNonUniformIndexingNative | |
| VkBool32 shaderStorageBufferArrayNonUniformIndexingNative | |
| VkBool32 shaderStorageImageArrayNonUniformIndexingNative | |
| VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative | |
| VkBool32 robustBufferAccessUpdateAfterBind | |
| VkBool32 quadDivergentImplicitLod | |
| u32 maxPerStageDescriptorUpdateAfterBindSamplers | |
| u32 maxPerStageDescriptorUpdateAfterBindUniformBuffers | |
| u32 maxPerStageDescriptorUpdateAfterBindStorageBuffers | |
| u32 maxPerStageDescriptorUpdateAfterBindSampledImages | |
| u32 maxPerStageDescriptorUpdateAfterBindStorageImages | |
| u32 maxPerStageDescriptorUpdateAfterBindInputAttachments | |
| u32 maxPerStageUpdateAfterBindResources | |
| u32 maxDescriptorSetUpdateAfterBindSamplers | |
| u32 maxDescriptorSetUpdateAfterBindUniformBuffers | |
| u32 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic | |
| u32 maxDescriptorSetUpdateAfterBindStorageBuffers | |
| u32 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic | |
| u32 maxDescriptorSetUpdateAfterBindSampledImages | |
| u32 maxDescriptorSetUpdateAfterBindStorageImages | |
| u32 maxDescriptorSetUpdateAfterBindInputAttachments | |
| } | |
| @extension("VK_EXT_descriptor_indexing") // 162 | |
| class VkDescriptorSetVariableDescriptorCountAllocateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 descriptorSetCount | |
| const u32* pDescriptorCounts | |
| } | |
| @extension("VK_EXT_descriptor_indexing") // 162 | |
| class VkDescriptorSetVariableDescriptorCountLayoutSupportEXT { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxVariableDescriptorCount | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| class VkShadingRatePaletteNV { | |
| u32 shadingRatePaletteEntryCount | |
| const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| class VkPipelineViewportShadingRateImageStateCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBool32 shadingRateImageEnable | |
| u32 viewportCount | |
| const VkShadingRatePaletteNV* pShadingRatePalettes | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| class VkPhysicalDeviceShadingRateImageFeaturesNV { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 shadingRateImage | |
| VkBool32 shadingRateCoarseSampleOrder | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| class VkPhysicalDeviceShadingRateImagePropertiesNV { | |
| VkStructureType sType | |
| void* pNext | |
| VkExtent2D shadingRateTexelSize | |
| u32 shadingRatePaletteSize | |
| u32 shadingRateMaxCoarseSamples | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| class VkCoarseSampleLocationNV { | |
| u32 pixelX | |
| u32 pixelY | |
| u32 sample | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| class VkCoarseSampleOrderCustomNV { | |
| VkShadingRatePaletteEntryNV shadingRate | |
| u32 sampleCount | |
| u32 sampleLocationCount | |
| const VkCoarseSampleLocationNV* pSampleLocations | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| class VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkCoarseSampleOrderTypeNV sampleOrderType | |
| u32 customSampleOrderCount | |
| const VkCoarseSampleOrderCustomNV* pCustomSampleOrders | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkRayTracingShaderGroupCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkRayTracingShaderGroupTypeNV type | |
| u32 generalShader | |
| u32 closestHitShader | |
| u32 anyHitShader | |
| u32 intersectionShader | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkRayTracingPipelineCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkPipelineCreateFlags flags | |
| u32 stageCount | |
| const VkPipelineShaderStageCreateInfo* pStages | |
| u32 groupCount | |
| const VkRayTracingShaderGroupCreateInfoNV* pGroups | |
| u32 maxRecursionDepth | |
| VkPipelineLayout layout | |
| VkPipeline basePipelineHandle | |
| s32 basePipelineIndex | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkGeometryTrianglesNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBuffer vertexData | |
| VkDeviceSize vertexOffset | |
| u32 vertexCount | |
| VkDeviceSize vertexStride | |
| VkFormat vertexFormat | |
| VkBuffer indexData | |
| VkDeviceSize indexOffset | |
| u32 indexCount | |
| VkIndexType indexType | |
| VkBuffer transformData | |
| VkDeviceSize transformOffset | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkGeometryAABBNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBuffer aabbData | |
| u32 numAABBs | |
| u32 stride | |
| VkDeviceSize offset | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkGeometryDataNV { | |
| VkGeometryTrianglesNV triangles | |
| VkGeometryAABBNV aabbs | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkGeometryNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkGeometryTypeNV geometryType | |
| VkGeometryDataNV geometry | |
| VkGeometryFlagsNV flags | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkAccelerationStructureInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkAccelerationStructureTypeNV type | |
| VkBuildAccelerationStructureFlagsNV flags | |
| u32 instanceCount | |
| u32 geometryCount | |
| const VkGeometryNV* pGeometries | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkAccelerationStructureCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkDeviceSize compactedSize | |
| VkAccelerationStructureInfoNV info | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkBindAccelerationStructureMemoryInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkAccelerationStructureNV accelerationStructure | |
| VkDeviceMemory memory | |
| VkDeviceSize memoryOffset | |
| u32 deviceIndexCount | |
| const u32* pDeviceIndices | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkDescriptorAccelerationStructureInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 accelerationStructureCount | |
| const VkAccelerationStructureNV* pAccelerationStructures | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkAccelerationStructureMemoryRequirementsInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkAccelerationStructureMemoryRequirementsTypeNV type | |
| VkAccelerationStructureNV accelerationStructure | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| class VkPhysicalDeviceRaytracingPropertiesNV { | |
| VkStructureType sType | |
| void* pNext | |
| u32 shaderGroupHandleSize | |
| u32 maxRecursionDepth | |
| u32 maxShaderGroupStride | |
| u32 shaderGroupBaseAlignment | |
| u64 maxGeometryCount | |
| u64 maxInstanceCount | |
| u64 maxTriangleCount | |
| u32 maxDescriptorSetAccelerationStructures | |
| } | |
| @extension("VK_NV_representative_fragment_test") // 167 | |
| class VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 representativeFragmentTest | |
| } | |
| @extension("VK_NV_representative_fragment_test") // 167 | |
| class VkPipelineRepresentativeFragmentTestStateCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| VkBool32 representativeFragmentTestEnable | |
| } | |
| @extension("VK_KHR_maintenance3") // 169 | |
| class VkPhysicalDeviceMaintenance3PropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxPerSetDescriptors | |
| VkDeviceSize maxMemoryAllocationSize | |
| } | |
| @extension("VK_KHR_maintenance3") // 169 | |
| class VkDescriptorSetLayoutSupportKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 supported | |
| } | |
| @extension("VK_EXT_global_priority") // 175 | |
| class VkDeviceQueueGlobalPriorityCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkQueueGlobalPriorityEXT globalPriority | |
| } | |
| @extension("VK_KHR_8bit_storage") // 178 | |
| class VkPhysicalDevice8BitStorageFeaturesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 storageBuffer8BitAccess | |
| VkBool32 uniformAndStorageBuffer8BitAccess | |
| VkBool32 storagePushConstant8 | |
| } | |
| @extension("VK_EXT_external_memory_host") // 179 | |
| class VkImportMemoryHostPointerInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkExternalMemoryHandleTypeFlagBits handleType | |
| void* pHostPointer | |
| } | |
| @extension("VK_EXT_external_memory_host") // 179 | |
| class VkMemoryHostPointerPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| u32 memoryTypeBits | |
| } | |
| @extension("VK_EXT_external_memory_host") // 179 | |
| class VkPhysicalDeviceExternalMemoryHostPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkDeviceSize minImportedHostPointerAlignment | |
| } | |
| @extension("VK_KHR_shader_atomic_int64") // 181 | |
| class VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 shaderBufferInt64Atomics | |
| VkBool32 shaderSharedInt64Atomics | |
| } | |
| @extension("VK_EXT_calibrated_timestamps") // 185 | |
| class VkCalibratedTimestampInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkTimeDomainEXT timeDomain | |
| } | |
| @extension("VK_AMD_shader_core_properties") // 186 | |
| class VkPhysicalDeviceShaderCorePropertiesAMD { | |
| VkStructureType sType | |
| void* pNext | |
| u32 shaderEngineCount | |
| u32 shaderArraysPerEngineCount | |
| u32 computeUnitsPerShaderArray | |
| u32 simdPerComputeUnit | |
| u32 wavefrontsPerSimd | |
| u32 wavefrontSize | |
| u32 sgprsPerSimd | |
| u32 minSgprAllocation | |
| u32 maxSgprAllocation | |
| u32 sgprAllocationGranularity | |
| u32 vgprsPerSimd | |
| u32 minVgprAllocation | |
| u32 maxVgprAllocation | |
| u32 vgprAllocationGranularity | |
| } | |
| @extension("VK_AMD_memory_overallocation_behavior") // 190 | |
| class VkDeviceMemoryOverallocationCreateInfoAMD { | |
| VkStructureType sType | |
| const void* pNext | |
| VkMemoryOverallocationBehaviorAMD overallocationBehavior | |
| } | |
| @extension("VK_EXT_vertex_attribute_divisor") // 191 | |
| class VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxVertexAttribDivisor | |
| } | |
| @extension("VK_EXT_vertex_attribute_divisor") // 191 | |
| class VkVertexInputBindingDivisorDescriptionEXT { | |
| u32 binding | |
| u32 divisor | |
| } | |
| @extension("VK_EXT_vertex_attribute_divisor") // 191 | |
| class VkPipelineVertexInputDivisorStateCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 vertexBindingDivisorCount | |
| const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors | |
| } | |
| @extension("VK_EXT_vertex_attribute_divisor") // 191 | |
| class VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 vertexAttributeInstanceRateDivisor | |
| VkBool32 vertexAttributeInstanceRateZeroDivisor | |
| } | |
| @extension("VK_KHR_driver_properties") // 197 | |
| class VkConformanceVersionKHR { | |
| u8 major | |
| u8 minor | |
| u8 subminor | |
| u8 patch | |
| } | |
| @extension("VK_KHR_driver_properties") // 197 | |
| class VkPhysicalDeviceDriverPropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkDriverIdKHR driverID | |
| char[VK_MAX_DRIVER_NAME_SIZE_KHR] driverName | |
| char[VK_MAX_DRIVER_INFO_SIZE_KHR] driverInfo | |
| VkConformanceVersionKHR conformanceVersion | |
| } | |
| @extension("VK_KHR_shader_float_controls") // 198 | |
| class VkPhysicalDeviceFloatControlsPropertiesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 separateDenormSettings | |
| VkBool32 separateRoundingModeSettings | |
| VkBool32 shaderSignedZeroInfNanPreserveFloat16 | |
| VkBool32 shaderSignedZeroInfNanPreserveFloat32 | |
| VkBool32 shaderSignedZeroInfNanPreserveFloat64 | |
| VkBool32 shaderDenormPreserveFloat16 | |
| VkBool32 shaderDenormPreserveFloat32 | |
| VkBool32 shaderDenormPreserveFloat64 | |
| VkBool32 shaderDenormFlushToZeroFloat16 | |
| VkBool32 shaderDenormFlushToZeroFloat32 | |
| VkBool32 shaderDenormFlushToZeroFloat64 | |
| VkBool32 shaderRoundingModeRTEFloat16 | |
| VkBool32 shaderRoundingModeRTEFloat32 | |
| VkBool32 shaderRoundingModeRTEFloat64 | |
| VkBool32 shaderRoundingModeRTZFloat16 | |
| VkBool32 shaderRoundingModeRTZFloat32 | |
| VkBool32 shaderRoundingModeRTZFloat64 | |
| } | |
| @extension("VK_NV_compute_shader_derivatives") // 202 | |
| class VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 computeDerivativeGroupQuads | |
| VkBool32 computeDerivativeGroupLinear | |
| } | |
| @extension("VK_NV_mesh_shader") // 203 | |
| class VkPhysicalDeviceMeshShaderFeaturesNV { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 taskShader | |
| VkBool32 meshShader | |
| } | |
| @extension("VK_NV_mesh_shader") // 203 | |
| class VkPhysicalDeviceMeshShaderPropertiesNV { | |
| VkStructureType sType | |
| void* pNext | |
| u32 maxDrawMeshTasksCount | |
| u32 maxTaskWorkGroupInvocations | |
| u32[3] maxTaskWorkGroupSize | |
| u32 maxTaskTotalMemorySize | |
| u32 maxTaskOutputCount | |
| u32 maxMeshWorkGroupInvocations | |
| u32[3] maxMeshWorkGroupSize | |
| u32 maxMeshTotalMemorySize | |
| u32 maxMeshOutputVertices | |
| u32 maxMeshOutputPrimitives | |
| u32 maxMeshMultiviewViewCount | |
| u32 meshOutputPerVertexGranularity | |
| u32 meshOutputPerPrimitiveGranularity | |
| } | |
| @extension("VK_NV_mesh_shader") // 203 | |
| class VkDrawMeshTasksIndirectCommandNV { | |
| u32 taskCount | |
| u32 firstTask | |
| } | |
| @extension("VK_NV_fragment_shader_barycentric") // 204 | |
| class VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 fragmentShaderBarycentric | |
| } | |
| @extension("VK_NV_shader_image_footprint") // 205 | |
| class VkPhysicalDeviceShaderImageFootprintFeaturesNV { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 imageFootprint | |
| } | |
| @extension("VK_NV_scissor_exclusive") // 206 | |
| class VkPipelineViewportExclusiveScissorStateCreateInfoNV { | |
| VkStructureType sType | |
| const void* pNext | |
| u32 exclusiveScissorCount | |
| const VkRect2D* pExclusiveScissors | |
| } | |
| @extension("VK_NV_scissor_exclusive") // 206 | |
| class VkPhysicalDeviceExclusiveScissorFeaturesNV { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 exclusiveScissor | |
| } | |
| @extension("VK_NV_device_diagnostic_checkpoints") // 207 | |
| class VkQueueFamilyCheckpointPropertiesNV { | |
| VkStructureType sType | |
| void* pNext | |
| VkPipelineStageFlags checkpointExecutionStageMask | |
| } | |
| @extension("VK_NV_device_diagnostic_checkpoints") // 207 | |
| class VkCheckpointDataNV { | |
| VkStructureType sType | |
| void* pNext | |
| VkPipelineStageFlagBits stage | |
| void* pCheckpointMarker | |
| } | |
| @extension("VK_KHR_vulkan_memory_model") // 212 | |
| class VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 vulkanMemoryModel | |
| VkBool32 vulkanMemoryModelDeviceScope | |
| } | |
| @extension("VK_EXT_pci_bus_info") // 213 | |
| class VkPhysicalDevicePCIBusInfoPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| u32 pciDomain | |
| u32 pciBus | |
| u32 pciDevice | |
| u32 pciFunction | |
| } | |
| @extension("VK_FUCHSIA_imagepipe_surface") // 215 | |
| class VkImagePipeSurfaceCreateInfoFUCHSIA { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImagePipeSurfaceCreateFlagsFUCHSIA flags | |
| platform.zx_handle_t imagePipeHandle | |
| } | |
| @extension("VK_EXT_fragment_density_map") // 219 | |
| class VkPhysicalDeviceFragmentDensityMapFeaturesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 fragmentDensityMap | |
| VkBool32 fragmentDensityMapDynamic | |
| VkBool32 fragmentDensityMapNonSubsampledImages | |
| } | |
| @extension("VK_EXT_fragment_density_map") // 219 | |
| class VkPhysicalDeviceFragmentDensityMapPropertiesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkExtent2D minFragmentDensityTexelSize | |
| VkExtent2D maxFragmentDensityTexelSize | |
| VkBool32 fragmentDensityInvocations | |
| } | |
| @extension("VK_EXT_fragment_density_map") // 219 | |
| class VkRenderPassFragmentDensityMapCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkAttachmentReference fragmentDensityMapAttachment | |
| } | |
| @extension("VK_EXT_scalar_block_layout") // 222 | |
| class VkPhysicalDeviceScalarBlockLayoutFeaturesEXT { | |
| VkStructureType sType | |
| void* pNext | |
| VkBool32 scalarBlockLayout | |
| } | |
| @extension("VK_EXT_separate_stencil_usage") // 247 | |
| class VkImageStencilUsageCreateInfoEXT { | |
| VkStructureType sType | |
| const void* pNext | |
| VkImageUsageFlags stencilUsage | |
| } | |
| //////////////// | |
| // Commands // | |
| //////////////// | |
| // Function pointers. TODO: add support for function pointers. | |
| @external type void* PFN_vkVoidFunction | |
| @pfn cmd void vkVoidFunction() { | |
| } | |
| @external type void* PFN_vkAllocationFunction | |
| @pfn cmd void* vkAllocationFunction( | |
| void* pUserData, | |
| platform.size_t size, | |
| platform.size_t alignment, | |
| VkSystemAllocationScope allocationScope) { | |
| return ? | |
| } | |
| @external type void* PFN_vkReallocationFunction | |
| @pfn cmd void* vkReallocationFunction( | |
| void* pUserData, | |
| void* pOriginal, | |
| platform.size_t size, | |
| platform.size_t alignment, | |
| VkSystemAllocationScope allocationScope) { | |
| return ? | |
| } | |
| @external type void* PFN_vkFreeFunction | |
| @pfn cmd void vkFreeFunction( | |
| void* pUserData, | |
| void* pMemory) { | |
| } | |
| @external type void* PFN_vkInternalAllocationNotification | |
| @pfn cmd void vkInternalAllocationNotification( | |
| void* pUserData, | |
| platform.size_t size, | |
| VkInternalAllocationType allocationType, | |
| VkSystemAllocationScope allocationScope) { | |
| } | |
| @external type void* PFN_vkInternalFreeNotification | |
| @pfn cmd void vkInternalFreeNotification( | |
| void* pUserData, | |
| platform.size_t size, | |
| VkInternalAllocationType allocationType, | |
| VkSystemAllocationScope allocationScope) { | |
| } | |
| // Global functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateInstance( | |
| const VkInstanceCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkInstance* pInstance) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO) | |
| instance := ? | |
| pInstance[0] = instance | |
| State.Instances[instance] = new!InstanceObject() | |
| layers := pCreateInfo.ppEnabledLayerNames[0:pCreateInfo.enabledLayerCount] | |
| extensions := pCreateInfo.ppEnabledExtensionNames[0:pCreateInfo.enabledExtensionCount] | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyInstance( | |
| VkInstance instance, | |
| const VkAllocationCallbacks* pAllocator) { | |
| instanceObject := GetInstance(instance) | |
| State.Instances[instance] = null | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkEnumeratePhysicalDevices( | |
| VkInstance instance, | |
| u32* pPhysicalDeviceCount, | |
| VkPhysicalDevice* pPhysicalDevices) { | |
| instanceObject := GetInstance(instance) | |
| physicalDeviceCount := as!u32(?) | |
| pPhysicalDeviceCount[0] = physicalDeviceCount | |
| physicalDevices := pPhysicalDevices[0:physicalDeviceCount] | |
| for i in (0 .. physicalDeviceCount) { | |
| physicalDevice := ? | |
| physicalDevices[i] = physicalDevice | |
| if !(physicalDevice in State.PhysicalDevices) { | |
| State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance) | |
| } | |
| } | |
| return ? | |
| } | |
| cmd PFN_vkVoidFunction vkGetDeviceProcAddr( | |
| VkDevice device, | |
| const char* pName) { | |
| if device != NULL_HANDLE { | |
| device := GetDevice(device) | |
| } | |
| return ? | |
| } | |
| cmd PFN_vkVoidFunction vkGetInstanceProcAddr( | |
| VkInstance instance, | |
| const char* pName) { | |
| if instance != NULL_HANDLE { | |
| instanceObject := GetInstance(instance) | |
| } | |
| return ? | |
| } | |
| cmd void vkGetPhysicalDeviceProperties( | |
| VkPhysicalDevice physicalDevice, | |
| VkPhysicalDeviceProperties* pProperties) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| properties := ? | |
| pProperties[0] = properties | |
| } | |
| cmd void vkGetPhysicalDeviceQueueFamilyProperties( | |
| VkPhysicalDevice physicalDevice, | |
| u32* pQueueFamilyPropertyCount, | |
| VkQueueFamilyProperties* pQueueFamilyProperties) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| // TODO: Figure out how to express fetch-count-or-properties | |
| // This version fails 'apic validate' with 'fence not allowed in | |
| // *semantic.Branch'. Other attempts have failed with the same or other | |
| // errors. | |
| // if pQueueFamilyProperties != null { | |
| // queuesProperties := pQueueFamilyProperties[0:pCount[0]] | |
| // for i in (0 .. pCount[0]) { | |
| // queueProperties := as!VkQueueFamilyProperties(?) | |
| // queuesProperties[i] = queueProperties | |
| // } | |
| // } else { | |
| // count := ? | |
| // pCount[0] = count | |
| // } | |
| } | |
| cmd void vkGetPhysicalDeviceMemoryProperties( | |
| VkPhysicalDevice physicalDevice, | |
| VkPhysicalDeviceMemoryProperties* pMemoryProperties) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| memoryProperties := ? | |
| pMemoryProperties[0] = memoryProperties | |
| } | |
| cmd void vkGetPhysicalDeviceFeatures( | |
| VkPhysicalDevice physicalDevice, | |
| VkPhysicalDeviceFeatures* pFeatures) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| features := ? | |
| pFeatures[0] = features | |
| } | |
| cmd void vkGetPhysicalDeviceFormatProperties( | |
| VkPhysicalDevice physicalDevice, | |
| VkFormat format, | |
| VkFormatProperties* pFormatProperties) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| formatProperties := ? | |
| pFormatProperties[0] = formatProperties | |
| } | |
| cmd VkResult vkGetPhysicalDeviceImageFormatProperties( | |
| VkPhysicalDevice physicalDevice, | |
| VkFormat format, | |
| VkImageType type, | |
| VkImageTiling tiling, | |
| VkImageUsageFlags usage, | |
| VkImageCreateFlags flags, | |
| VkImageFormatProperties* pImageFormatProperties) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| imageFormatProperties := ? | |
| pImageFormatProperties[0] = imageFormatProperties | |
| return ? | |
| } | |
| // Device functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateDevice( | |
| VkPhysicalDevice physicalDevice, | |
| const VkDeviceCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkDevice* pDevice) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO) | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| device := ? | |
| pDevice[0] = device | |
| State.Devices[device] = new!DeviceObject(physicalDevice: physicalDevice) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyDevice( | |
| VkDevice device, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| State.Devices[device] = null | |
| } | |
| // Extension discovery functions | |
| cmd VkResult vkEnumerateInstanceLayerProperties( | |
| u32* pPropertyCount, | |
| VkLayerProperties* pProperties) { | |
| count := as!u32(?) | |
| pPropertyCount[0] = count | |
| properties := pProperties[0:count] | |
| for i in (0 .. count) { | |
| property := ? | |
| properties[i] = property | |
| } | |
| return ? | |
| } | |
| cmd VkResult vkEnumerateInstanceExtensionProperties( | |
| const char* pLayerName, | |
| u32* pPropertyCount, | |
| VkExtensionProperties* pProperties) { | |
| count := as!u32(?) | |
| pPropertyCount[0] = count | |
| properties := pProperties[0:count] | |
| for i in (0 .. count) { | |
| property := ? | |
| properties[i] = property | |
| } | |
| return ? | |
| } | |
| cmd VkResult vkEnumerateDeviceLayerProperties( | |
| VkPhysicalDevice physicalDevice, | |
| u32* pPropertyCount, | |
| VkLayerProperties* pProperties) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| count := as!u32(?) | |
| pPropertyCount[0] = count | |
| properties := pProperties[0:count] | |
| for i in (0 .. count) { | |
| property := ? | |
| properties[i] = property | |
| } | |
| return ? | |
| } | |
| cmd VkResult vkEnumerateDeviceExtensionProperties( | |
| VkPhysicalDevice physicalDevice, | |
| const char* pLayerName, | |
| u32* pPropertyCount, | |
| VkExtensionProperties* pProperties) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| count := as!u32(?) | |
| pPropertyCount[0] = count | |
| properties := pProperties[0:count] | |
| for i in (0 .. count) { | |
| property := ? | |
| properties[i] = property | |
| } | |
| return ? | |
| } | |
| // Queue functions | |
| @threadSafety("system") | |
| cmd void vkGetDeviceQueue( | |
| VkDevice device, | |
| u32 queueFamilyIndex, | |
| u32 queueIndex, | |
| VkQueue* pQueue) { | |
| deviceObject := GetDevice(device) | |
| queue := ? | |
| pQueue[0] = queue | |
| if !(queue in State.Queues) { | |
| State.Queues[queue] = new!QueueObject(device: device) | |
| } | |
| } | |
| @threadSafety("app") | |
| cmd VkResult vkQueueSubmit( | |
| VkQueue queue, | |
| u32 submitCount, | |
| const VkSubmitInfo* pSubmits, | |
| VkFence fence) { | |
| queueObject := GetQueue(queue) | |
| if fence != NULL_HANDLE { | |
| fenceObject := GetFence(fence) | |
| assert(fenceObject.device == queueObject.device) | |
| } | |
| // commandBuffers := pcommandBuffers[0:commandBufferCount] | |
| // for i in (0 .. commandBufferCount) { | |
| // commandBuffer := commandBuffers[i] | |
| // commandBufferObject := GetCommandBuffer(commandBuffer) | |
| // assert(commandBufferObject.device == queueObject.device) | |
| // | |
| // validate("QueueCheck", commandBufferObject.queueFlags in queueObject.flags, | |
| // "vkQueueSubmit: enqueued commandBuffer requires missing queue capabilities.") | |
| // } | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkQueueWaitIdle( | |
| VkQueue queue) { | |
| queueObject := GetQueue(queue) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkDeviceWaitIdle( | |
| VkDevice device) { | |
| deviceObject := GetDevice(device) | |
| return ? | |
| } | |
| // Memory functions | |
| @threadSafety("system") | |
| cmd VkResult vkAllocateMemory( | |
| VkDevice device, | |
| const VkMemoryAllocateInfo* pAllocateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkDeviceMemory* pMemory) { | |
| assert(pAllocateInfo.sType == VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO) | |
| deviceObject := GetDevice(device) | |
| memory := ? | |
| pMemory[0] = memory | |
| State.DeviceMemories[memory] = new!DeviceMemoryObject( | |
| device: device, | |
| allocationSize: pAllocateInfo[0].allocationSize) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkFreeMemory( | |
| VkDevice device, | |
| VkDeviceMemory memory, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| memoryObject := GetDeviceMemory(memory) | |
| assert(memoryObject.device == device) | |
| // Check that no objects are still bound before freeing. | |
| validate("MemoryCheck", len(memoryObject.boundObjects) == 0, | |
| "vkFreeMemory: objects still bound") | |
| validate("MemoryCheck", len(memoryObject.boundCommandBuffers) == 0, | |
| "vkFreeMemory: commandBuffers still bound") | |
| State.DeviceMemories[memory] = null | |
| } | |
| @threadSafety("app") | |
| cmd VkResult vkMapMemory( | |
| VkDevice device, | |
| VkDeviceMemory memory, | |
| VkDeviceSize offset, | |
| VkDeviceSize size, | |
| VkMemoryMapFlags flags, | |
| void** ppData) { | |
| deviceObject := GetDevice(device) | |
| memoryObject := GetDeviceMemory(memory) | |
| assert(memoryObject.device == device) | |
| assert(flags == as!VkMemoryMapFlags(0)) | |
| assert((offset + size) <= memoryObject.allocationSize) | |
| return ? | |
| } | |
| @threadSafety("app") | |
| cmd void vkUnmapMemory( | |
| VkDevice device, | |
| VkDeviceMemory memory) { | |
| deviceObject := GetDevice(device) | |
| memoryObject := GetDeviceMemory(memory) | |
| assert(memoryObject.device == device) | |
| } | |
| cmd VkResult vkFlushMappedMemoryRanges( | |
| VkDevice device, | |
| u32 memoryRangeCount | |
| const VkMappedMemoryRange* pMemoryRanges) { | |
| deviceObject := GetDevice(device) | |
| memoryRanges := pMemoryRanges[0:memoryRangeCount] | |
| for i in (0 .. memoryRangeCount) { | |
| memoryRange := memoryRanges[i] | |
| memoryObject := GetDeviceMemory(memoryRange.memory) | |
| assert(memoryObject.device == device) | |
| assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize) | |
| } | |
| return ? | |
| } | |
| cmd VkResult vkInvalidateMappedMemoryRanges( | |
| VkDevice device, | |
| u32 memoryRangeCount, | |
| const VkMappedMemoryRange* pMemoryRanges) { | |
| deviceObject := GetDevice(device) | |
| memoryRanges := pMemoryRanges[0:memoryRangeCount] | |
| for i in (0 .. memoryRangeCount) { | |
| memoryRange := memoryRanges[i] | |
| memoryObject := GetDeviceMemory(memoryRange.memory) | |
| assert(memoryObject.device == device) | |
| assert((memoryRange.offset + memoryRange.size) <= memoryObject.allocationSize) | |
| } | |
| return ? | |
| } | |
| // Memory management API functions | |
| cmd void vkGetDeviceMemoryCommitment( | |
| VkDevice device, | |
| VkDeviceMemory memory, | |
| VkDeviceSize* pCommittedMemoryInBytes) { | |
| deviceObject := GetDevice(device) | |
| if memory != NULL_HANDLE { | |
| memoryObject := GetDeviceMemory(memory) | |
| assert(memoryObject.device == device) | |
| } | |
| committedMemoryInBytes := ? | |
| pCommittedMemoryInBytes[0] = committedMemoryInBytes | |
| } | |
| cmd void vkGetBufferMemoryRequirements( | |
| VkDevice device, | |
| VkBuffer buffer, | |
| VkMemoryRequirements* pMemoryRequirements) { | |
| deviceObject := GetDevice(device) | |
| bufferObject := GetBuffer(buffer) | |
| assert(bufferObject.device == device) | |
| } | |
| cmd VkResult vkBindBufferMemory( | |
| VkDevice device, | |
| VkBuffer buffer, | |
| VkDeviceMemory memory, | |
| VkDeviceSize memoryOffset) { | |
| deviceObject := GetDevice(device) | |
| bufferObject := GetBuffer(buffer) | |
| assert(bufferObject.device == device) | |
| // Unbind buffer from previous memory object, if not VK_NULL_HANDLE. | |
| if bufferObject.memory != NULL_HANDLE { | |
| memoryObject := GetDeviceMemory(bufferObject.memory) | |
| memoryObject.boundObjects[as!u64(buffer)] = null | |
| } | |
| // Bind buffer to given memory object, if not VK_NULL_HANDLE. | |
| if memory != NULL_HANDLE { | |
| memoryObject := GetDeviceMemory(memory) | |
| assert(memoryObject.device == device) | |
| memoryObject.boundObjects[as!u64(buffer)] = memoryOffset | |
| } | |
| bufferObject.memory = memory | |
| bufferObject.memoryOffset = memoryOffset | |
| return ? | |
| } | |
| cmd void vkGetImageMemoryRequirements( | |
| VkDevice device, | |
| VkImage image, | |
| VkMemoryRequirements* pMemoryRequirements) { | |
| deviceObject := GetDevice(device) | |
| imageObject := GetImage(image) | |
| assert(imageObject.device == device) | |
| } | |
| cmd VkResult vkBindImageMemory( | |
| VkDevice device, | |
| VkImage image, | |
| VkDeviceMemory memory, | |
| VkDeviceSize memoryOffset) { | |
| deviceObject := GetDevice(device) | |
| imageObject := GetImage(image) | |
| assert(imageObject.device == device) | |
| // Unbind image from previous memory object, if not VK_NULL_HANDLE. | |
| if imageObject.memory != NULL_HANDLE { | |
| memoryObject := GetDeviceMemory(imageObject.memory) | |
| memoryObject.boundObjects[as!u64(image)] = null | |
| } | |
| // Bind image to given memory object, if not VK_NULL_HANDLE. | |
| if memory != NULL_HANDLE { | |
| memoryObject := GetDeviceMemory(memory) | |
| assert(memoryObject.device == device) | |
| memoryObject.boundObjects[as!u64(image)] = memoryOffset | |
| } | |
| imageObject.memory = memory | |
| imageObject.memoryOffset = memoryOffset | |
| return ? | |
| } | |
| cmd void vkGetImageSparseMemoryRequirements( | |
| VkDevice device, | |
| VkImage image, | |
| u32* pSparseMemoryRequirementCount, | |
| VkSparseImageMemoryRequirements* pSparseMemoryRequirements) { | |
| deviceObject := GetDevice(device) | |
| imageObject := GetImage(image) | |
| assert(imageObject.device == device) | |
| } | |
| cmd void vkGetPhysicalDeviceSparseImageFormatProperties( | |
| VkPhysicalDevice physicalDevice, | |
| VkFormat format, | |
| VkImageType type, | |
| VkSampleCountFlagBits samples, | |
| VkImageUsageFlags usage, | |
| VkImageTiling tiling, | |
| u32* pPropertyCount, | |
| VkSparseImageFormatProperties* pProperties) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| } | |
| cmd VkResult vkQueueBindSparse( | |
| VkQueue queue, | |
| u32 bindInfoCount, | |
| const VkBindSparseInfo* pBindInfo, | |
| VkFence fence) { | |
| queueObject := GetQueue(queue) | |
| return ? | |
| } | |
| // Fence functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateFence( | |
| VkDevice device, | |
| const VkFenceCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkFence* pFence) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FENCE_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| fence := ? | |
| pFence[0] = fence | |
| State.Fences[fence] = new!FenceObject( | |
| device: device, signaled: (pCreateInfo.flags == as!VkFenceCreateFlags(VK_FENCE_CREATE_SIGNALED_BIT))) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyFence( | |
| VkDevice device, | |
| VkFence fence, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| fenceObject := GetFence(fence) | |
| assert(fenceObject.device == device) | |
| State.Fences[fence] = null | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkResetFences( | |
| VkDevice device, | |
| u32 fenceCount, | |
| const VkFence* pFences) { | |
| deviceObject := GetDevice(device) | |
| fences := pFences[0:fenceCount] | |
| for i in (0 .. fenceCount) { | |
| fence := fences[i] | |
| fenceObject := GetFence(fence) | |
| assert(fenceObject.device == device) | |
| fenceObject.signaled = false | |
| } | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkGetFenceStatus( | |
| VkDevice device, | |
| VkFence fence) { | |
| deviceObject := GetDevice(device) | |
| fenceObject := GetFence(fence) | |
| assert(fenceObject.device == device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkWaitForFences( | |
| VkDevice device, | |
| u32 fenceCount, | |
| const VkFence* pFences, | |
| VkBool32 waitAll, | |
| u64 timeout) { /// timeout in nanoseconds | |
| deviceObject := GetDevice(device) | |
| fences := pFences[0:fenceCount] | |
| for i in (0 .. fenceCount) { | |
| fence := fences[i] | |
| fenceObject := GetFence(fence) | |
| assert(fenceObject.device == device) | |
| } | |
| return ? | |
| } | |
| // Queue semaphore functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateSemaphore( | |
| VkDevice device, | |
| const VkSemaphoreCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSemaphore* pSemaphore) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| semaphore := ? | |
| pSemaphore[0] = semaphore | |
| State.Semaphores[semaphore] = new!SemaphoreObject(device: device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroySemaphore( | |
| VkDevice device, | |
| VkSemaphore semaphore, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| semaphoreObject := GetSemaphore(semaphore) | |
| assert(semaphoreObject.device == device) | |
| State.Semaphores[semaphore] = null | |
| } | |
| // Event functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateEvent( | |
| VkDevice device, | |
| const VkEventCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkEvent* pEvent) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| event := ? | |
| pEvent[0] = event | |
| State.Events[event] = new!EventObject(device: device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyEvent( | |
| VkDevice device, | |
| VkEvent event, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| eventObject := GetEvent(event) | |
| assert(eventObject.device == device) | |
| State.Events[event] = null | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkGetEventStatus( | |
| VkDevice device, | |
| VkEvent event) { | |
| deviceObject := GetDevice(device) | |
| eventObject := GetEvent(event) | |
| assert(eventObject.device == device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkSetEvent( | |
| VkDevice device, | |
| VkEvent event) { | |
| deviceObject := GetDevice(device) | |
| eventObject := GetEvent(event) | |
| assert(eventObject.device == device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkResetEvent( | |
| VkDevice device, | |
| VkEvent event) { | |
| deviceObject := GetDevice(device) | |
| eventObject := GetEvent(event) | |
| assert(eventObject.device == device) | |
| return ? | |
| } | |
| // Query functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateQueryPool( | |
| VkDevice device, | |
| const VkQueryPoolCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkQueryPool* pQueryPool) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| queryPool := ? | |
| pQueryPool[0] = queryPool | |
| State.QueryPools[queryPool] = new!QueryPoolObject(device: device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyQueryPool( | |
| VkDevice device, | |
| VkQueryPool queryPool, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| queryPoolObject := GetQueryPool(queryPool) | |
| assert(queryPoolObject.device == device) | |
| State.QueryPools[queryPool] = null | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkGetQueryPoolResults( | |
| VkDevice device, | |
| VkQueryPool queryPool, | |
| u32 firstQuery, | |
| u32 queryCount, | |
| platform.size_t dataSize, | |
| void* pData, | |
| VkDeviceSize stride, | |
| VkQueryResultFlags flags) { | |
| deviceObject := GetDevice(device) | |
| queryPoolObject := GetQueryPool(queryPool) | |
| assert(queryPoolObject.device == device) | |
| data := pData[0:dataSize] | |
| return ? | |
| } | |
| // Buffer functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateBuffer( | |
| VkDevice device, | |
| const VkBufferCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkBuffer* pBuffer) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| buffer := ? | |
| pBuffer[0] = buffer | |
| State.Buffers[buffer] = new!BufferObject(device: device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyBuffer( | |
| VkDevice device, | |
| VkBuffer buffer, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| bufferObject := GetBuffer(buffer) | |
| assert(bufferObject.device == device) | |
| assert(bufferObject.memory == 0) | |
| State.Buffers[buffer] = null | |
| } | |
| // Buffer view functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateBufferView( | |
| VkDevice device, | |
| const VkBufferViewCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkBufferView* pView) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| bufferObject := GetBuffer(pCreateInfo.buffer) | |
| assert(bufferObject.device == device) | |
| view := ? | |
| pView[0] = view | |
| State.BufferViews[view] = new!BufferViewObject(device: device, buffer: pCreateInfo.buffer) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyBufferView( | |
| VkDevice device, | |
| VkBufferView bufferView, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| bufferViewObject := GetBufferView(bufferView) | |
| assert(bufferViewObject.device == device) | |
| State.BufferViews[bufferView] = null | |
| } | |
| // Image functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateImage( | |
| VkDevice device, | |
| const VkImageCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkImage* pImage) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| image := ? | |
| pImage[0] = image | |
| State.Images[image] = new!ImageObject(device: device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyImage( | |
| VkDevice device, | |
| VkImage image, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| imageObject := GetImage(image) | |
| assert(imageObject.device == device) | |
| assert(imageObject.memory == 0) | |
| State.Images[image] = null | |
| } | |
| cmd void vkGetImageSubresourceLayout( | |
| VkDevice device, | |
| VkImage image, | |
| const VkImageSubresource* pSubresource, | |
| VkSubresourceLayout* pLayout) { | |
| deviceObject := GetDevice(device) | |
| imageObject := GetImage(image) | |
| assert(imageObject.device == device) | |
| } | |
| // Image view functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateImageView( | |
| VkDevice device, | |
| const VkImageViewCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkImageView* pView) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| imageObject := GetImage(pCreateInfo.image) | |
| assert(imageObject.device == device) | |
| view := ? | |
| pView[0] = view | |
| State.ImageViews[view] = new!ImageViewObject(device: device, image: pCreateInfo.image) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyImageView( | |
| VkDevice device, | |
| VkImageView imageView, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| imageViewObject := GetImageView(imageView) | |
| assert(imageViewObject.device == device) | |
| State.ImageViews[imageView] = null | |
| } | |
| // Shader functions | |
| cmd VkResult vkCreateShaderModule( | |
| VkDevice device, | |
| const VkShaderModuleCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkShaderModule* pShaderModule) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| shaderModule := ? | |
| pShaderModule[0] = shaderModule | |
| State.ShaderModules[shaderModule] = new!ShaderModuleObject(device: device) | |
| return ? | |
| } | |
| cmd void vkDestroyShaderModule( | |
| VkDevice device, | |
| VkShaderModule shaderModule, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| shaderModuleObject := GetShaderModule(shaderModule) | |
| assert(shaderModuleObject.device == device) | |
| State.ShaderModules[shaderModule] = null | |
| } | |
| // Pipeline functions | |
| cmd VkResult vkCreatePipelineCache( | |
| VkDevice device, | |
| const VkPipelineCacheCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkPipelineCache* pPipelineCache) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| pipelineCache := ? | |
| pPipelineCache[0] = pipelineCache | |
| State.PipelineCaches[pipelineCache] = new!PipelineCacheObject(device: device) | |
| return ? | |
| } | |
| cmd void vkDestroyPipelineCache( | |
| VkDevice device, | |
| VkPipelineCache pipelineCache, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| pipelineCacheObject := GetPipelineCache(pipelineCache) | |
| assert(pipelineCacheObject.device == device) | |
| State.PipelineCaches[pipelineCache] = null | |
| } | |
| cmd VkResult vkGetPipelineCacheData( | |
| VkDevice device, | |
| VkPipelineCache pipelineCache, | |
| platform.size_t* pDataSize, | |
| void* pData) { | |
| deviceObject := GetDevice(device) | |
| pipelineCacheObject := GetPipelineCache(pipelineCache) | |
| assert(pipelineCacheObject.device == device) | |
| return ? | |
| } | |
| cmd VkResult vkMergePipelineCaches( | |
| VkDevice device, | |
| VkPipelineCache dstCache, | |
| u32 srcCacheCount, | |
| const VkPipelineCache* pSrcCaches) { | |
| deviceObject := GetDevice(device) | |
| dstCacheObject := GetPipelineCache(dstCache) | |
| assert(dstCacheObject.device == device) | |
| srcCaches := pSrcCaches[0:srcCacheCount] | |
| for i in (0 .. srcCacheCount) { | |
| srcCache := srcCaches[i] | |
| srcCacheObject := GetPipelineCache(srcCache) | |
| assert(srcCacheObject.device == device) | |
| } | |
| return ? | |
| } | |
| cmd VkResult vkCreateGraphicsPipelines( | |
| VkDevice device, | |
| VkPipelineCache pipelineCache, | |
| u32 createInfoCount, | |
| const VkGraphicsPipelineCreateInfo* pCreateInfos, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkPipeline* pPipelines) { | |
| deviceObject := GetDevice(device) | |
| if pipelineCache != NULL_HANDLE { | |
| pipelineCacheObject := GetPipelineCache(pipelineCache) | |
| assert(pipelineCacheObject.device == device) | |
| } | |
| createInfos := pCreateInfos[0:createInfoCount] | |
| pipelines := pPipelines[0:createInfoCount] | |
| for i in (0 .. createInfoCount) { | |
| pipeline := ? | |
| pipelines[i] = pipeline | |
| State.Pipelines[pipeline] = new!PipelineObject(device: device) | |
| } | |
| return ? | |
| } | |
| cmd VkResult vkCreateComputePipelines( | |
| VkDevice device, | |
| VkPipelineCache pipelineCache, | |
| u32 createInfoCount, | |
| const VkComputePipelineCreateInfo* pCreateInfos, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkPipeline* pPipelines) { | |
| deviceObject := GetDevice(device) | |
| if pipelineCache != NULL_HANDLE { | |
| pipelineCacheObject := GetPipelineCache(pipelineCache) | |
| assert(pipelineCacheObject.device == device) | |
| } | |
| createInfos := pCreateInfos[0:createInfoCount] | |
| pipelines := pPipelines[0:createInfoCount] | |
| for i in (0 .. createInfoCount) { | |
| pipeline := ? | |
| pipelines[i] = pipeline | |
| State.Pipelines[pipeline] = new!PipelineObject(device: device) | |
| } | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyPipeline( | |
| VkDevice device, | |
| VkPipeline pipeline, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| pipelineObjects := GetPipeline(pipeline) | |
| assert(pipelineObjects.device == device) | |
| State.Pipelines[pipeline] = null | |
| } | |
| // Pipeline layout functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreatePipelineLayout( | |
| VkDevice device, | |
| const VkPipelineLayoutCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkPipelineLayout* pPipelineLayout) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| pipelineLayout := ? | |
| pPipelineLayout[0] = pipelineLayout | |
| State.PipelineLayouts[pipelineLayout] = new!PipelineLayoutObject(device: device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyPipelineLayout( | |
| VkDevice device, | |
| VkPipelineLayout pipelineLayout, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| pipelineLayoutObjects := GetPipelineLayout(pipelineLayout) | |
| assert(pipelineLayoutObjects.device == device) | |
| State.PipelineLayouts[pipelineLayout] = null | |
| } | |
| // Sampler functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateSampler( | |
| VkDevice device, | |
| const VkSamplerCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSampler* pSampler) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| sampler := ? | |
| pSampler[0] = sampler | |
| State.Samplers[sampler] = new!SamplerObject(device: device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroySampler( | |
| VkDevice device, | |
| VkSampler sampler, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| samplerObject := GetSampler(sampler) | |
| assert(samplerObject.device == device) | |
| State.Samplers[sampler] = null | |
| } | |
| // Descriptor set functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateDescriptorSetLayout( | |
| VkDevice device, | |
| const VkDescriptorSetLayoutCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkDescriptorSetLayout* pSetLayout) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| setLayout := ? | |
| pSetLayout[0] = setLayout | |
| State.DescriptorSetLayouts[setLayout] = new!DescriptorSetLayoutObject(device: device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyDescriptorSetLayout( | |
| VkDevice device, | |
| VkDescriptorSetLayout descriptorSetLayout, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| descriptorSetLayoutObject := GetDescriptorSetLayout(descriptorSetLayout) | |
| assert(descriptorSetLayoutObject.device == device) | |
| State.DescriptorSetLayouts[descriptorSetLayout] = null | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkCreateDescriptorPool( | |
| VkDevice device, | |
| const VkDescriptorPoolCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkDescriptorPool* pDescriptorPool) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| descriptorPool := ? | |
| pDescriptorPool[0] = descriptorPool | |
| State.DescriptorPools[descriptorPool] = new!DescriptorPoolObject(device: device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyDescriptorPool( | |
| VkDevice device, | |
| VkDescriptorPool descriptorPool, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| descriptorPoolObject := GetDescriptorPool(descriptorPool) | |
| assert(descriptorPoolObject.device == device) | |
| State.DescriptorPools[descriptorPool] = null | |
| } | |
| @threadSafety("app") | |
| cmd VkResult vkResetDescriptorPool( | |
| VkDevice device, | |
| VkDescriptorPool descriptorPool, | |
| VkDescriptorPoolResetFlags flags) { | |
| deviceObject := GetDevice(device) | |
| descriptorPoolObject := GetDescriptorPool(descriptorPool) | |
| assert(descriptorPoolObject.device == device) | |
| return ? | |
| } | |
| @threadSafety("app") | |
| cmd VkResult vkAllocateDescriptorSets( | |
| VkDevice device, | |
| const VkDescriptorSetAllocateInfo* pAllocateInfo, | |
| VkDescriptorSet* pDescriptorSets) { | |
| deviceObject := GetDevice(device) | |
| allocInfo := pAllocateInfo[0] | |
| descriptorPoolObject := GetDescriptorPool(allocInfo.descriptorPool) | |
| setLayouts := allocInfo.pSetLayouts[0:allocInfo.setCount] | |
| for i in (0 .. allocInfo.setCount) { | |
| setLayout := setLayouts[i] | |
| setLayoutObject := GetDescriptorSetLayout(setLayout) | |
| assert(setLayoutObject.device == device) | |
| } | |
| descriptorSets := pDescriptorSets[0:allocInfo.setCount] | |
| for i in (0 .. allocInfo.setCount) { | |
| descriptorSet := ? | |
| descriptorSets[i] = descriptorSet | |
| State.DescriptorSets[descriptorSet] = new!DescriptorSetObject(device: device) | |
| } | |
| return ? | |
| } | |
| cmd VkResult vkFreeDescriptorSets( | |
| VkDevice device, | |
| VkDescriptorPool descriptorPool, | |
| u32 descriptorSetCount, | |
| const VkDescriptorSet* pDescriptorSets) { | |
| deviceObject := GetDevice(device) | |
| descriptorPoolObject := GetDescriptorPool(descriptorPool) | |
| descriptorSets := pDescriptorSets[0:descriptorSetCount] | |
| for i in (0 .. descriptorSetCount) { | |
| descriptorSet := descriptorSets[i] | |
| descriptorSetObject := GetDescriptorSet(descriptorSet) | |
| assert(descriptorSetObject.device == device) | |
| State.DescriptorSets[descriptorSet] = null | |
| } | |
| return ? | |
| } | |
| cmd void vkUpdateDescriptorSets( | |
| VkDevice device, | |
| u32 descriptorWriteCount, | |
| const VkWriteDescriptorSet* pDescriptorWrites, | |
| u32 descriptorCopyCount, | |
| const VkCopyDescriptorSet* pDescriptorCopies) { | |
| deviceObject := GetDevice(device) | |
| descriptorWrites := pDescriptorWrites[0:descriptorWriteCount] | |
| for i in (0 .. descriptorWriteCount) { | |
| descriptorWrite := descriptorWrites[i] | |
| descriptorWriteObject := GetDescriptorSet(descriptorWrite.dstSet) | |
| assert(descriptorWriteObject.device == device) | |
| } | |
| descriptorCopies := pDescriptorCopies[0:descriptorCopyCount] | |
| for i in (0 .. descriptorCopyCount) { | |
| descriptorCopy := descriptorCopies[i] | |
| descriptorCopyObject := GetDescriptorSet(descriptorCopy.dstSet) | |
| assert(descriptorCopyObject.device == device) | |
| } | |
| } | |
| // Framebuffer functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateFramebuffer( | |
| VkDevice device, | |
| const VkFramebufferCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkFramebuffer* pFramebuffer) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| framebuffer := ? | |
| pFramebuffer[0] = framebuffer | |
| State.Framebuffers[framebuffer] = new!FramebufferObject(device: device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyFramebuffer( | |
| VkDevice device, | |
| VkFramebuffer framebuffer, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| framebufferObject := GetFramebuffer(framebuffer) | |
| assert(framebufferObject.device == device) | |
| State.Framebuffers[framebuffer] = null | |
| } | |
| // Renderpass functions | |
| @threadSafety("system") | |
| cmd VkResult vkCreateRenderPass( | |
| VkDevice device, | |
| const VkRenderPassCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkRenderPass* pRenderPass) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| renderpass := ? | |
| pRenderPass[0] = renderpass | |
| State.RenderPasses[renderpass] = new!RenderPassObject(device: device) | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkDestroyRenderPass( | |
| VkDevice device, | |
| VkRenderPass renderPass, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| renderPassObject := GetRenderPass(renderPass) | |
| assert(renderPassObject.device == device) | |
| State.RenderPasses[renderPass] = null | |
| } | |
| cmd void vkGetRenderAreaGranularity( | |
| VkDevice device, | |
| VkRenderPass renderPass, | |
| VkExtent2D* pGranularity) { | |
| deviceObject := GetDevice(device) | |
| renderPassObject := GetRenderPass(renderPass) | |
| granularity := ? | |
| pGranularity[0] = granularity | |
| } | |
| // Command pool functions | |
| cmd VkResult vkCreateCommandPool( | |
| VkDevice device, | |
| const VkCommandPoolCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkCommandPool* pCommandPool) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO) | |
| deviceObject := GetDevice(device) | |
| commandPool := ? | |
| pCommandPool[0] = commandPool | |
| State.CommandPools[commandPool] = new!CommandPoolObject(device: device) | |
| return ? | |
| } | |
| cmd void vkDestroyCommandPool( | |
| VkDevice device, | |
| VkCommandPool commandPool, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| commandPoolObject := GetCommandPool(commandPool) | |
| assert(commandPoolObject.device == device) | |
| State.CommandPools[commandPool] = null | |
| } | |
| cmd VkResult vkResetCommandPool( | |
| VkDevice device, | |
| VkCommandPool commandPool, | |
| VkCommandPoolResetFlags flags) { | |
| deviceObject := GetDevice(device) | |
| commandPoolObject := GetCommandPool(commandPool) | |
| assert(commandPoolObject.device == device) | |
| return ? | |
| } | |
| // Command buffer functions | |
| macro void bindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) { | |
| memoryObject := GetDeviceMemory(memory) | |
| memoryObject.boundCommandBuffers[commandBuffer] = commandBuffer | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.boundObjects[as!u64(obj)] = memory | |
| } | |
| macro void unbindCommandBuffer(VkCommandBuffer commandBuffer, any obj, VkDeviceMemory memory) { | |
| memoryObject := GetDeviceMemory(memory) | |
| memoryObject.boundCommandBuffers[commandBuffer] = null | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.boundObjects[as!u64(obj)] = null | |
| } | |
| @threadSafety("system") | |
| cmd VkResult vkAllocateCommandBuffers( | |
| VkDevice device, | |
| const VkCommandBufferAllocateInfo* pAllocateInfo, | |
| VkCommandBuffer* pCommandBuffers) { | |
| assert(pAllocateInfo[0].sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO) | |
| count := pAllocateInfo[0].commandBufferCount | |
| commandBuffers := pCommandBuffers[0:count] | |
| for i in (0 .. count) { | |
| commandBuffer := ? | |
| commandBuffers[i] = commandBuffer | |
| State.CommandBuffers[commandBuffer] = new!CommandBufferObject(device: device) | |
| } | |
| return ? | |
| } | |
| @threadSafety("system") | |
| cmd void vkFreeCommandBuffers( | |
| VkDevice device, | |
| VkCommandPool commandPool, | |
| u32 commandBufferCount, | |
| const VkCommandBuffer* pCommandBuffers) { | |
| deviceObject := GetDevice(device) | |
| commandBuffers := pCommandBuffers[0:commandBufferCount] | |
| for i in (0 .. commandBufferCount) { | |
| commandBufferObject := GetCommandBuffer(commandBuffers[i]) | |
| assert(commandBufferObject.device == device) | |
| // TODO: iterate over boundObjects and clear memory bindings | |
| State.CommandBuffers[commandBuffers[i]] = null | |
| } | |
| } | |
| @threadSafety("app") | |
| cmd VkResult vkBeginCommandBuffer( | |
| VkCommandBuffer commandBuffer, | |
| const VkCommandBufferBeginInfo* pBeginInfo) { | |
| assert(pBeginInfo.sType == VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO) | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| // TODO: iterate over boundObjects and clear memory bindings | |
| return ? | |
| } | |
| @threadSafety("app") | |
| cmd VkResult vkEndCommandBuffer( | |
| VkCommandBuffer commandBuffer) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| return ? | |
| } | |
| @threadSafety("app") | |
| cmd VkResult vkResetCommandBuffer( | |
| VkCommandBuffer commandBuffer, | |
| VkCommandBufferResetFlags flags) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| // TODO: iterate over boundObjects and clear memory bindings | |
| return ? | |
| } | |
| // Command buffer building functions | |
| @threadSafety("app") | |
| cmd void vkCmdBindPipeline( | |
| VkCommandBuffer commandBuffer, | |
| VkPipelineBindPoint pipelineBindPoint, | |
| VkPipeline pipeline) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| pipelineObject := GetPipeline(pipeline) | |
| assert(commandBufferObject.device == pipelineObject.device) | |
| queue := switch (pipelineBindPoint) { | |
| case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT | |
| case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT | |
| } | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdSetViewport( | |
| VkCommandBuffer commandBuffer, | |
| u32 firstViewport, | |
| u32 viewportCount, | |
| const VkViewport* pViewports) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdSetScissor( | |
| VkCommandBuffer commandBuffer, | |
| u32 firstScissor, | |
| u32 scissorCount, | |
| const VkRect2D* pScissors) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdSetLineWidth( | |
| VkCommandBuffer commandBuffer, | |
| f32 lineWidth) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdSetDepthBias( | |
| VkCommandBuffer commandBuffer, | |
| f32 depthBiasConstantFactor, | |
| f32 depthBiasClamp, | |
| f32 depthBiasSlopeFactor) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdSetBlendConstants( | |
| VkCommandBuffer commandBuffer, | |
| // TODO(jessehall): apic only supports 'const' on pointer types. Using | |
| // an annotation as a quick hack to pass this to the template without | |
| // having to modify the AST and semantic model. | |
| @readonly f32[4] blendConstants) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdSetDepthBounds( | |
| VkCommandBuffer commandBuffer, | |
| f32 minDepthBounds, | |
| f32 maxDepthBounds) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdSetStencilCompareMask( | |
| VkCommandBuffer commandBuffer, | |
| VkStencilFaceFlags faceMask, | |
| u32 compareMask) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdSetStencilWriteMask( | |
| VkCommandBuffer commandBuffer, | |
| VkStencilFaceFlags faceMask, | |
| u32 writeMask) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdSetStencilReference( | |
| VkCommandBuffer commandBuffer, | |
| VkStencilFaceFlags faceMask, | |
| u32 reference) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdBindDescriptorSets( | |
| VkCommandBuffer commandBuffer, | |
| VkPipelineBindPoint pipelineBindPoint, | |
| VkPipelineLayout layout, | |
| u32 firstSet, | |
| u32 descriptorSetCount, | |
| const VkDescriptorSet* pDescriptorSets, | |
| u32 dynamicOffsetCount, | |
| const u32* pDynamicOffsets) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| descriptorSets := pDescriptorSets[0:descriptorSetCount] | |
| for i in (0 .. descriptorSetCount) { | |
| descriptorSet := descriptorSets[i] | |
| descriptorSetObject := GetDescriptorSet(descriptorSet) | |
| assert(commandBufferObject.device == descriptorSetObject.device) | |
| } | |
| dynamicOffsets := pDynamicOffsets[0:dynamicOffsetCount] | |
| for i in (0 .. dynamicOffsetCount) { | |
| dynamicOffset := dynamicOffsets[i] | |
| } | |
| queue := switch (pipelineBindPoint) { | |
| case VK_PIPELINE_BIND_POINT_COMPUTE: VK_QUEUE_COMPUTE_BIT | |
| case VK_PIPELINE_BIND_POINT_GRAPHICS: VK_QUEUE_GRAPHICS_BIT | |
| } | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, queue) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdBindIndexBuffer( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer buffer, | |
| VkDeviceSize offset, | |
| VkIndexType indexType) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| bufferObject := GetBuffer(buffer) | |
| assert(commandBufferObject.device == bufferObject.device) | |
| bindCommandBuffer(commandBuffer, buffer, bufferObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdBindVertexBuffers( | |
| VkCommandBuffer commandBuffer, | |
| u32 firstBinding, | |
| u32 bindingCount, | |
| const VkBuffer* pBuffers, | |
| const VkDeviceSize* pOffsets) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| // TODO: check if not [firstBinding:firstBinding+bindingCount] | |
| buffers := pBuffers[0:bindingCount] | |
| offsets := pOffsets[0:bindingCount] | |
| for i in (0 .. bindingCount) { | |
| buffer := buffers[i] | |
| offset := offsets[i] | |
| bufferObject := GetBuffer(buffer) | |
| assert(commandBufferObject.device == bufferObject.device) | |
| bindCommandBuffer(commandBuffer, buffer, bufferObject.memory) | |
| } | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdDraw( | |
| VkCommandBuffer commandBuffer, | |
| u32 vertexCount, | |
| u32 instanceCount, | |
| u32 firstVertex, | |
| u32 firstInstance) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdDrawIndexed( | |
| VkCommandBuffer commandBuffer, | |
| u32 indexCount, | |
| u32 instanceCount, | |
| u32 firstIndex, | |
| s32 vertexOffset, | |
| u32 firstInstance) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdDrawIndirect( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer buffer, | |
| VkDeviceSize offset, | |
| u32 drawCount, | |
| u32 stride) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| bufferObject := GetBuffer(buffer) | |
| assert(commandBufferObject.device == bufferObject.device) | |
| bindCommandBuffer(commandBuffer, buffer, bufferObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdDrawIndexedIndirect( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer buffer, | |
| VkDeviceSize offset, | |
| u32 drawCount, | |
| u32 stride) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| bufferObject := GetBuffer(buffer) | |
| assert(commandBufferObject.device == bufferObject.device) | |
| bindCommandBuffer(commandBuffer, buffer, bufferObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdDispatch( | |
| VkCommandBuffer commandBuffer, | |
| u32 groupCountX, | |
| u32 groupCountY, | |
| u32 groupCountZ) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdDispatchIndirect( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer buffer, | |
| VkDeviceSize offset) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| bufferObject := GetBuffer(buffer) | |
| assert(commandBufferObject.device == bufferObject.device) | |
| bindCommandBuffer(commandBuffer, buffer, bufferObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_COMPUTE_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdCopyBuffer( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer srcBuffer, | |
| VkBuffer dstBuffer, | |
| u32 regionCount, | |
| const VkBufferCopy* pRegions) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| srcBufferObject := GetBuffer(srcBuffer) | |
| dstBufferObject := GetBuffer(dstBuffer) | |
| assert(commandBufferObject.device == srcBufferObject.device) | |
| assert(commandBufferObject.device == dstBufferObject.device) | |
| regions := pRegions[0:regionCount] | |
| for i in (0 .. regionCount) { | |
| region := regions[i] | |
| } | |
| bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory) | |
| bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdCopyImage( | |
| VkCommandBuffer commandBuffer, | |
| VkImage srcImage, | |
| VkImageLayout srcImageLayout, | |
| VkImage dstImage, | |
| VkImageLayout dstImageLayout, | |
| u32 regionCount, | |
| const VkImageCopy* pRegions) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| srcImageObject := GetImage(srcImage) | |
| dstImageObject := GetImage(dstImage) | |
| assert(commandBufferObject.device == srcImageObject.device) | |
| assert(commandBufferObject.device == dstImageObject.device) | |
| regions := pRegions[0:regionCount] | |
| for i in (0 .. regionCount) { | |
| region := regions[i] | |
| } | |
| bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory) | |
| bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdBlitImage( | |
| VkCommandBuffer commandBuffer, | |
| VkImage srcImage, | |
| VkImageLayout srcImageLayout, | |
| VkImage dstImage, | |
| VkImageLayout dstImageLayout, | |
| u32 regionCount, | |
| const VkImageBlit* pRegions, | |
| VkFilter filter) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| srcImageObject := GetImage(srcImage) | |
| dstImageObject := GetImage(dstImage) | |
| assert(commandBufferObject.device == srcImageObject.device) | |
| assert(commandBufferObject.device == dstImageObject.device) | |
| regions := pRegions[0:regionCount] | |
| for i in (0 .. regionCount) { | |
| region := regions[i] | |
| } | |
| bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory) | |
| bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdCopyBufferToImage( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer srcBuffer, | |
| VkImage dstImage, | |
| VkImageLayout dstImageLayout, | |
| u32 regionCount, | |
| const VkBufferImageCopy* pRegions) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| srcBufferObject := GetBuffer(srcBuffer) | |
| dstImageObject := GetImage(dstImage) | |
| assert(commandBufferObject.device == srcBufferObject.device) | |
| assert(commandBufferObject.device == dstImageObject.device) | |
| regions := pRegions[0:regionCount] | |
| for i in (0 .. regionCount) { | |
| region := regions[i] | |
| } | |
| bindCommandBuffer(commandBuffer, srcBuffer, srcBufferObject.memory) | |
| bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdCopyImageToBuffer( | |
| VkCommandBuffer commandBuffer, | |
| VkImage srcImage, | |
| VkImageLayout srcImageLayout, | |
| VkBuffer dstBuffer, | |
| u32 regionCount, | |
| const VkBufferImageCopy* pRegions) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| srcImageObject := GetImage(srcImage) | |
| dstBufferObject := GetBuffer(dstBuffer) | |
| assert(commandBufferObject.device == srcImageObject.device) | |
| assert(commandBufferObject.device == dstBufferObject.device) | |
| regions := pRegions[0:regionCount] | |
| for i in (0 .. regionCount) { | |
| region := regions[i] | |
| } | |
| bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory) | |
| bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdUpdateBuffer( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer dstBuffer, | |
| VkDeviceSize dstOffset, | |
| VkDeviceSize dataSize, | |
| const void* pData) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| dstBufferObject := GetBuffer(dstBuffer) | |
| assert(commandBufferObject.device == dstBufferObject.device) | |
| data := pData[0:dataSize] | |
| bindCommandBuffer(commandBuffer, dstBuffer, dstBufferObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdFillBuffer( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer dstBuffer, | |
| VkDeviceSize dstOffset, | |
| VkDeviceSize size, | |
| u32 data) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| dstBufferObject := GetBuffer(dstBuffer) | |
| assert(commandBufferObject.device == dstBufferObject.device) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_TRANSFER_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdClearColorImage( | |
| VkCommandBuffer commandBuffer, | |
| VkImage image, | |
| VkImageLayout imageLayout, | |
| const VkClearColorValue* pColor, | |
| u32 rangeCount, | |
| const VkImageSubresourceRange* pRanges) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| imageObject := GetImage(image) | |
| assert(commandBufferObject.device == imageObject.device) | |
| ranges := pRanges[0:rangeCount] | |
| for i in (0 .. rangeCount) { | |
| range := ranges[i] | |
| } | |
| bindCommandBuffer(commandBuffer, image, imageObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdClearDepthStencilImage( | |
| VkCommandBuffer commandBuffer, | |
| VkImage image, | |
| VkImageLayout imageLayout, | |
| const VkClearDepthStencilValue* pDepthStencil, | |
| u32 rangeCount, | |
| const VkImageSubresourceRange* pRanges) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| imageObject := GetImage(image) | |
| assert(commandBufferObject.device == imageObject.device) | |
| ranges := pRanges[0:rangeCount] | |
| for i in (0 .. rangeCount) { | |
| range := ranges[i] | |
| } | |
| bindCommandBuffer(commandBuffer, image, imageObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdClearAttachments( | |
| VkCommandBuffer commandBuffer, | |
| u32 attachmentCount, | |
| const VkClearAttachment* pAttachments, | |
| u32 rectCount, | |
| const VkClearRect* pRects) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| rects := pRects[0:rectCount] | |
| for i in (0 .. rectCount) { | |
| rect := rects[i] | |
| } | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdResolveImage( | |
| VkCommandBuffer commandBuffer, | |
| VkImage srcImage, | |
| VkImageLayout srcImageLayout, | |
| VkImage dstImage, | |
| VkImageLayout dstImageLayout, | |
| u32 regionCount, | |
| const VkImageResolve* pRegions) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| srcImageObject := GetImage(srcImage) | |
| dstImageObject := GetImage(dstImage) | |
| assert(commandBufferObject.device == srcImageObject.device) | |
| assert(commandBufferObject.device == dstImageObject.device) | |
| regions := pRegions[0:regionCount] | |
| for i in (0 .. regionCount) { | |
| region := regions[i] | |
| } | |
| bindCommandBuffer(commandBuffer, srcImage, srcImageObject.memory) | |
| bindCommandBuffer(commandBuffer, dstImage, dstImageObject.memory) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdSetEvent( | |
| VkCommandBuffer commandBuffer, | |
| VkEvent event, | |
| VkPipelineStageFlags stageMask) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| eventObject := GetEvent(event) | |
| assert(commandBufferObject.device == eventObject.device) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdResetEvent( | |
| VkCommandBuffer commandBuffer, | |
| VkEvent event, | |
| VkPipelineStageFlags stageMask) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| eventObject := GetEvent(event) | |
| assert(commandBufferObject.device == eventObject.device) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdWaitEvents( | |
| VkCommandBuffer commandBuffer, | |
| u32 eventCount, | |
| const VkEvent* pEvents, | |
| VkPipelineStageFlags srcStageMask, | |
| VkPipelineStageFlags dstStageMask, | |
| u32 memoryBarrierCount, | |
| const VkMemoryBarrier* pMemoryBarriers, | |
| u32 bufferMemoryBarrierCount, | |
| const VkBufferMemoryBarrier* pBufferMemoryBarriers, | |
| u32 imageMemoryBarrierCount, | |
| const VkImageMemoryBarrier* pImageMemoryBarriers) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| events := pEvents[0:eventCount] | |
| for i in (0 .. eventCount) { | |
| event := events[i] | |
| eventObject := GetEvent(event) | |
| assert(commandBufferObject.device == eventObject.device) | |
| } | |
| memoryBarriers := pMemoryBarriers[0:memoryBarrierCount] | |
| for i in (0 .. memoryBarrierCount) { | |
| memoryBarrier := memoryBarriers[i] | |
| } | |
| bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount] | |
| for i in (0 .. bufferMemoryBarrierCount) { | |
| bufferMemoryBarrier := bufferMemoryBarriers[i] | |
| bufferObject := GetBuffer(bufferMemoryBarrier.buffer) | |
| assert(bufferObject.device == commandBufferObject.device) | |
| } | |
| imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount] | |
| for i in (0 .. imageMemoryBarrierCount) { | |
| imageMemoryBarrier := imageMemoryBarriers[i] | |
| imageObject := GetImage(imageMemoryBarrier.image) | |
| assert(imageObject.device == commandBufferObject.device) | |
| } | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdPipelineBarrier( | |
| VkCommandBuffer commandBuffer, | |
| VkPipelineStageFlags srcStageMask, | |
| VkPipelineStageFlags dstStageMask, | |
| VkDependencyFlags dependencyFlags, | |
| u32 memoryBarrierCount, | |
| const VkMemoryBarrier* pMemoryBarriers, | |
| u32 bufferMemoryBarrierCount, | |
| const VkBufferMemoryBarrier* pBufferMemoryBarriers, | |
| u32 imageMemoryBarrierCount, | |
| const VkImageMemoryBarrier* pImageMemoryBarriers) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| memoryBarriers := pMemoryBarriers[0:memoryBarrierCount] | |
| for i in (0 .. memoryBarrierCount) { | |
| memoryBarrier := memoryBarriers[i] | |
| } | |
| bufferMemoryBarriers := pBufferMemoryBarriers[0:bufferMemoryBarrierCount] | |
| for i in (0 .. bufferMemoryBarrierCount) { | |
| bufferMemoryBarrier := bufferMemoryBarriers[i] | |
| bufferObject := GetBuffer(bufferMemoryBarrier.buffer) | |
| assert(bufferObject.device == commandBufferObject.device) | |
| } | |
| imageMemoryBarriers := pImageMemoryBarriers[0:imageMemoryBarrierCount] | |
| for i in (0 .. imageMemoryBarrierCount) { | |
| imageMemoryBarrier := imageMemoryBarriers[i] | |
| imageObject := GetImage(imageMemoryBarrier.image) | |
| assert(imageObject.device == commandBufferObject.device) | |
| } | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdBeginQuery( | |
| VkCommandBuffer commandBuffer, | |
| VkQueryPool queryPool, | |
| u32 query, | |
| VkQueryControlFlags flags) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| queryPoolObject := GetQueryPool(queryPool) | |
| assert(commandBufferObject.device == queryPoolObject.device) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdEndQuery( | |
| VkCommandBuffer commandBuffer, | |
| VkQueryPool queryPool, | |
| u32 query) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| queryPoolObject := GetQueryPool(queryPool) | |
| assert(commandBufferObject.device == queryPoolObject.device) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdResetQueryPool( | |
| VkCommandBuffer commandBuffer, | |
| VkQueryPool queryPool, | |
| u32 firstQuery, | |
| u32 queryCount) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| queryPoolObject := GetQueryPool(queryPool) | |
| assert(commandBufferObject.device == queryPoolObject.device) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdWriteTimestamp( | |
| VkCommandBuffer commandBuffer, | |
| VkPipelineStageFlagBits pipelineStage, | |
| VkQueryPool queryPool, | |
| u32 query) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| queryPoolObject := GetQueryPool(queryPool) | |
| assert(commandBufferObject.device == queryPoolObject.device) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdCopyQueryPoolResults( | |
| VkCommandBuffer commandBuffer, | |
| VkQueryPool queryPool, | |
| u32 firstQuery, | |
| u32 queryCount, | |
| VkBuffer dstBuffer, | |
| VkDeviceSize dstOffset, | |
| VkDeviceSize stride, | |
| VkQueryResultFlags flags) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| queryPoolObject := GetQueryPool(queryPool) | |
| dstBufferObject := GetBuffer(dstBuffer) | |
| assert(commandBufferObject.device == queryPoolObject.device) | |
| assert(commandBufferObject.device == dstBufferObject.device) | |
| } | |
| cmd void vkCmdPushConstants( | |
| VkCommandBuffer commandBuffer, | |
| VkPipelineLayout layout, | |
| VkShaderStageFlags stageFlags, | |
| u32 offset, | |
| u32 size, | |
| const void* pValues) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| layoutObject := GetPipelineLayout(layout) | |
| assert(commandBufferObject.device == layoutObject.device) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdBeginRenderPass( | |
| VkCommandBuffer commandBuffer, | |
| const VkRenderPassBeginInfo* pRenderPassBegin, | |
| VkSubpassContents contents) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| renderPassObject := GetRenderPass(pRenderPassBegin.renderPass) | |
| framebufferObject := GetFramebuffer(pRenderPassBegin.framebuffer) | |
| assert(commandBufferObject.device == renderPassObject.device) | |
| assert(commandBufferObject.device == framebufferObject.device) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| cmd void vkCmdNextSubpass( | |
| VkCommandBuffer commandBuffer, | |
| VkSubpassContents contents) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| } | |
| @threadSafety("app") | |
| cmd void vkCmdEndRenderPass( | |
| VkCommandBuffer commandBuffer) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBufferObject.queueFlags = AddQueueFlag(commandBufferObject.queueFlags, VK_QUEUE_GRAPHICS_BIT) | |
| } | |
| cmd void vkCmdExecuteCommands( | |
| VkCommandBuffer commandBuffer, | |
| u32 commandBufferCount, | |
| const VkCommandBuffer* pCommandBuffers) { | |
| commandBufferObject := GetCommandBuffer(commandBuffer) | |
| commandBuffers := pCommandBuffers[0:commandBufferCount] | |
| for i in (0 .. commandBufferCount) { | |
| secondaryCommandBuffer := commandBuffers[i] | |
| secondaryCommandBufferObject := GetCommandBuffer(secondaryCommandBuffer) | |
| assert(commandBufferObject.device == secondaryCommandBufferObject.device) | |
| } | |
| } | |
| //@vulkan1_1 functions | |
| @vulkan1_1 | |
| cmd VkResult vkEnumerateInstanceVersion( | |
| u32* pApiVersion) { | |
| return ? | |
| } | |
| @vulkan1_1 | |
| cmd VkResult vkBindBufferMemory2( | |
| VkDevice device, | |
| u32 bindInfoCount, | |
| const VkBindBufferMemoryInfo* pBindInfos) { | |
| return ? | |
| } | |
| @vulkan1_1 | |
| cmd VkResult vkBindImageMemory2( | |
| VkDevice device, | |
| u32 bindInfoCount, | |
| const VkBindImageMemoryInfo* pBindInfos) { | |
| return ? | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetDeviceGroupPeerMemoryFeatures( | |
| VkDevice device, | |
| u32 heapIndex, | |
| u32 localDeviceIndex, | |
| u32 remoteDeviceIndex, | |
| VkPeerMemoryFeatureFlags* pPeerMemoryFeatures) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkCmdSetDeviceMask( | |
| VkCommandBuffer commandBuffer, | |
| u32 deviceMask) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkCmdDispatchBase( | |
| VkCommandBuffer commandBuffer, | |
| u32 baseGroupX, | |
| u32 baseGroupY, | |
| u32 baseGroupZ, | |
| u32 groupCountX, | |
| u32 groupCountY, | |
| u32 groupCountZ) { | |
| } | |
| @threadSafety("system") | |
| @vulkan1_1 | |
| cmd VkResult vkEnumeratePhysicalDeviceGroups( | |
| VkInstance instance, | |
| u32* pPhysicalDeviceGroupCount, | |
| VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties) { | |
| instanceObject := GetInstance(instance) | |
| physicalDeviceGroupCount := as!u32(?) | |
| pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount | |
| physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount] | |
| for i in (0 .. physicalDeviceGroupCount) { | |
| physicalDevice := ? | |
| physicalDevices[i] = physicalDevice | |
| if !(physicalDevice in State.PhysicalDevices) { | |
| State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance) | |
| } | |
| } | |
| return ? | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetImageMemoryRequirements2( | |
| VkDevice device, | |
| const VkImageMemoryRequirementsInfo2* pInfo, | |
| VkMemoryRequirements2* pMemoryRequirements) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetBufferMemoryRequirements2( | |
| VkDevice device, | |
| const VkBufferMemoryRequirementsInfo2* pInfo, | |
| VkMemoryRequirements2* pMemoryRequirements) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetImageSparseMemoryRequirements2( | |
| VkDevice device, | |
| const VkImageSparseMemoryRequirementsInfo2* pInfo, | |
| u32* pSparseMemoryRequirementCount, | |
| VkSparseImageMemoryRequirements2* pSparseMemoryRequirements) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetPhysicalDeviceFeatures2( | |
| VkPhysicalDevice physicalDevice, | |
| VkPhysicalDeviceFeatures2* pFeatures) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetPhysicalDeviceProperties2( | |
| VkPhysicalDevice physicalDevice, | |
| VkPhysicalDeviceProperties2* pProperties) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetPhysicalDeviceFormatProperties2( | |
| VkPhysicalDevice physicalDevice, | |
| VkFormat format, | |
| VkFormatProperties2* pFormatProperties) { | |
| } | |
| @vulkan1_1 | |
| cmd VkResult vkGetPhysicalDeviceImageFormatProperties2( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, | |
| VkImageFormatProperties2* pImageFormatProperties) { | |
| return ? | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetPhysicalDeviceQueueFamilyProperties2( | |
| VkPhysicalDevice physicalDevice, | |
| u32* pQueueFamilyPropertyCount, | |
| VkQueueFamilyProperties2* pQueueFamilyProperties) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetPhysicalDeviceMemoryProperties2( | |
| VkPhysicalDevice physicalDevice, | |
| VkPhysicalDeviceMemoryProperties2* pMemoryProperties) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetPhysicalDeviceSparseImageFormatProperties2( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, | |
| u32* pPropertyCount, | |
| VkSparseImageFormatProperties2* pProperties) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkTrimCommandPool( | |
| VkDevice device, | |
| VkCommandPool commandPool, | |
| VkCommandPoolTrimFlags flags) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetDeviceQueue2( | |
| VkDevice device, | |
| const VkDeviceQueueInfo2* pQueueInfo, | |
| VkQueue* pQueue) { | |
| deviceObject := GetDevice(device) | |
| queue := ? | |
| pQueue[0] = queue | |
| if !(queue in State.Queues) { | |
| State.Queues[queue] = new!QueueObject(device: device) | |
| } | |
| } | |
| @vulkan1_1 | |
| cmd VkResult vkCreateSamplerYcbcrConversion( | |
| VkDevice device, | |
| const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSamplerYcbcrConversion* pYcbcrConversion) { | |
| return ? | |
| } | |
| @vulkan1_1 | |
| cmd void vkDestroySamplerYcbcrConversion( | |
| VkDevice device, | |
| VkSamplerYcbcrConversion ycbcrConversion, | |
| const VkAllocationCallbacks* pAllocator) { | |
| } | |
| @vulkan1_1 | |
| cmd VkResult vkCreateDescriptorUpdateTemplate( | |
| VkDevice device, | |
| const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate) { | |
| return ? | |
| } | |
| @vulkan1_1 | |
| cmd void vkDestroyDescriptorUpdateTemplate( | |
| VkDevice device, | |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, | |
| const VkAllocationCallbacks* pAllocator) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkUpdateDescriptorSetWithTemplate( | |
| VkDevice device, | |
| VkDescriptorSet descriptorSet, | |
| VkDescriptorUpdateTemplate descriptorUpdateTemplate, | |
| const void* pData) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetPhysicalDeviceExternalBufferProperties( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, | |
| VkExternalBufferProperties* pExternalBufferProperties) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetPhysicalDeviceExternalFenceProperties( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, | |
| VkExternalFenceProperties* pExternalFenceProperties) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetPhysicalDeviceExternalSemaphoreProperties( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, | |
| VkExternalSemaphoreProperties* pExternalSemaphoreProperties) { | |
| } | |
| @vulkan1_1 | |
| cmd void vkGetDescriptorSetLayoutSupport( | |
| VkDevice device, | |
| const VkDescriptorSetLayoutCreateInfo* pCreateInfo, | |
| VkDescriptorSetLayoutSupport* pSupport) { | |
| } | |
| @extension("VK_KHR_surface") // 1 | |
| cmd void vkDestroySurfaceKHR( | |
| VkInstance instance, | |
| VkSurfaceKHR surface, | |
| const VkAllocationCallbacks* pAllocator) { | |
| instanceObject := GetInstance(instance) | |
| surfaceObject := GetSurface(surface) | |
| assert(surfaceObject.instance == instance) | |
| State.Surfaces[surface] = null | |
| } | |
| @extension("VK_KHR_surface") // 1 | |
| cmd VkResult vkGetPhysicalDeviceSurfaceSupportKHR( | |
| VkPhysicalDevice physicalDevice, | |
| u32 queueFamilyIndex, | |
| VkSurfaceKHR surface, | |
| VkBool32* pSupported) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| return ? | |
| } | |
| @extension("VK_KHR_surface") // 1 | |
| cmd VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkSurfaceKHR surface, | |
| VkSurfaceCapabilitiesKHR* pSurfaceCapabilities) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| surfaceCapabilities := ? | |
| pSurfaceCapabilities[0] = surfaceCapabilities | |
| return ? | |
| } | |
| @extension("VK_KHR_surface") // 1 | |
| cmd VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkSurfaceKHR surface, | |
| u32* pSurfaceFormatCount, | |
| VkSurfaceFormatKHR* pSurfaceFormats) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| count := as!u32(?) | |
| pSurfaceFormatCount[0] = count | |
| surfaceFormats := pSurfaceFormats[0:count] | |
| for i in (0 .. count) { | |
| surfaceFormat := ? | |
| surfaceFormats[i] = surfaceFormat | |
| } | |
| return ? | |
| } | |
| @extension("VK_KHR_surface") // 1 | |
| cmd VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkSurfaceKHR surface, | |
| u32* pPresentModeCount, | |
| VkPresentModeKHR* pPresentModes) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| count := as!u32(?) | |
| pPresentModeCount[0] = count | |
| presentModes := pPresentModes[0:count] | |
| for i in (0 .. count) { | |
| presentMode := ? | |
| presentModes[i] = presentMode | |
| } | |
| return ? | |
| } | |
| @extension("VK_KHR_swapchain") // 2 | |
| cmd VkResult vkCreateSwapchainKHR( | |
| VkDevice device, | |
| const VkSwapchainCreateInfoKHR* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSwapchainKHR* pSwapchain) { | |
| assert(pCreateInfo.sType == VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR) | |
| deviceObject := GetDevice(device) | |
| swapchain := ? | |
| pSwapchain[0] = swapchain | |
| State.Swapchains[swapchain] = new!SwapchainObject(device: device) | |
| return ? | |
| } | |
| @extension("VK_KHR_swapchain") // 2 | |
| cmd void vkDestroySwapchainKHR( | |
| VkDevice device, | |
| VkSwapchainKHR swapchain, | |
| const VkAllocationCallbacks* pAllocator) { | |
| deviceObject := GetDevice(device) | |
| swapchainObject := GetSwapchain(swapchain) | |
| assert(swapchainObject.device == device) | |
| State.Swapchains[swapchain] = null | |
| } | |
| @extension("VK_KHR_swapchain") // 2 | |
| cmd VkResult vkGetSwapchainImagesKHR( | |
| VkDevice device, | |
| VkSwapchainKHR swapchain, | |
| u32* pSwapchainImageCount, | |
| VkImage* pSwapchainImages) { | |
| deviceObject := GetDevice(device) | |
| count := as!u32(?) | |
| pSwapchainImageCount[0] = count | |
| swapchainImages := pSwapchainImages[0:count] | |
| for i in (0 .. count) { | |
| swapchainImage := ? | |
| swapchainImages[i] = swapchainImage | |
| State.Images[swapchainImage] = new!ImageObject(device: device) | |
| } | |
| return ? | |
| } | |
| @extension("VK_KHR_swapchain") // 2 | |
| cmd VkResult vkAcquireNextImageKHR( | |
| VkDevice device, | |
| VkSwapchainKHR swapchain, | |
| u64 timeout, | |
| VkSemaphore semaphore, | |
| VkFence fence, | |
| u32* pImageIndex) { | |
| deviceObject := GetDevice(device) | |
| swapchainObject := GetSwapchain(swapchain) | |
| imageIndex := ? | |
| pImageIndex[0] = imageIndex | |
| return ? | |
| } | |
| @extension("VK_KHR_swapchain") // 2 | |
| cmd VkResult vkQueuePresentKHR( | |
| VkQueue queue, | |
| const VkPresentInfoKHR* pPresentInfo) { | |
| queueObject := GetQueue(queue) | |
| presentInfo := ? | |
| pPresentInfo[0] = presentInfo | |
| return ? | |
| } | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| cmd VkResult vkGetDeviceGroupPresentCapabilitiesKHR( | |
| VkDevice device, | |
| VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities) { | |
| return ? | |
| } | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| cmd VkResult vkGetDeviceGroupSurfacePresentModesKHR( | |
| VkDevice device, | |
| VkSurfaceKHR surface, | |
| VkDeviceGroupPresentModeFlagsKHR* pModes) { | |
| return ? | |
| } | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| cmd VkResult vkGetPhysicalDevicePresentRectanglesKHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkSurfaceKHR surface, | |
| u32* pRectCount, | |
| VkRect2D* pRects) { | |
| return ? | |
| } | |
| @vulkan1_1 | |
| @extension("VK_KHR_swapchain") // 2 | |
| cmd VkResult vkAcquireNextImage2KHR( | |
| VkDevice device, | |
| const VkAcquireNextImageInfoKHR* pAcquireInfo, | |
| u32* pImageIndex) { | |
| return ? | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| cmd VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( | |
| VkPhysicalDevice physicalDevice, | |
| u32* pPropertyCount, | |
| VkDisplayPropertiesKHR* pProperties) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| return ? | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| cmd VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( | |
| VkPhysicalDevice physicalDevice, | |
| u32* pPropertyCount, | |
| VkDisplayPlanePropertiesKHR* pProperties) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| return ? | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| cmd VkResult vkGetDisplayPlaneSupportedDisplaysKHR( | |
| VkPhysicalDevice physicalDevice, | |
| u32 planeIndex, | |
| u32* pDisplayCount, | |
| VkDisplayKHR* pDisplays) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| return ? | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| cmd VkResult vkGetDisplayModePropertiesKHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkDisplayKHR display, | |
| u32* pPropertyCount, | |
| VkDisplayModePropertiesKHR* pProperties) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| return ? | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| cmd VkResult vkCreateDisplayModeKHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkDisplayKHR display, | |
| const VkDisplayModeCreateInfoKHR* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkDisplayModeKHR* pMode) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| return ? | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| cmd VkResult vkGetDisplayPlaneCapabilitiesKHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkDisplayModeKHR mode, | |
| u32 planeIndex, | |
| VkDisplayPlaneCapabilitiesKHR* pCapabilities) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| return ? | |
| } | |
| @extension("VK_KHR_display") // 3 | |
| cmd VkResult vkCreateDisplayPlaneSurfaceKHR( | |
| VkInstance instance, | |
| const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSurfaceKHR* pSurface) { | |
| return ? | |
| } | |
| @extension("VK_KHR_display_swapchain") // 4 | |
| cmd VkResult vkCreateSharedSwapchainsKHR( | |
| VkDevice device, | |
| u32 swapchainCount, | |
| const VkSwapchainCreateInfoKHR* pCreateInfos, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSwapchainKHR* pSwapchains) { | |
| return ? | |
| } | |
| @extension("VK_KHR_xlib_surface") // 5 | |
| cmd VkResult vkCreateXlibSurfaceKHR( | |
| VkInstance instance, | |
| const VkXlibSurfaceCreateInfoKHR* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSurfaceKHR* pSurface) { | |
| instanceObject := GetInstance(instance) | |
| return ? | |
| } | |
| @extension("VK_KHR_xlib_surface") // 5 | |
| cmd VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( | |
| VkPhysicalDevice physicalDevice, | |
| u32 queueFamilyIndex, | |
| platform.Display* dpy, | |
| platform.VisualID visualID) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| return ? | |
| } | |
| @extension("VK_KHR_xcb_surface") // 6 | |
| cmd VkResult vkCreateXcbSurfaceKHR( | |
| VkInstance instance, | |
| const VkXcbSurfaceCreateInfoKHR* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSurfaceKHR* pSurface) { | |
| instanceObject := GetInstance(instance) | |
| return ? | |
| } | |
| @extension("VK_KHR_xcb_surface") // 6 | |
| cmd VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( | |
| VkPhysicalDevice physicalDevice, | |
| u32 queueFamilyIndex, | |
| platform.xcb_connection_t* connection, | |
| platform.xcb_visualid_t visual_id) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| return ? | |
| } | |
| @extension("VK_KHR_wayland_surface") // 7 | |
| cmd VkResult vkCreateWaylandSurfaceKHR( | |
| VkInstance instance, | |
| const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSurfaceKHR* pSurface) { | |
| instanceObject := GetInstance(instance) | |
| return ? | |
| } | |
| @extension("VK_KHR_wayland_surface") // 7 | |
| cmd VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( | |
| VkPhysicalDevice physicalDevice, | |
| u32 queueFamilyIndex, | |
| platform.wl_display* display) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| return ? | |
| } | |
| @extension("VK_KHR_android_surface") // 9 | |
| cmd VkResult vkCreateAndroidSurfaceKHR( | |
| VkInstance instance, | |
| const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSurfaceKHR* pSurface) { | |
| instanceObject := GetInstance(instance) | |
| return ? | |
| } | |
| @extension("VK_KHR_win32_surface") // 10 | |
| cmd VkResult vkCreateWin32SurfaceKHR( | |
| VkInstance instance, | |
| const VkWin32SurfaceCreateInfoKHR* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSurfaceKHR* pSurface) { | |
| instanceObject := GetInstance(instance) | |
| return ? | |
| } | |
| @extension("VK_KHR_win32_surface") // 10 | |
| cmd VkResult vkGetPhysicalDeviceWin32PresentationSupportKHR( | |
| VkPhysicalDevice physicalDevice, | |
| u32 queueFamilyIndex) { | |
| physicalDeviceObject := GetPhysicalDevice(physicalDevice) | |
| return ? | |
| } | |
| @extension("VK_ANDROID_native_buffer") // 11 | |
| @optional | |
| cmd VkResult vkGetSwapchainGrallocUsageANDROID( | |
| VkDevice device, | |
| VkFormat format, | |
| VkImageUsageFlags imageUsage, | |
| s32* grallocUsage) { | |
| return ? | |
| } | |
| @extension("VK_ANDROID_native_buffer") // 11 | |
| @optional | |
| cmd VkResult vkGetSwapchainGrallocUsage2ANDROID( | |
| VkDevice device, | |
| VkFormat format, | |
| VkImageUsageFlags imageUsage, | |
| VkSwapchainImageUsageFlagsANDROID swapchainImageUsage, | |
| u64* grallocConsumerUsage, | |
| u64* grallocProducerUsage) { | |
| return ? | |
| } | |
| @extension("VK_ANDROID_native_buffer") // 11 | |
| cmd VkResult vkAcquireImageANDROID( | |
| VkDevice device, | |
| VkImage image, | |
| int nativeFenceFd, | |
| VkSemaphore semaphore, | |
| VkFence fence) { | |
| return ? | |
| } | |
| @extension("VK_ANDROID_native_buffer") // 11 | |
| cmd VkResult vkQueueSignalReleaseImageANDROID( | |
| VkQueue queue, | |
| u32 waitSemaphoreCount, | |
| const VkSemaphore* pWaitSemaphores, | |
| VkImage image, | |
| int* pNativeFenceFd) { | |
| return ? | |
| } | |
| @extension("VK_EXT_debug_report") // 12 | |
| @external type void* PFN_vkDebugReportCallbackEXT | |
| @extension("VK_EXT_debug_report") // 12 | |
| @pfn cmd VkBool32 vkDebugReportCallbackEXT( | |
| VkDebugReportFlagsEXT flags, | |
| VkDebugReportObjectTypeEXT objectType, | |
| u64 object, | |
| platform.size_t location, | |
| s32 messageCode, | |
| const char* pLayerPrefix, | |
| const char* pMessage, | |
| void* pUserData) { | |
| return ? | |
| } | |
| @extension("VK_EXT_debug_report") // 12 | |
| cmd VkResult vkCreateDebugReportCallbackEXT( | |
| VkInstance instance, | |
| const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkDebugReportCallbackEXT* pCallback) { | |
| return ? | |
| } | |
| @extension("VK_EXT_debug_report") // 12 | |
| cmd void vkDestroyDebugReportCallbackEXT( | |
| VkInstance instance, | |
| VkDebugReportCallbackEXT callback, | |
| const VkAllocationCallbacks* pAllocator) { | |
| } | |
| @extension("VK_EXT_debug_report") // 12 | |
| cmd void vkDebugReportMessageEXT( | |
| VkInstance instance, | |
| VkDebugReportFlagsEXT flags, | |
| VkDebugReportObjectTypeEXT objectType, | |
| u64 object, | |
| platform.size_t location, | |
| s32 messageCode, | |
| const char* pLayerPrefix, | |
| const char* pMessage) { | |
| } | |
| @extension("VK_EXT_debug_marker") // 23 | |
| cmd VkResult vkDebugMarkerSetObjectTagEXT( | |
| VkDevice device, | |
| const VkDebugMarkerObjectTagInfoEXT* pTagInfo) { | |
| return ? | |
| } | |
| @extension("VK_EXT_debug_marker") // 23 | |
| cmd VkResult vkDebugMarkerSetObjectNameEXT( | |
| VkDevice device, | |
| const VkDebugMarkerObjectNameInfoEXT* pNameInfo) { | |
| return ? | |
| } | |
| @extension("VK_EXT_debug_marker") // 23 | |
| cmd void vkCmdDebugMarkerBeginEXT( | |
| VkCommandBuffer commandBuffer, | |
| const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) { | |
| } | |
| @extension("VK_EXT_debug_marker") // 23 | |
| cmd void vkCmdDebugMarkerEndEXT( | |
| VkCommandBuffer commandBuffer) { | |
| } | |
| @extension("VK_EXT_debug_marker") // 23 | |
| cmd void vkCmdDebugMarkerInsertEXT( | |
| VkCommandBuffer commandBuffer, | |
| const VkDebugMarkerMarkerInfoEXT* pMarkerInfo) { | |
| } | |
| @extension("VK_EXT_transform_feedback") // 29 | |
| cmd void vkCmdBindTransformFeedbackBuffersEXT( | |
| VkCommandBuffer commandBuffer, | |
| u32 firstBinding, | |
| u32 bindingCount, | |
| const VkBuffer* pBuffers, | |
| const VkDeviceSize* pOffsets, | |
| const VkDeviceSize* pSizes) { | |
| } | |
| @extension("VK_EXT_transform_feedback") // 29 | |
| cmd void vkCmdBeginTransformFeedbackEXT( | |
| VkCommandBuffer commandBuffer, | |
| u32 firstCounterBuffer, | |
| u32 counterBufferCount, | |
| const VkBuffer* pCounterBuffers, | |
| const VkDeviceSize* pCounterBufferOffsets) { | |
| } | |
| @extension("VK_EXT_transform_feedback") // 29 | |
| cmd void vkCmdEndTransformFeedbackEXT( | |
| VkCommandBuffer commandBuffer, | |
| u32 firstCounterBuffer, | |
| u32 counterBufferCount, | |
| const VkBuffer* pCounterBuffers, | |
| const VkDeviceSize* pCounterBufferOffsets) { | |
| } | |
| @extension("VK_EXT_transform_feedback") // 29 | |
| cmd void vkCmdBeginQueryIndexedEXT( | |
| VkCommandBuffer commandBuffer, | |
| VkQueryPool queryPool, | |
| u32 query, | |
| VkQueryControlFlags flags, | |
| u32 index) { | |
| } | |
| @extension("VK_EXT_transform_feedback") // 29 | |
| cmd void vkCmdEndQueryIndexedEXT( | |
| VkCommandBuffer commandBuffer, | |
| VkQueryPool queryPool, | |
| u32 query, | |
| u32 index) { | |
| } | |
| @extension("VK_EXT_transform_feedback") // 29 | |
| cmd void vkCmdDrawIndirectByteCountEXT( | |
| VkCommandBuffer commandBuffer, | |
| u32 instanceCount, | |
| u32 firstInstance, | |
| VkBuffer counterBuffer, | |
| VkDeviceSize counterBufferOffset, | |
| u32 counterOffset, | |
| u32 vertexStride) { | |
| } | |
| @extension("VK_AMD_draw_indirect_count") // 34 | |
| cmd void vkCmdDrawIndirectCountAMD( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer buffer, | |
| VkDeviceSize offset, | |
| VkBuffer countBuffer, | |
| VkDeviceSize countBufferOffset, | |
| u32 maxDrawCount, | |
| u32 stride) { | |
| } | |
| @extension("VK_AMD_draw_indirect_count") // 34 | |
| cmd void vkCmdDrawIndexedIndirectCountAMD( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer buffer, | |
| VkDeviceSize offset, | |
| VkBuffer countBuffer, | |
| VkDeviceSize countBufferOffset, | |
| u32 maxDrawCount, | |
| u32 stride) { | |
| } | |
| @extension("VK_AMD_shader_info") // 43 | |
| cmd VkResult vkGetShaderInfoAMD( | |
| VkDevice device, | |
| VkPipeline pipeline, | |
| VkShaderStageFlagBits shaderStage, | |
| VkShaderInfoTypeAMD infoType, | |
| platform.size_t* pInfoSize, | |
| void* pInfo) { | |
| return ? | |
| } | |
| @extension("VK_NV_external_memory_capabilities") // 56 | |
| cmd VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( | |
| VkPhysicalDevice physicalDevice, | |
| VkFormat format, | |
| VkImageType type, | |
| VkImageTiling tiling, | |
| VkImageUsageFlags usage, | |
| VkImageCreateFlags flags, | |
| VkExternalMemoryHandleTypeFlagsNV externalHandleType, | |
| VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties) { | |
| return ? | |
| } | |
| @extension("VK_NV_external_memory_win32") // 58 | |
| cmd VkResult vkGetMemoryWin32HandleNV( | |
| VkDevice device, | |
| VkDeviceMemory memory, | |
| VkExternalMemoryHandleTypeFlagsNV handleType, | |
| platform.HANDLE* pHandle) { | |
| return ? | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| cmd void vkGetPhysicalDeviceFeatures2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkPhysicalDeviceFeatures2KHR* pFeatures) { | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| cmd void vkGetPhysicalDeviceProperties2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkPhysicalDeviceProperties2KHR* pProperties) { | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| cmd void vkGetPhysicalDeviceFormatProperties2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkFormat format, | |
| VkFormatProperties2KHR* pFormatProperties) { | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| cmd VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, | |
| VkImageFormatProperties2KHR* pImageFormatProperties) { | |
| return ? | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| cmd void vkGetPhysicalDeviceQueueFamilyProperties2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| u32* pQueueFamilyPropertyCount, | |
| VkQueueFamilyProperties2KHR* pQueueFamilyProperties) { | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| cmd void vkGetPhysicalDeviceMemoryProperties2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties) { | |
| } | |
| @extension("VK_KHR_get_physical_device_properties2") // 60 | |
| cmd void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, | |
| u32* pPropertyCount, | |
| VkSparseImageFormatProperties2KHR* pProperties) { | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| cmd void vkGetDeviceGroupPeerMemoryFeaturesKHR( | |
| VkDevice device, | |
| u32 heapIndex, | |
| u32 localDeviceIndex, | |
| u32 remoteDeviceIndex, | |
| VkPeerMemoryFeatureFlagsKHR* pPeerMemoryFeatures) { | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| cmd void vkCmdSetDeviceMaskKHR( | |
| VkCommandBuffer commandBuffer, | |
| u32 deviceMask) { | |
| } | |
| @extension("VK_KHR_device_group") // 61 | |
| cmd void vkCmdDispatchBaseKHR( | |
| VkCommandBuffer commandBuffer, | |
| u32 baseGroupX, | |
| u32 baseGroupY, | |
| u32 baseGroupZ, | |
| u32 groupCountX, | |
| u32 groupCountY, | |
| u32 groupCountZ) { | |
| } | |
| @extension("VK_NN_vi_surface") // 63 | |
| cmd VkResult vkCreateViSurfaceNN( | |
| VkInstance instance, | |
| const VkViSurfaceCreateInfoNN* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSurfaceKHR* pSurface) { | |
| return ? | |
| } | |
| @extension("VK_KHR_maintenance1") // 70 | |
| cmd void vkTrimCommandPoolKHR( | |
| VkDevice device, | |
| VkCommandPool commandPool, | |
| VkCommandPoolTrimFlagsKHR flags) { | |
| } | |
| @extension("VK_KHR_device_group_creation") // 71 | |
| @threadSafety("system") | |
| cmd VkResult vkEnumeratePhysicalDeviceGroupsKHR( | |
| VkInstance instance, | |
| u32* pPhysicalDeviceGroupCount, | |
| VkPhysicalDeviceGroupPropertiesKHR* pPhysicalDeviceGroupProperties) { | |
| instanceObject := GetInstance(instance) | |
| physicalDeviceGroupCount := as!u32(?) | |
| pPhysicalDeviceGroupCount[0] = physicalDeviceGroupCount | |
| physicalDevices := pPhysicalDeviceGroupProperties[0:physicalDeviceGroupCount] | |
| for i in (0 .. physicalDeviceGroupCount) { | |
| physicalDevice := ? | |
| physicalDevices[i] = physicalDevice | |
| if !(physicalDevice in State.PhysicalDevices) { | |
| State.PhysicalDevices[physicalDevice] = new!PhysicalDeviceObject(instance: instance) | |
| } | |
| } | |
| return ? | |
| } | |
| @extension("VK_KHR_external_memory_capabilities") // 72 | |
| cmd void vkGetPhysicalDeviceExternalBufferPropertiesKHR( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, | |
| VkExternalBufferPropertiesKHR* pExternalBufferProperties) { | |
| } | |
| @extension("VK_KHR_external_memory_win32") // 74 | |
| cmd VkResult vkGetMemoryWin32HandleKHR( | |
| VkDevice device, | |
| const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, | |
| platform.HANDLE* pHandle) { | |
| return ? | |
| } | |
| @extension("VK_KHR_external_memory_win32") // 74 | |
| cmd VkResult vkGetMemoryWin32HandlePropertiesKHR( | |
| VkDevice device, | |
| VkExternalMemoryHandleTypeFlagBitsKHR handleType, | |
| platform.HANDLE handle, | |
| VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties) { | |
| return ? | |
| } | |
| @extension("VK_KHR_external_memory_fd") // 75 | |
| cmd VkResult vkGetMemoryFdKHR( | |
| VkDevice device, | |
| const VkMemoryGetFdInfoKHR* pGetFdInfo, | |
| s32* pFd) { | |
| return ? | |
| } | |
| @extension("VK_KHR_external_memory_fd") // 75 | |
| cmd VkResult vkGetMemoryFdPropertiesKHR( | |
| VkDevice device, | |
| VkExternalMemoryHandleTypeFlagBitsKHR handleType, | |
| s32 fd, | |
| VkMemoryFdPropertiesKHR* pMemoryFdProperties) { | |
| return ? | |
| } | |
| @extension("VK_KHR_external_semaphore_capabilities") // 77 | |
| cmd void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, | |
| VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties) { | |
| } | |
| @extension("VK_KHR_external_semaphore_win32") // 79 | |
| cmd VkResult vkImportSemaphoreWin32HandleKHR( | |
| VkDevice device, | |
| const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo) { | |
| return ? | |
| } | |
| @extension("VK_KHR_external_semaphore_win32") // 79 | |
| cmd VkResult vkGetSemaphoreWin32HandleKHR( | |
| VkDevice device, | |
| const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, | |
| platform.HANDLE* pHandle) { | |
| return ? | |
| } | |
| @extension("VK_KHR_external_semaphore_fd") // 80 | |
| cmd VkResult vkImportSemaphoreFdKHR( | |
| VkDevice device, | |
| const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo) { | |
| return ? | |
| } | |
| @extension("VK_KHR_external_semaphore_fd") // 80 | |
| cmd VkResult vkGetSemaphoreFdKHR( | |
| VkDevice device, | |
| const VkSemaphoreGetFdInfoKHR* pGetFdInfo, | |
| s32* pFd) { | |
| return ? | |
| } | |
| @extension("VK_KHR_push_descriptor") // 81 | |
| cmd void vkCmdPushDescriptorSetKHR( | |
| VkCommandBuffer commandBuffer, | |
| VkPipelineBindPoint pipelineBindPoint, | |
| VkPipelineLayout layout, | |
| u32 set, | |
| u32 descriptorWriteCount, | |
| const VkWriteDescriptorSet* pDescriptorWrites) { | |
| } | |
| @extension("VK_EXT_conditional_rendering") // 82 | |
| cmd void vkCmdBeginConditionalRenderingEXT( | |
| VkCommandBuffer commandBuffer, | |
| const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin) { | |
| } | |
| @extension("VK_EXT_conditional_rendering") // 82 | |
| cmd void vkCmdEndConditionalRenderingEXT( | |
| VkCommandBuffer commandBuffer) { | |
| } | |
| @extension("VK_KHR_descriptor_update_template") // 86 | |
| cmd VkResult vkCreateDescriptorUpdateTemplateKHR( | |
| VkDevice device, | |
| const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate) { | |
| return ? | |
| } | |
| @extension("VK_KHR_descriptor_update_template") // 86 | |
| cmd void vkDestroyDescriptorUpdateTemplateKHR( | |
| VkDevice device, | |
| VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, | |
| const VkAllocationCallbacks* pAllocator) { | |
| } | |
| @extension("VK_KHR_descriptor_update_template") // 86 | |
| cmd void vkUpdateDescriptorSetWithTemplateKHR( | |
| VkDevice device, | |
| VkDescriptorSet descriptorSet, | |
| VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, | |
| const void* pData) { | |
| } | |
| @extension("VK_KHR_descriptor_update_template") // 86 | |
| cmd void vkCmdPushDescriptorSetWithTemplateKHR( | |
| VkCommandBuffer commandBuffer, | |
| VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, | |
| VkPipelineLayout layout, | |
| u32 set, | |
| const void* pData) { | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| cmd void vkCmdProcessCommandsNVX( | |
| VkCommandBuffer commandBuffer, | |
| const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo) { | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| cmd void vkCmdReserveSpaceForCommandsNVX( | |
| VkCommandBuffer commandBuffer, | |
| const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo) { | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| cmd VkResult vkCreateIndirectCommandsLayoutNVX( | |
| VkDevice device, | |
| const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout) { | |
| return ? | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| cmd void vkDestroyIndirectCommandsLayoutNVX( | |
| VkDevice device, | |
| VkIndirectCommandsLayoutNVX indirectCommandsLayout, | |
| const VkAllocationCallbacks* pAllocator) { | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| cmd VkResult vkCreateObjectTableNVX( | |
| VkDevice device, | |
| const VkObjectTableCreateInfoNVX* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkObjectTableNVX* pObjectTable) { | |
| return ? | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| cmd void vkDestroyObjectTableNVX( | |
| VkDevice device, | |
| VkObjectTableNVX objectTable, | |
| const VkAllocationCallbacks* pAllocator) { | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| cmd VkResult vkRegisterObjectsNVX( | |
| VkDevice device, | |
| VkObjectTableNVX objectTable, | |
| u32 objectCount, | |
| const VkObjectTableEntryNVX* const* ppObjectTableEntries, | |
| const u32* pObjectIndices) { | |
| return ? | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| cmd VkResult vkUnregisterObjectsNVX( | |
| VkDevice device, | |
| VkObjectTableNVX objectTable, | |
| u32 objectCount, | |
| const VkObjectEntryTypeNVX* pObjectEntryTypes, | |
| const u32* pObjectIndices) { | |
| return ? | |
| } | |
| @extension("VK_NVX_device_generated_commands") // 87 | |
| cmd void vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( | |
| VkPhysicalDevice physicalDevice, | |
| VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, | |
| VkDeviceGeneratedCommandsLimitsNVX* pLimits) { | |
| } | |
| @extension("VK_NV_clip_space_w_scaling") // 88 | |
| cmd void vkCmdSetViewportWScalingNV( | |
| VkCommandBuffer commandBuffer, | |
| u32 firstViewport, | |
| u32 viewportCount, | |
| const VkViewportWScalingNV* pViewportWScalings) { | |
| } | |
| @extension("VK_EXT_direct_mode_display") // 89 | |
| cmd VkResult vkReleaseDisplayEXT( | |
| VkPhysicalDevice physicalDevice, | |
| VkDisplayKHR display) { | |
| return ? | |
| } | |
| @extension("VK_EXT_acquire_xlib_display") // 90 | |
| cmd VkResult vkAcquireXlibDisplayEXT( | |
| VkPhysicalDevice physicalDevice, | |
| platform.Display* dpy, | |
| VkDisplayKHR display) { | |
| return ? | |
| } | |
| @extension("VK_EXT_acquire_xlib_display") // 90 | |
| cmd VkResult vkGetRandROutputDisplayEXT( | |
| VkPhysicalDevice physicalDevice, | |
| platform.Display* dpy, | |
| platform.RROutput rrOutput, | |
| VkDisplayKHR* pDisplay) { | |
| return ? | |
| } | |
| @extension("VK_EXT_display_surface_counter") // 91 | |
| cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( | |
| VkPhysicalDevice physicalDevice, | |
| VkSurfaceKHR surface, | |
| VkSurfaceCapabilities2EXT* pSurfaceCapabilities) { | |
| return ? | |
| } | |
| @extension("VK_EXT_display_control") // 92 | |
| cmd VkResult vkDisplayPowerControlEXT( | |
| VkDevice device, | |
| VkDisplayKHR display, | |
| const VkDisplayPowerInfoEXT* pDisplayPowerInfo) { | |
| return ? | |
| } | |
| @extension("VK_EXT_display_control") // 92 | |
| cmd VkResult vkRegisterDeviceEventEXT( | |
| VkDevice device, | |
| const VkDeviceEventInfoEXT* pDeviceEventInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkFence* pFence) { | |
| return ? | |
| } | |
| @extension("VK_EXT_display_control") // 92 | |
| cmd VkResult vkRegisterDisplayEventEXT( | |
| VkDevice device, | |
| VkDisplayKHR display, | |
| const VkDisplayEventInfoEXT* pDisplayEventInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkFence* pFence) { | |
| return ? | |
| } | |
| @extension("VK_EXT_display_control") // 92 | |
| cmd VkResult vkGetSwapchainCounterEXT( | |
| VkDevice device, | |
| VkSwapchainKHR swapchain, | |
| VkSurfaceCounterFlagBitsEXT counter, | |
| u64* pCounterValue) { | |
| return ? | |
| } | |
| @extension("VK_GOOGLE_display_timing") // 93 | |
| cmd VkResult vkGetRefreshCycleDurationGOOGLE( | |
| VkDevice device, | |
| VkSwapchainKHR swapchain, | |
| VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties) { | |
| deviceObject := GetDevice(device) | |
| swapchainObject := GetSwapchain(swapchain) | |
| displayTimingProperties := ? | |
| pDisplayTimingProperties[0] = displayTimingProperties | |
| return ? | |
| } | |
| @extension("VK_GOOGLE_display_timing") // 93 | |
| cmd VkResult vkGetPastPresentationTimingGOOGLE( | |
| VkDevice device, | |
| VkSwapchainKHR swapchain, | |
| u32* pPresentationTimingCount, | |
| VkPastPresentationTimingGOOGLE* pPresentationTimings) { | |
| return ? | |
| } | |
| @extension("VK_EXT_discard_rectangles") // 100 | |
| cmd void vkCmdSetDiscardRectangleEXT( | |
| VkCommandBuffer commandBuffer, | |
| u32 firstDiscardRectangle, | |
| u32 discardRectangleCount, | |
| const VkRect2D* pDiscardRectangles) { | |
| } | |
| @extension("VK_EXT_hdr_metadata") // 106 | |
| cmd void vkSetHdrMetadataEXT( | |
| VkDevice device, | |
| u32 swapchainCount, | |
| const VkSwapchainKHR* pSwapchains, | |
| const VkHdrMetadataEXT* pMetadata) { | |
| } | |
| @extension("VK_KHR_create_renderpass2") // 110 | |
| cmd VkResult vkCreateRenderPass2KHR( | |
| VkDevice device, | |
| const VkRenderPassCreateInfo2KHR* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkRenderPass* pRenderPass) { | |
| return ? | |
| } | |
| @extension("VK_KHR_create_renderpass2") // 110 | |
| cmd void vkCmdBeginRenderPass2KHR( | |
| VkCommandBuffer commandBuffer, | |
| const VkRenderPassBeginInfo* pRenderPassBegin, | |
| const VkSubpassBeginInfoKHR* pSubpassBeginInfo) { | |
| } | |
| @extension("VK_KHR_create_renderpass2") // 110 | |
| cmd void vkCmdNextSubpass2KHR( | |
| VkCommandBuffer commandBuffer, | |
| const VkSubpassBeginInfoKHR* pSubpassBeginInfo, | |
| const VkSubpassEndInfoKHR* pSubpassEndInfo) { | |
| } | |
| @extension("VK_KHR_create_renderpass2") // 110 | |
| cmd void vkCmdEndRenderPass2KHR( | |
| VkCommandBuffer commandBuffer, | |
| const VkSubpassEndInfoKHR* pSubpassEndInfo) { | |
| } | |
| @extension("VK_KHR_shared_presentable_image") // 112 | |
| cmd VkResult vkGetSwapchainStatusKHR( | |
| VkDevice device, | |
| VkSwapchainKHR swapchain) { | |
| return ? | |
| } | |
| @extension("VK_KHR_external_fence_capabilities") // 113 | |
| cmd void vkGetPhysicalDeviceExternalFencePropertiesKHR( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, | |
| VkExternalFencePropertiesKHR* pExternalFenceProperties) { | |
| } | |
| @extension("VK_KHR_external_fence_win32") // 115 | |
| cmd VkResult vkImportFenceWin32HandleKHR( | |
| VkDevice device, | |
| const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo) { | |
| return ? | |
| } | |
| @extension("VK_KHR_external_fence_win32") // 115 | |
| cmd VkResult vkGetFenceWin32HandleKHR( | |
| VkDevice device, | |
| const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, | |
| platform.HANDLE* pHandle) { | |
| return ? | |
| } | |
| @extension("VK_KHR_external_fence_fd") // 116 | |
| cmd VkResult vkImportFenceFdKHR( | |
| VkDevice device, | |
| const VkImportFenceFdInfoKHR* pImportFenceFdInfo) { | |
| return ? | |
| } | |
| @extension("VK_KHR_external_fence_fd") // 116 | |
| cmd VkResult vkGetFenceFdKHR( | |
| VkDevice device, | |
| const VkFenceGetFdInfoKHR* pGetFdInfo, | |
| int* pFd) { | |
| return ? | |
| } | |
| @extension("VK_KHR_get_surface_capabilities2") // 120 | |
| cmd VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, | |
| VkSurfaceCapabilities2KHR* pSurfaceCapabilities) { | |
| return ? | |
| } | |
| @extension("VK_KHR_get_surface_capabilities2") // 120 | |
| cmd VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, | |
| u32* pSurfaceFormatCount, | |
| VkSurfaceFormat2KHR* pSurfaceFormats) { | |
| return ? | |
| } | |
| @extension("VK_KHR_display_properties2") // 122 | |
| cmd VkResult vkGetPhysicalDeviceDisplayProperties2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| u32* pPropertyCount, | |
| VkDisplayProperties2KHR* pProperties) { | |
| return ? | |
| } | |
| @extension("VK_KHR_display_properties2") // 122 | |
| cmd VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| u32* pPropertyCount, | |
| VkDisplayPlaneProperties2KHR* pProperties) { | |
| return ? | |
| } | |
| @extension("VK_KHR_display_properties2") // 122 | |
| cmd VkResult vkGetDisplayModeProperties2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| VkDisplayKHR display, | |
| u32* pPropertyCount, | |
| VkDisplayModeProperties2KHR* pProperties) { | |
| return ? | |
| } | |
| @extension("VK_KHR_display_properties2") // 122 | |
| cmd VkResult vkGetDisplayPlaneCapabilities2KHR( | |
| VkPhysicalDevice physicalDevice, | |
| const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, | |
| VkDisplayPlaneCapabilities2KHR* pCapabilities) { | |
| return ? | |
| } | |
| @extension("VK_MVK_ios_surface") // 123 | |
| cmd VkResult vkCreateIOSSurfaceMVK( | |
| VkInstance instance, | |
| const VkIOSSurfaceCreateInfoMVK* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSurfaceKHR* pSurface) { | |
| return ? | |
| } | |
| @extension("VK_MVK_macos_surface") // 124 | |
| cmd VkResult vkCreateMacOSSurfaceMVK( | |
| VkInstance instance, | |
| const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSurfaceKHR* pSurface) { | |
| return ? | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| @external type void* PFN_vkDebugUtilsMessengerCallbackEXT | |
| @extension("VK_EXT_debug_utils") // 129 | |
| @pfn cmd VkBool32 vkDebugUtilsMessengerCallbackEXT( | |
| VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, | |
| VkDebugUtilsMessageTypeFlagsEXT messageType, | |
| const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, | |
| void* pUserData) { | |
| return ? | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| cmd VkResult vkSetDebugUtilsObjectNameEXT( | |
| VkDevice device, | |
| const VkDebugUtilsObjectNameInfoEXT* pNameInfo) { | |
| return ? | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| cmd VkResult vkSetDebugUtilsObjectTagEXT( | |
| VkDevice device, | |
| const VkDebugUtilsObjectTagInfoEXT* pTagInfo) { | |
| return ? | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| cmd void vkQueueBeginDebugUtilsLabelEXT( | |
| VkQueue queue, | |
| const VkDebugUtilsLabelEXT* pLabelInfo) { | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| cmd void vkQueueEndDebugUtilsLabelEXT(VkQueue queue) { | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| cmd void vkQueueInsertDebugUtilsLabelEXT( | |
| VkQueue queue, | |
| const VkDebugUtilsLabelEXT* pLabelInfo) { | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| cmd void vkCmdBeginDebugUtilsLabelEXT( | |
| VkCommandBuffer commandBuffer, | |
| const VkDebugUtilsLabelEXT* pLabelInfo) { | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| cmd void vkCmdEndDebugUtilsLabelEXT(VkCommandBuffer commandBuffer) { | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| cmd void vkCmdInsertDebugUtilsLabelEXT( | |
| VkCommandBuffer commandBuffer, | |
| const VkDebugUtilsLabelEXT* pLabelInfo) { | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| cmd VkResult vkCreateDebugUtilsMessengerEXT( | |
| VkInstance instance, | |
| const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkDebugUtilsMessengerEXT* pMessenger) { | |
| return ? | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| cmd void vkDestroyDebugUtilsMessengerEXT( | |
| VkInstance instance, | |
| VkDebugUtilsMessengerEXT messenger, | |
| const VkAllocationCallbacks* pAllocator) { | |
| } | |
| @extension("VK_EXT_debug_utils") // 129 | |
| cmd void vkSubmitDebugUtilsMessageEXT( | |
| VkInstance instance, | |
| VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, | |
| VkDebugUtilsMessageTypeFlagsEXT messageTypes, | |
| const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData) { | |
| } | |
| @extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 | |
| @vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does | |
| cmd VkResult vkGetAndroidHardwareBufferPropertiesANDROID( | |
| VkDevice device, | |
| const platform.AHardwareBuffer* buffer, | |
| VkAndroidHardwareBufferPropertiesANDROID* pProperties) { | |
| return ? | |
| } | |
| @extension("VK_ANDROID_external_memory_android_hardware_buffer") // 130 | |
| @vulkan1_1 // extension requires 1.1, and should become non-optional when 1.1 does | |
| cmd VkResult vkGetMemoryAndroidHardwareBufferANDROID( | |
| VkDevice device, | |
| const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, | |
| platform.AHardwareBuffer** pBuffer) { | |
| return ? | |
| } | |
| @extension("VK_EXT_sample_locations") // 144 | |
| cmd void vkCmdSetSampleLocationsEXT( | |
| VkCommandBuffer commandBuffer, | |
| const VkSampleLocationsInfoEXT* pSampleLocationsInfo) { | |
| } | |
| @extension("VK_EXT_sample_locations") // 144 | |
| cmd void vkGetPhysicalDeviceMultisamplePropertiesEXT( | |
| VkPhysicalDevice physicalDevice, | |
| VkSampleCountFlagBits samples, | |
| VkMultisamplePropertiesEXT* pMultisampleProperties) { | |
| } | |
| @extension("VK_KHR_get_memory_requirements2") // 147 | |
| cmd void vkGetImageMemoryRequirements2KHR( | |
| VkDevice device, | |
| const VkImageMemoryRequirementsInfo2KHR* pInfo, | |
| VkMemoryRequirements2KHR* pMemoryRequirements) { | |
| } | |
| @extension("VK_KHR_get_memory_requirements2") // 147 | |
| cmd void vkGetBufferMemoryRequirements2KHR( | |
| VkDevice device, | |
| const VkBufferMemoryRequirementsInfo2KHR* pInfo, | |
| VkMemoryRequirements2KHR* pMemoryRequirements) { | |
| } | |
| @extension("VK_KHR_get_memory_requirements2") // 147 | |
| cmd void vkGetImageSparseMemoryRequirements2KHR( | |
| VkDevice device, | |
| const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, | |
| u32* pSparseMemoryRequirementCount, | |
| VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements) { | |
| } | |
| @extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| cmd VkResult vkCreateSamplerYcbcrConversionKHR( | |
| VkDevice device, | |
| const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSamplerYcbcrConversionKHR* pYcbcrConversion) { | |
| return ? | |
| } | |
| @extension("VK_KHR_sampler_ycbcr_conversion") // 157 | |
| cmd void vkDestroySamplerYcbcrConversionKHR( | |
| VkDevice device, | |
| VkSamplerYcbcrConversionKHR ycbcrConversion, | |
| const VkAllocationCallbacks* pAllocator) { | |
| } | |
| @extension("VK_KHR_bind_memory2") // 158 | |
| cmd VkResult vkBindBufferMemory2KHR( | |
| VkDevice device, | |
| u32 bindInfoCount, | |
| const VkBindBufferMemoryInfoKHR* pBindInfos) { | |
| return ? | |
| } | |
| @extension("VK_KHR_bind_memory2") // 158 | |
| cmd VkResult vkBindImageMemory2KHR( | |
| VkDevice device, | |
| u32 bindInfoCount, | |
| const VkBindImageMemoryInfoKHR* pBindInfos) { | |
| return ? | |
| } | |
| @extension("VK_EXT_image_drm_format_modifier") // 159 | |
| cmd VkResult vkGetImageDrmFormatModifierPropertiesEXT( | |
| VkDevice device, | |
| VkImage image, | |
| VkImageDrmFormatModifierPropertiesEXT* pProperties) { | |
| return ? | |
| } | |
| @extension("VK_EXT_validation_cache") // 161 | |
| cmd VkResult vkCreateValidationCacheEXT( | |
| VkDevice device, | |
| const VkValidationCacheCreateInfoEXT* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkValidationCacheEXT* pValidationCache) { | |
| return ? | |
| } | |
| @extension("VK_EXT_validation_cache") // 161 | |
| cmd void vkDestroyValidationCacheEXT( | |
| VkDevice device, | |
| VkValidationCacheEXT validationCache, | |
| const VkAllocationCallbacks* pAllocator) { | |
| } | |
| @extension("VK_EXT_validation_cache") // 161 | |
| cmd VkResult vkMergeValidationCachesEXT( | |
| VkDevice device, | |
| VkValidationCacheEXT dstCache, | |
| u32 srcCacheCount, | |
| const VkValidationCacheEXT* pSrcCaches) { | |
| return ? | |
| } | |
| @extension("VK_EXT_validation_cache") // 161 | |
| cmd VkResult vkGetValidationCacheDataEXT( | |
| VkDevice device, | |
| VkValidationCacheEXT validationCache, | |
| platform.size_t* pDataSize, | |
| void* pData) { | |
| return ? | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| cmd void vkCmdBindShadingRateImageNV( | |
| VkCommandBuffer commandBuffer, | |
| VkImageView imageView, | |
| VkImageLayout imageLayout) { | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| cmd void vkCmdSetViewportShadingRatePaletteNV( | |
| VkCommandBuffer commandBuffer, | |
| u32 firstViewport, | |
| u32 viewportCount, | |
| const VkShadingRatePaletteNV* pShadingRatePalettes) { | |
| } | |
| @extension("VK_NV_shading_rate_image") // 165 | |
| cmd void vkCmdSetCoarseSampleOrderNV( | |
| VkCommandBuffer commandBuffer, | |
| VkCoarseSampleOrderTypeNV sampleOrderType, | |
| u32 customSampleOrderCount, | |
| const VkCoarseSampleOrderCustomNV* pCustomSampleOrders) { | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd VkResult vkCreateAccelerationStructureNV( | |
| VkDevice device, | |
| const VkAccelerationStructureCreateInfoNV* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkAccelerationStructureNV* pAccelerationStructure) { | |
| return ? | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd void vkDestroyAccelerationStructureNV( | |
| VkDevice device, | |
| VkAccelerationStructureNV accelerationStructure, | |
| const VkAllocationCallbacks* pAllocator) { | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd void vkGetAccelerationStructureMemoryRequirementsNV( | |
| VkDevice device, | |
| const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, | |
| VkMemoryRequirements2KHR* pMemoryRequirements) { | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd VkResult vkBindAccelerationStructureMemoryNV( | |
| VkDevice device, | |
| u32 bindInfoCount, | |
| const VkBindAccelerationStructureMemoryInfoNV* pBindInfos) { | |
| return ? | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd void vkCmdBuildAccelerationStructureNV( | |
| VkCommandBuffer commandBuffer, | |
| const VkAccelerationStructureInfoNV* pInfo, | |
| VkBuffer instanceData, | |
| VkDeviceSize instanceOffset, | |
| VkBool32 update, | |
| VkAccelerationStructureNV dst, | |
| VkAccelerationStructureNV src, | |
| VkBuffer scratch, | |
| VkDeviceSize scratchOffset) { | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd void vkCmdCopyAccelerationStructureNV( | |
| VkCommandBuffer commandBuffer, | |
| VkAccelerationStructureNV dst, | |
| VkAccelerationStructureNV src, | |
| VkCopyAccelerationStructureModeNV mode) { | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd void vkCmdTraceRaysNV( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer raygenShaderBindingTableBuffer, | |
| VkDeviceSize raygenShaderBindingOffset, | |
| VkBuffer missShaderBindingTableBuffer, | |
| VkDeviceSize missShaderBindingOffset, | |
| VkDeviceSize missShaderBindingStride, | |
| VkBuffer hitShaderBindingTableBuffer, | |
| VkDeviceSize hitShaderBindingOffset, | |
| VkDeviceSize hitShaderBindingStride, | |
| VkBuffer callableShaderBindingTableBuffer, | |
| VkDeviceSize callableShaderBindingOffset, | |
| VkDeviceSize callableShaderBindingStride, | |
| u32 width, | |
| u32 height, | |
| u32 depth) { | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd VkResult vkCreateRaytracingPipelinesNV( | |
| VkDevice device, | |
| VkPipelineCache pipelineCache, | |
| u32 createInfoCount, | |
| const VkRayTracingPipelineCreateInfoNV* pCreateInfos, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkPipeline* pPipelines) { | |
| return ? | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd VkResult vkGetRaytracingShaderHandlesNV( | |
| VkDevice device, | |
| VkPipeline pipeline, | |
| u32 firstGroup, | |
| u32 groupCount, | |
| platform.size_t dataSize, | |
| void* pData) { | |
| return ? | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd VkResult vkGetAccelerationStructureHandleNV( | |
| VkDevice device, | |
| VkAccelerationStructureNV accelerationStructure, | |
| platform.size_t dataSize, | |
| void* pData) { | |
| return ? | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd void vkCmdWriteAccelerationStructurePropertiesNV( | |
| VkCommandBuffer commandBuffer, | |
| u32 accelerationStructureCount, | |
| const VkAccelerationStructureNV* pAccelerationStructures, | |
| VkQueryType queryType, | |
| VkQueryPool queryPool, | |
| u32 firstQuery) { | |
| } | |
| @extension("VK_NV_ray_tracing") // 166 | |
| cmd VkResult vkCompileDeferredNV( | |
| VkDevice device, | |
| VkPipeline pipeline, | |
| u32 shader) { | |
| return ? | |
| } | |
| @extension("VK_KHR_maintenance3") // 169 | |
| cmd void vkGetDescriptorSetLayoutSupportKHR( | |
| VkDevice device, | |
| const VkDescriptorSetLayoutCreateInfo* pCreateInfo, | |
| VkDescriptorSetLayoutSupportKHR* pSupport) { | |
| } | |
| @extension("VK_KHR_draw_indirect_count") // 170 | |
| cmd void vkCmdDrawIndirectCountKHR( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer buffer, | |
| VkDeviceSize offset, | |
| VkBuffer countBuffer, | |
| VkDeviceSize countBufferOffset, | |
| u32 maxDrawCount, | |
| u32 stride) { | |
| } | |
| @extension("VK_KHR_draw_indirect_count") // 170 | |
| cmd void vkCmdDrawIndexedIndirectCountKHR( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer buffer, | |
| VkDeviceSize offset, | |
| VkBuffer countBuffer, | |
| VkDeviceSize countBufferOffset, | |
| u32 maxDrawCount, | |
| u32 stride) { | |
| } | |
| @extension("VK_EXT_external_memory_host") // 179 | |
| cmd VkResult vkGetMemoryHostPointerPropertiesEXT( | |
| VkDevice device, | |
| VkExternalMemoryHandleTypeFlagBits handleType, | |
| const void* pHostPointer, | |
| VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties) { | |
| return ? | |
| } | |
| @extension("VK_AMD_buffer_marker") // 180 | |
| cmd void vkCmdWriteBufferMarkerAMD( | |
| VkCommandBuffer commandBuffer, | |
| VkPipelineStageFlagBits pipelineStage, | |
| VkBuffer dstBuffer, | |
| VkDeviceSize dstOffset, | |
| u32 marker) { | |
| } | |
| @extension("VK_EXT_calibrated_timestamps") // 185 | |
| cmd VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( | |
| VkPhysicalDevice physicalDevice, | |
| u32* pTimeDomainCount, | |
| VkTimeDomainEXT* pTimeDomains) { | |
| return ? | |
| } | |
| @extension("VK_EXT_calibrated_timestamps") // 185 | |
| cmd VkResult vkGetCalibratedTimestampsEXT( | |
| VkDevice device, | |
| u32 timestampCount, | |
| const VkCalibratedTimestampInfoEXT* pTimestampInfos, | |
| u64* pTimestamps, | |
| u64* pMaxDeviation) { | |
| return ? | |
| } | |
| @extension("VK_NV_mesh_shader") // 203 | |
| cmd void vkCmdDrawMeshTasksNV( | |
| VkCommandBuffer commandBuffer, | |
| u32 taskCount, | |
| u32 firstTask) { | |
| } | |
| @extension("VK_NV_mesh_shader") // 203 | |
| cmd void vkCmdDrawMeshTasksIndirectNV( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer buffer, | |
| VkDeviceSize offset, | |
| u32 drawCount, | |
| u32 stride) { | |
| } | |
| @extension("VK_NV_mesh_shader") // 203 | |
| cmd void vkCmdDrawMeshTasksIndirectCountNV( | |
| VkCommandBuffer commandBuffer, | |
| VkBuffer buffer, | |
| VkDeviceSize offset, | |
| VkBuffer countBuffer, | |
| VkDeviceSize countBufferOffset, | |
| u32 maxDrawCount, | |
| u32 stride) { | |
| } | |
| @extension("VK_NV_scissor_exclusive") // 206 | |
| cmd void vkCmdSetExclusiveScissorNV( | |
| VkCommandBuffer commandBuffer, | |
| u32 firstExclusiveScissor, | |
| u32 exclusiveScissorCount, | |
| const VkRect2D* pExclusiveScissors) { | |
| } | |
| @extension("VK_NV_device_diagnostic_checkpoints") // 207 | |
| cmd void vkCmdSetCheckpointNV( | |
| VkCommandBuffer commandBuffer, | |
| const void* pCheckpointMarker) { | |
| } | |
| @extension("VK_NV_device_diagnostic_checkpoints") // 207 | |
| cmd void vkGetQueueCheckpointDataNV( | |
| VkQueue queue, | |
| u32* pCheckpointDataCount, | |
| VkCheckpointDataNV* pCheckpointData) { | |
| } | |
| @extension("VK_FUCHSIA_imagepipe_surface") // 215 | |
| cmd VkResult vkCreateImagePipeSurfaceFUCHSIA( | |
| VkInstance instance, | |
| const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, | |
| const VkAllocationCallbacks* pAllocator, | |
| VkSurfaceKHR* pSurface) { | |
| return ? | |
| } | |
| //////////////// | |
| // Validation // | |
| //////////////// | |
| extern void validate(string layerName, bool condition, string message) | |
| ///////////////////////////// | |
| // Internal State Tracking // | |
| ///////////////////////////// | |
| StateObject State | |
| @internal class StateObject { | |
| // Dispatchable objects. | |
| map!(VkInstance, ref!InstanceObject) Instances | |
| map!(VkPhysicalDevice, ref!PhysicalDeviceObject) PhysicalDevices | |
| map!(VkDevice, ref!DeviceObject) Devices | |
| map!(VkQueue, ref!QueueObject) Queues | |
| map!(VkCommandBuffer, ref!CommandBufferObject) CommandBuffers | |
| // Non-dispatchable objects. | |
| map!(VkDeviceMemory, ref!DeviceMemoryObject) DeviceMemories | |
| map!(VkBuffer, ref!BufferObject) Buffers | |
| map!(VkBufferView, ref!BufferViewObject) BufferViews | |
| map!(VkImage, ref!ImageObject) Images | |
| map!(VkImageView, ref!ImageViewObject) ImageViews | |
| map!(VkShaderModule, ref!ShaderModuleObject) ShaderModules | |
| map!(VkPipeline, ref!PipelineObject) Pipelines | |
| map!(VkPipelineLayout, ref!PipelineLayoutObject) PipelineLayouts | |
| map!(VkSampler, ref!SamplerObject) Samplers | |
| map!(VkDescriptorSet, ref!DescriptorSetObject) DescriptorSets | |
| map!(VkDescriptorSetLayout, ref!DescriptorSetLayoutObject) DescriptorSetLayouts | |
| map!(VkDescriptorPool, ref!DescriptorPoolObject) DescriptorPools | |
| map!(VkFence, ref!FenceObject) Fences | |
| map!(VkSemaphore, ref!SemaphoreObject) Semaphores | |
| map!(VkEvent, ref!EventObject) Events | |
| map!(VkQueryPool, ref!QueryPoolObject) QueryPools | |
| map!(VkFramebuffer, ref!FramebufferObject) Framebuffers | |
| map!(VkRenderPass, ref!RenderPassObject) RenderPasses | |
| map!(VkPipelineCache, ref!PipelineCacheObject) PipelineCaches | |
| map!(VkCommandPool, ref!CommandPoolObject) CommandPools | |
| map!(VkSurfaceKHR, ref!SurfaceObject) Surfaces | |
| map!(VkSwapchainKHR, ref!SwapchainObject) Swapchains | |
| } | |
| @internal class InstanceObject { | |
| } | |
| @internal class PhysicalDeviceObject { | |
| VkInstance instance | |
| } | |
| @internal class DeviceObject { | |
| VkPhysicalDevice physicalDevice | |
| } | |
| @internal class QueueObject { | |
| VkDevice device | |
| VkQueueFlags flags | |
| } | |
| @internal class CommandBufferObject { | |
| VkDevice device | |
| map!(u64, VkDeviceMemory) boundObjects | |
| VkQueueFlags queueFlags | |
| } | |
| @internal class DeviceMemoryObject { | |
| VkDevice device | |
| VkDeviceSize allocationSize | |
| map!(u64, VkDeviceSize) boundObjects | |
| map!(VkCommandBuffer, VkCommandBuffer) boundCommandBuffers | |
| } | |
| @internal class BufferObject { | |
| VkDevice device | |
| VkDeviceMemory memory | |
| VkDeviceSize memoryOffset | |
| } | |
| @internal class BufferViewObject { | |
| VkDevice device | |
| VkBuffer buffer | |
| } | |
| @internal class ImageObject { | |
| VkDevice device | |
| VkDeviceMemory memory | |
| VkDeviceSize memoryOffset | |
| } | |
| @internal class ImageViewObject { | |
| VkDevice device | |
| VkImage image | |
| } | |
| @internal class ShaderObject { | |
| VkDevice device | |
| } | |
| @internal class ShaderModuleObject { | |
| VkDevice device | |
| } | |
| @internal class PipelineObject { | |
| VkDevice device | |
| } | |
| @internal class PipelineLayoutObject { | |
| VkDevice device | |
| } | |
| @internal class SamplerObject { | |
| VkDevice device | |
| } | |
| @internal class DescriptorSetObject { | |
| VkDevice device | |
| } | |
| @internal class DescriptorSetLayoutObject { | |
| VkDevice device | |
| } | |
| @internal class DescriptorPoolObject { | |
| VkDevice device | |
| } | |
| @internal class FenceObject { | |
| VkDevice device | |
| bool signaled | |
| } | |
| @internal class SemaphoreObject { | |
| VkDevice device | |
| } | |
| @internal class EventObject { | |
| VkDevice device | |
| } | |
| @internal class QueryPoolObject { | |
| VkDevice device | |
| } | |
| @internal class FramebufferObject { | |
| VkDevice device | |
| } | |
| @internal class RenderPassObject { | |
| VkDevice device | |
| } | |
| @internal class PipelineCacheObject { | |
| VkDevice device | |
| } | |
| @internal class CommandPoolObject { | |
| VkDevice device | |
| } | |
| @internal class SurfaceObject { | |
| VkInstance instance | |
| } | |
| @internal class SwapchainObject { | |
| VkDevice device | |
| } | |
| macro ref!InstanceObject GetInstance(VkInstance instance) { | |
| assert(instance in State.Instances) | |
| return State.Instances[instance] | |
| } | |
| macro ref!PhysicalDeviceObject GetPhysicalDevice(VkPhysicalDevice physicalDevice) { | |
| assert(physicalDevice in State.PhysicalDevices) | |
| return State.PhysicalDevices[physicalDevice] | |
| } | |
| macro ref!DeviceObject GetDevice(VkDevice device) { | |
| assert(device in State.Devices) | |
| return State.Devices[device] | |
| } | |
| macro ref!QueueObject GetQueue(VkQueue queue) { | |
| assert(queue in State.Queues) | |
| return State.Queues[queue] | |
| } | |
| macro ref!CommandBufferObject GetCommandBuffer(VkCommandBuffer commandBuffer) { | |
| assert(commandBuffer in State.CommandBuffers) | |
| return State.CommandBuffers[commandBuffer] | |
| } | |
| macro ref!DeviceMemoryObject GetDeviceMemory(VkDeviceMemory memory) { | |
| assert(memory in State.DeviceMemories) | |
| return State.DeviceMemories[memory] | |
| } | |
| macro ref!BufferObject GetBuffer(VkBuffer buffer) { | |
| assert(buffer in State.Buffers) | |
| return State.Buffers[buffer] | |
| } | |
| macro ref!BufferViewObject GetBufferView(VkBufferView bufferView) { | |
| assert(bufferView in State.BufferViews) | |
| return State.BufferViews[bufferView] | |
| } | |
| macro ref!ImageObject GetImage(VkImage image) { | |
| assert(image in State.Images) | |
| return State.Images[image] | |
| } | |
| macro ref!ImageViewObject GetImageView(VkImageView imageView) { | |
| assert(imageView in State.ImageViews) | |
| return State.ImageViews[imageView] | |
| } | |
| macro ref!ShaderModuleObject GetShaderModule(VkShaderModule shaderModule) { | |
| assert(shaderModule in State.ShaderModules) | |
| return State.ShaderModules[shaderModule] | |
| } | |
| macro ref!PipelineObject GetPipeline(VkPipeline pipeline) { | |
| assert(pipeline in State.Pipelines) | |
| return State.Pipelines[pipeline] | |
| } | |
| macro ref!PipelineLayoutObject GetPipelineLayout(VkPipelineLayout pipelineLayout) { | |
| assert(pipelineLayout in State.PipelineLayouts) | |
| return State.PipelineLayouts[pipelineLayout] | |
| } | |
| macro ref!SamplerObject GetSampler(VkSampler sampler) { | |
| assert(sampler in State.Samplers) | |
| return State.Samplers[sampler] | |
| } | |
| macro ref!DescriptorSetObject GetDescriptorSet(VkDescriptorSet descriptorSet) { | |
| assert(descriptorSet in State.DescriptorSets) | |
| return State.DescriptorSets[descriptorSet] | |
| } | |
| macro ref!DescriptorSetLayoutObject GetDescriptorSetLayout(VkDescriptorSetLayout descriptorSetLayout) { | |
| assert(descriptorSetLayout in State.DescriptorSetLayouts) | |
| return State.DescriptorSetLayouts[descriptorSetLayout] | |
| } | |
| macro ref!DescriptorPoolObject GetDescriptorPool(VkDescriptorPool descriptorPool) { | |
| assert(descriptorPool in State.DescriptorPools) | |
| return State.DescriptorPools[descriptorPool] | |
| } | |
| macro ref!FenceObject GetFence(VkFence fence) { | |
| assert(fence in State.Fences) | |
| return State.Fences[fence] | |
| } | |
| macro ref!SemaphoreObject GetSemaphore(VkSemaphore semaphore) { | |
| assert(semaphore in State.Semaphores) | |
| return State.Semaphores[semaphore] | |
| } | |
| macro ref!EventObject GetEvent(VkEvent event) { | |
| assert(event in State.Events) | |
| return State.Events[event] | |
| } | |
| macro ref!QueryPoolObject GetQueryPool(VkQueryPool queryPool) { | |
| assert(queryPool in State.QueryPools) | |
| return State.QueryPools[queryPool] | |
| } | |
| macro ref!FramebufferObject GetFramebuffer(VkFramebuffer framebuffer) { | |
| assert(framebuffer in State.Framebuffers) | |
| return State.Framebuffers[framebuffer] | |
| } | |
| macro ref!RenderPassObject GetRenderPass(VkRenderPass renderPass) { | |
| assert(renderPass in State.RenderPasses) | |
| return State.RenderPasses[renderPass] | |
| } | |
| macro ref!PipelineCacheObject GetPipelineCache(VkPipelineCache pipelineCache) { | |
| assert(pipelineCache in State.PipelineCaches) | |
| return State.PipelineCaches[pipelineCache] | |
| } | |
| macro ref!CommandPoolObject GetCommandPool(VkCommandPool commandPool) { | |
| assert(commandPool in State.CommandPools) | |
| return State.CommandPools[commandPool] | |
| } | |
| macro ref!SurfaceObject GetSurface(VkSurfaceKHR surface) { | |
| assert(surface in State.Surfaces) | |
| return State.Surfaces[surface] | |
| } | |
| macro ref!SwapchainObject GetSwapchain(VkSwapchainKHR swapchain) { | |
| assert(swapchain in State.Swapchains) | |
| return State.Swapchains[swapchain] | |
| } | |
| macro VkQueueFlags AddQueueFlag(VkQueueFlags flags, VkQueueFlagBits bit) { | |
| return as!VkQueueFlags(as!u32(flags) | as!u32(bit)) | |
| } |