// Copyright (c) 2015-2018 Khronos Group. This work is licensed under a // Creative Commons Attribution 4.0 International License; see // http://creativecommons.org/licenses/by/4.0/ [appendix] [[extensions]] = Layers & Extensions (Informative) Extensions to the Vulkan API can: be defined by authors, groups of authors, and the Khronos Vulkan Working Group. In order not to compromise the readability of the Vulkan Specification, the core Specification does not incorporate most extensions. The online Registry of extensions is available at URL http://www.khronos.org/registry/vulkan/ and allows generating versions of the Specification incorporating different extensions. Most of the content previously in this appendix does not specify *use* of specific Vulkan extensions and layers, but rather specifies the processes by which extensions and layers are created. As of version 1.0.21 of the Vulkan Specification, this content has been migrated to the <> document. Authors creating extensions and layers must: follow the mandatory procedures in that document. The remainder of this appendix documents a set of extensions chosen when this document was built. Versions of the Specification published in the Registry include: * Core API + mandatory extensions required of all Vulkan implementations. * Core API + all registered and published Khronos (`KHR`) extensions. * Core API + all registered and published extensions. Extensions are grouped as Khronos `KHR`, multivendor `EXT`, and then alphabetically by author ID. Within each group, extensions are listed in alphabetical order by their name. [NOTE] .Note ==== As of the initial Vulkan 1.1 public release, the `KHX` author ID is no longer used. All `KHX` extensions have been promoted to `KHR` status. Previously, this author ID was used to indicate that an extension was experimental, and is being considered for standardization in future `KHR` or core Vulkan API versions. We no longer use this mechanism for exposing experimental functionality. Some vendors may use an alternate author ID ending in `X` for some of their extensions. The exact meaning of such an author ID is defined by each vendor, and may not be equivalent to `KHX`, but it is likely to indicate a lesser degree of interface stability than a non-`X` extension from the same vendor. ==== // Extension appendix sections are included here, grouped by the author ID // Adding the section headers here means that there will usually be // a bunch of empty sections, which is undesirable. // == Khronos `KHR` Extensions // ifdef::VK_KHR_16bit_storage[] include::VK_KHR_16bit_storage.txt[] endif::VK_KHR_16bit_storage[] ifdef::VK_KHR_android_surface[] include::VK_KHR_android_surface.txt[] endif::VK_KHR_android_surface[] ifdef::VK_KHR_bind_memory2[] include::VK_KHR_bind_memory2.txt[] endif::VK_KHR_bind_memory2[] ifdef::VK_KHR_dedicated_allocation[] include::VK_KHR_dedicated_allocation.txt[] endif::VK_KHR_dedicated_allocation[] ifdef::VK_KHR_descriptor_update_template[] include::VK_KHR_descriptor_update_template.txt[] endif::VK_KHR_descriptor_update_template[] ifdef::VK_KHR_device_group[] include::VK_KHR_device_group.txt[] endif::VK_KHR_device_group[] ifdef::VK_KHR_device_group_creation[] include::VK_KHR_device_group_creation.txt[] endif::VK_KHR_device_group_creation[] ifdef::VK_KHR_display[] include::VK_KHR_display.txt[] endif::VK_KHR_display[] ifdef::VK_KHR_display_swapchain[] include::VK_KHR_display_swapchain.txt[] endif::VK_KHR_display_swapchain[] ifdef::VK_KHR_external_fence[] include::VK_KHR_external_fence.txt[] endif::VK_KHR_external_fence[] ifdef::VK_KHR_external_fence_capabilities[] include::VK_KHR_external_fence_capabilities.txt[] endif::VK_KHR_external_fence_capabilities[] ifdef::VK_KHR_external_fence_fd[] include::VK_KHR_external_fence_fd.txt[] endif::VK_KHR_external_fence_fd[] ifdef::VK_KHR_external_fence_win32[] include::VK_KHR_external_fence_win32.txt[] endif::VK_KHR_external_fence_win32[] ifdef::VK_KHR_external_memory[] include::VK_KHR_external_memory.txt[] endif::VK_KHR_external_memory[] ifdef::VK_KHR_external_memory_capabilities[] include::VK_KHR_external_memory_capabilities.txt[] endif::VK_KHR_external_memory_capabilities[] ifdef::VK_KHR_external_memory_fd[] include::VK_KHR_external_memory_fd.txt[] endif::VK_KHR_external_memory_fd[] ifdef::VK_KHR_external_memory_win32[] include::VK_KHR_external_memory_win32.txt[] endif::VK_KHR_external_memory_win32[] ifdef::VK_KHR_external_semaphore[] include::VK_KHR_external_semaphore.txt[] endif::VK_KHR_external_semaphore[] ifdef::VK_KHR_external_semaphore_capabilities[] include::VK_KHR_external_semaphore_capabilities.txt[] endif::VK_KHR_external_semaphore_capabilities[] ifdef::VK_KHR_external_semaphore_fd[] include::VK_KHR_external_semaphore_fd.txt[] endif::VK_KHR_external_semaphore_fd[] ifdef::VK_KHR_external_semaphore_win32[] include::VK_KHR_external_semaphore_win32.txt[] endif::VK_KHR_external_semaphore_win32[] ifdef::VK_KHR_get_memory_requirements2[] include::VK_KHR_get_memory_requirements2.txt[] endif::VK_KHR_get_memory_requirements2[] ifdef::VK_KHR_get_physical_device_properties2[] include::VK_KHR_get_physical_device_properties2.txt[] endif::VK_KHR_get_physical_device_properties2[] ifdef::VK_KHR_get_surface_capabilities2[] include::VK_KHR_get_surface_capabilities2.txt[] endif::VK_KHR_get_surface_capabilities2[] ifdef::VK_KHR_image_format_list[] include::VK_KHR_image_format_list.txt[] endif::VK_KHR_image_format_list[] ifdef::VK_KHR_incremental_present[] include::VK_KHR_incremental_present.txt[] endif::VK_KHR_incremental_present[] ifdef::VK_KHR_maintenance1[] include::VK_KHR_maintenance1.txt[] endif::VK_KHR_maintenance1[] ifdef::VK_KHR_maintenance2[] include::VK_KHR_maintenance2.txt[] endif::VK_KHR_maintenance2[] ifdef::VK_KHR_maintenance3[] include::VK_KHR_maintenance3.txt[] endif::VK_KHR_maintenance3[] ifdef::VK_KHR_mir_surface[] include::VK_KHR_mir_surface.txt[] endif::VK_KHR_mir_surface[] ifdef::VK_KHR_multiview[] include::VK_KHR_multiview.txt[] endif::VK_KHR_multiview[] ifdef::VK_KHR_push_descriptor[] include::VK_KHR_push_descriptor.txt[] endif::VK_KHR_push_descriptor[] ifdef::VK_KHR_relaxed_block_layout[] include::VK_KHR_relaxed_block_layout.txt[] endif::VK_KHR_relaxed_block_layout[] include::VK_KHR_sampler_mirror_clamp_to_edge.txt[] ifdef::VK_KHR_sampler_ycbcr_conversion[] include::VK_KHR_sampler_ycbcr_conversion.txt[] endif::VK_KHR_sampler_ycbcr_conversion[] ifdef::VK_KHR_shader_draw_parameters[] include::VK_KHR_shader_draw_parameters.txt[] endif::VK_KHR_shader_draw_parameters[] ifdef::VK_KHR_shared_presentable_image[] include::VK_KHR_shared_presentable_image.txt[] endif::VK_KHR_shared_presentable_image[] ifdef::VK_KHR_storage_buffer_storage_class[] include::VK_KHR_storage_buffer_storage_class.txt[] endif::VK_KHR_storage_buffer_storage_class[] ifdef::VK_KHR_surface[] include::VK_KHR_surface.txt[] endif::VK_KHR_surface[] ifdef::VK_KHR_swapchain[] include::VK_KHR_swapchain.txt[] endif::VK_KHR_swapchain[] ifdef::VK_KHR_variable_pointers[] include::VK_KHR_variable_pointers.txt[] endif::VK_KHR_variable_pointers[] ifdef::VK_KHR_wayland_surface[] include::VK_KHR_wayland_surface.txt[] endif::VK_KHR_wayland_surface[] ifdef::VK_KHR_win32_keyed_mutex[] include::VK_KHR_win32_keyed_mutex.txt[] endif::VK_KHR_win32_keyed_mutex[] ifdef::VK_KHR_win32_surface[] include::VK_KHR_win32_surface.txt[] endif::VK_KHR_win32_surface[] ifdef::VK_KHR_xcb_surface[] include::VK_KHR_xcb_surface.txt[] endif::VK_KHR_xcb_surface[] ifdef::VK_KHR_xlib_surface[] include::VK_KHR_xlib_surface.txt[] endif::VK_KHR_xlib_surface[] // == Multivendor `EXT` Extensions // // :leveloffset: 2 ifdef::VK_EXT_acquire_xlib_display[] include::VK_EXT_acquire_xlib_display.txt[] endif::VK_EXT_acquire_xlib_display[] ifdef::VK_EXT_blend_operation_advanced[] include::VK_EXT_blend_operation_advanced.txt[] endif::VK_EXT_blend_operation_advanced[] ifdef::VK_EXT_conservative_rasterization[] include::VK_EXT_conservative_rasterization.txt[] endif::VK_EXT_conservative_rasterization[] ifdef::VK_EXT_debug_marker[] include::VK_EXT_debug_marker.txt[] endif::VK_EXT_debug_marker[] ifdef::VK_EXT_debug_report[] include::VK_EXT_debug_report.txt[] endif::VK_EXT_debug_report[] ifdef::VK_EXT_debug_utils[] include::VK_EXT_debug_utils.txt[] endif::VK_EXT_debug_utils[] ifdef::VK_EXT_depth_range_unrestricted[] include::VK_EXT_depth_range_unrestricted.txt[] endif::VK_EXT_depth_range_unrestricted[] ifdef::VK_EXT_direct_mode_display[] include::VK_EXT_direct_mode_display.txt[] endif::VK_EXT_direct_mode_display[] ifdef::VK_EXT_discard_rectangles[] include::VK_EXT_discard_rectangles.txt[] endif::VK_EXT_discard_rectangles[] ifdef::VK_EXT_display_control[] include::VK_EXT_display_control.txt[] endif::VK_EXT_display_control[] ifdef::VK_EXT_display_surface_counter[] include::VK_EXT_display_surface_counter.txt[] endif::VK_EXT_display_surface_counter[] ifdef::VK_EXT_external_memory_dma_buf[] include::VK_EXT_external_memory_dma_buf.txt[] endif::VK_EXT_external_memory_dma_buf[] ifdef::VK_EXT_external_memory_host[] include::VK_EXT_external_memory_host.txt[] endif::VK_EXT_external_memory_host[] ifdef::VK_EXT_global_priority[] include::VK_EXT_global_priority.txt[] endif::VK_EXT_global_priority[] ifdef::VK_EXT_hdr_metadata[] include::VK_EXT_hdr_metadata.txt[] endif::VK_EXT_hdr_metadata[] ifdef::VK_EXT_post_depth_coverage[] include::VK_EXT_post_depth_coverage.txt[] endif::VK_EXT_post_depth_coverage[] ifdef::VK_EXT_queue_family_foreign[] include::VK_EXT_queue_family_foreign.txt[] endif::VK_EXT_queue_family_foreign[] ifdef::VK_EXT_sample_locations[] include::VK_EXT_sample_locations.txt[] endif::VK_EXT_sample_locations[] ifdef::VK_EXT_sampler_filter_minmax[] include::VK_EXT_sampler_filter_minmax.txt[] endif::VK_EXT_sampler_filter_minmax[] ifdef::VK_EXT_shader_stencil_export[] include::VK_EXT_shader_stencil_export.txt[] endif::VK_EXT_shader_stencil_export[] ifdef::VK_EXT_shader_subgroup_ballot[] include::VK_EXT_shader_subgroup_ballot.txt[] endif::VK_EXT_shader_subgroup_ballot[] ifdef::VK_EXT_shader_subgroup_vote[] include::VK_EXT_shader_subgroup_vote.txt[] endif::VK_EXT_shader_subgroup_vote[] ifdef::VK_EXT_shader_viewport_index_layer[] include::VK_EXT_shader_viewport_index_layer.txt[] endif::VK_EXT_shader_viewport_index_layer[] ifdef::VK_EXT_swapchain_colorspace[] include::VK_EXT_swapchain_colorspace.txt[] endif::VK_EXT_swapchain_colorspace[] ifdef::VK_EXT_validation_flags[] include::VK_EXT_validation_flags.txt[] endif::VK_EXT_validation_flags[] ifdef::VK_EXT_validation_cache[] include::VK_EXT_validation_cache.txt[] endif::VK_EXT_validation_cache[] ifdef::VK_EXT_vertex_attribute_divisor[] include::VK_EXT_vertex_attribute_divisor.txt[] endif::VK_EXT_vertex_attribute_divisor[] // :leveloffset: 1 // == Advanced Micro Devices `AMD` Vendor Extensions // // :leveloffset: 2 ifdef::VK_AMD_buffer_marker[] include::VK_AMD_buffer_marker.txt[] endif::VK_AMD_buffer_marker[] ifdef::VK_AMD_draw_indirect_count[] include::VK_AMD_draw_indirect_count.txt[] endif::VK_AMD_draw_indirect_count[] ifdef::VK_AMD_gcn_shader[] include::VK_AMD_gcn_shader.txt[] endif::VK_AMD_gcn_shader[] ifdef::VK_AMD_gpu_shader_half_float[] include::VK_AMD_gpu_shader_half_float.txt[] endif::VK_AMD_gpu_shader_half_float[] ifdef::VK_AMD_gpu_shader_int16[] include::VK_AMD_gpu_shader_int16.txt[] endif::VK_AMD_gpu_shader_int16[] ifdef::VK_AMD_mixed_attachment_samples[] include::VK_AMD_mixed_attachment_samples.txt[] endif::VK_AMD_mixed_attachment_samples[] ifdef::VK_AMD_negative_viewport_height[] include::VK_AMD_negative_viewport_height.txt[] endif::VK_AMD_negative_viewport_height[] ifdef::VK_AMD_rasterization_order[] include::VK_AMD_rasterization_order.txt[] endif::VK_AMD_rasterization_order[] ifdef::VK_AMD_shader_ballot[] include::VK_AMD_shader_ballot.txt[] endif::VK_AMD_shader_ballot[] ifdef::VK_AMD_shader_explicit_vertex_parameter[] include::VK_AMD_shader_explicit_vertex_parameter.txt[] endif::VK_AMD_shader_explicit_vertex_parameter[] ifdef::VK_AMD_shader_fragment_mask[] include::VK_AMD_shader_fragment_mask.txt[] endif::VK_AMD_shader_fragment_mask[] ifdef::VK_AMD_shader_image_load_store_lod[] include::VK_AMD_shader_image_load_store_lod.txt[] endif::VK_AMD_shader_image_load_store_lod[] ifdef::VK_AMD_shader_info[] include::VK_AMD_shader_info.txt[] endif::VK_AMD_shader_info[] ifdef::VK_AMD_shader_trinary_minmax[] include::VK_AMD_shader_trinary_minmax.txt[] endif::VK_AMD_shader_trinary_minmax[] ifdef::VK_AMD_texture_gather_bias_lod[] include::VK_AMD_texture_gather_bias_lod.txt[] endif::VK_AMD_texture_gather_bias_lod[] // :leveloffset: 1 // == Android `ANDROID` Vendor Extensions // // :leveloffset: 2 ifdef::VK_ANDROID_external_memory_android_hardware_buffer[] include::VK_ANDROID_external_memory_android_hardware_buffer.txt[] endif::VK_ANDROID_external_memory_android_hardware_buffer[] // :leveloffset: 1 // == Google `GOOGLE` Vendor Extensions // // :leveloffset: 2 ifdef::VK_GOOGLE_display_timing[] include::VK_GOOGLE_display_timing.txt[] endif::VK_GOOGLE_display_timing[] // :leveloffset: 1 // == Imagination `IMG` Vendor Extensions // // :leveloffset: 2 ifdef::VK_IMG_filter_cubic[] include::VK_IMG_filter_cubic.txt[] endif::VK_IMG_filter_cubic[] // :leveloffset: 1 // == MoltenVK `MVK` Vendor Extensions // // :leveloffset: 2 ifdef::VK_MVK_ios_surface[] include::VK_MVK_ios_surface.txt[] endif::VK_MVK_ios_surface[] ifdef::VK_MVK_macos_surface[] include::VK_MVK_macos_surface.txt[] endif::VK_MVK_macos_surface[] // :leveloffset: 1 // == Nintendo `NN` Vendor Extensions // // :leveloffset: 2 ifdef::VK_NN_vi_surface[] include::VK_NN_vi_surface.txt[] endif::VK_NN_vi_surface[] // == NVIDIA `NV` Vendor Extensions // // :leveloffset: 2 ifdef::VK_NV_clip_space_w_scaling[] include::VK_NV_clip_space_w_scaling.txt[] endif::VK_NV_clip_space_w_scaling[] ifdef::VK_NV_dedicated_allocation[] include::VK_NV_dedicated_allocation.txt[] endif::VK_NV_dedicated_allocation[] ifdef::VK_NV_external_memory_capabilities[] include::VK_NV_external_memory_capabilities.txt[] endif::VK_NV_external_memory_capabilities[] ifdef::VK_NV_external_memory[] include::VK_NV_external_memory.txt[] endif::VK_NV_external_memory[] ifdef::VK_NV_external_memory_win32[] include::VK_NV_external_memory_win32.txt[] endif::VK_NV_external_memory_win32[] ifdef::VK_NV_fill_rectangle[] include::VK_NV_fill_rectangle.txt[] endif::VK_NV_fill_rectangle[] ifdef::VK_NV_fragment_coverage_to_color[] include::VK_NV_fragment_coverage_to_color.txt[] endif::VK_NV_fragment_coverage_to_color[] ifdef::VK_NV_framebuffer_mixed_samples[] include::VK_NV_framebuffer_mixed_samples.txt[] endif::VK_NV_framebuffer_mixed_samples[] ifdef::VK_NV_geometry_shader_passthrough[] include::VK_NV_geometry_shader_passthrough.txt[] endif::VK_NV_geometry_shader_passthrough[] ifdef::VK_NV_glsl_shader[] include::VK_NV_glsl_shader.txt[] endif::VK_NV_glsl_shader[] ifdef::VK_NV_sample_mask_override_coverage[] include::VK_NV_sample_mask_override_coverage.txt[] endif::VK_NV_sample_mask_override_coverage[] ifdef::VK_NV_viewport_array2[] include::VK_NV_viewport_array2.txt[] endif::VK_NV_viewport_array2[] ifdef::VK_NV_viewport_swizzle[] include::VK_NV_viewport_swizzle.txt[] endif::VK_NV_viewport_swizzle[] ifdef::VK_NV_win32_keyed_mutex[] include::VK_NV_win32_keyed_mutex.txt[] endif::VK_NV_win32_keyed_mutex[] // :leveloffset: 1 // == NVIDIA `NVX` Vendor Extensions // // :leveloffset: 2 ifdef::VK_NVX_device_generated_commands[] include::VK_NVX_device_generated_commands.txt[] endif::VK_NVX_device_generated_commands[] ifdef::VK_NVX_multiview_per_view_attributes[] include::VK_NVX_multiview_per_view_attributes.txt[] endif::VK_NVX_multiview_per_view_attributes[] // :leveloffset: 1