1e5c31af7Sopenharmony_ci// Copyright 2016-2024 The Khronos Group Inc. 2e5c31af7Sopenharmony_ci// 3e5c31af7Sopenharmony_ci// SPDX-License-Identifier: CC-BY-4.0 4e5c31af7Sopenharmony_ci 5e5c31af7Sopenharmony_ciinclude::{generated}/meta/{refprefix}VK_KHR_multiview.adoc[] 6e5c31af7Sopenharmony_ci 7e5c31af7Sopenharmony_ci=== Other Extension Metadata 8e5c31af7Sopenharmony_ci 9e5c31af7Sopenharmony_ci*Last Modified Date*:: 10e5c31af7Sopenharmony_ci 2016-10-28 11e5c31af7Sopenharmony_ci*IP Status*:: 12e5c31af7Sopenharmony_ci No known IP claims. 13e5c31af7Sopenharmony_ci*Interactions and External Dependencies*:: 14e5c31af7Sopenharmony_ci - This extension provides API support for 15e5c31af7Sopenharmony_ci {GLSLregistry}/ext/GL_EXT_multiview.txt[`GL_EXT_multiview`] 16e5c31af7Sopenharmony_ci*Contributors*:: 17e5c31af7Sopenharmony_ci - Jeff Bolz, NVIDIA 18e5c31af7Sopenharmony_ci 19e5c31af7Sopenharmony_ci=== Description 20e5c31af7Sopenharmony_ci 21e5c31af7Sopenharmony_ciThis extension has the same goal as the OpenGL ES `GL_OVR_multiview` 22e5c31af7Sopenharmony_ciextension. 23e5c31af7Sopenharmony_ciMultiview is a rendering technique originally designed for VR where it is 24e5c31af7Sopenharmony_cimore efficient to record a single set of commands to be executed with 25e5c31af7Sopenharmony_cislightly different behavior for each "`view`". 26e5c31af7Sopenharmony_ci 27e5c31af7Sopenharmony_ciIt includes a concise way to declare a render pass with multiple views, and 28e5c31af7Sopenharmony_cigives implementations freedom to render the views in the most efficient way 29e5c31af7Sopenharmony_cipossible. 30e5c31af7Sopenharmony_ciThis is done with a multiview configuration specified during <<renderpass, 31e5c31af7Sopenharmony_cirender pass>> creation with the slink:VkRenderPassMultiviewCreateInfo passed 32e5c31af7Sopenharmony_ciinto slink:VkRenderPassCreateInfo::pname:pNext. 33e5c31af7Sopenharmony_ci 34e5c31af7Sopenharmony_ciThis extension enables the use of the 35e5c31af7Sopenharmony_ci{spirv}/KHR/SPV_KHR_multiview.html[`SPV_KHR_multiview`] shader extension, 36e5c31af7Sopenharmony_ciwhich adds a new `ViewIndex` built-in type that allows shaders to control 37e5c31af7Sopenharmony_ciwhat to do for each view. 38e5c31af7Sopenharmony_ciIf using GLSL there is also the 39e5c31af7Sopenharmony_ci{GLSLregistry}/ext/GL_EXT_multiview.txt[`GL_EXT_multiview`] extension that 40e5c31af7Sopenharmony_ciintroduces a `highp int gl_ViewIndex;` built-in variable for vertex, 41e5c31af7Sopenharmony_citessellation, geometry, and fragment shaders. 42e5c31af7Sopenharmony_ci 43e5c31af7Sopenharmony_ci=== Promotion to Vulkan 1.1 44e5c31af7Sopenharmony_ci 45e5c31af7Sopenharmony_ciAll functionality in this extension is included in core Vulkan 1.1, with the 46e5c31af7Sopenharmony_ciKHR suffix omitted. 47e5c31af7Sopenharmony_ciThe original type, enum and command names are still available as aliases of 48e5c31af7Sopenharmony_cithe core functionality. 49e5c31af7Sopenharmony_ci 50e5c31af7Sopenharmony_ciinclude::{generated}/interfaces/VK_KHR_multiview.adoc[] 51e5c31af7Sopenharmony_ci 52e5c31af7Sopenharmony_ci=== New Built-In Variables 53e5c31af7Sopenharmony_ci 54e5c31af7Sopenharmony_ci * <<interfaces-builtin-variables-viewindex,code:ViewIndex>> 55e5c31af7Sopenharmony_ci 56e5c31af7Sopenharmony_ci=== New SPIR-V Capabilities 57e5c31af7Sopenharmony_ci 58e5c31af7Sopenharmony_ci * <<spirvenv-capabilities-table-MultiView, code:MultiView>> 59e5c31af7Sopenharmony_ci 60e5c31af7Sopenharmony_ciifdef::isrefpage[] 61e5c31af7Sopenharmony_ci 62e5c31af7Sopenharmony_ci=== Additional Resources 63e5c31af7Sopenharmony_ci 64e5c31af7Sopenharmony_ci * https://devblogs.nvidia.com/turing-multi-view-rendering-vrworks['NVIDIA 65e5c31af7Sopenharmony_ci blog post'] 66e5c31af7Sopenharmony_ci * https://community.arm.com/developer/tools-software/graphics/b/blog/posts/optimizing-virtual-reality-understanding-multiview['ARM 67e5c31af7Sopenharmony_ci blog post'] 68e5c31af7Sopenharmony_ci 69e5c31af7Sopenharmony_ciendif::isrefpage[] 70e5c31af7Sopenharmony_ci 71e5c31af7Sopenharmony_ci=== Version History 72e5c31af7Sopenharmony_ci 73e5c31af7Sopenharmony_ci * Revision 1, 2016-10-28 (Jeff Bolz) 74e5c31af7Sopenharmony_ci ** Internal revisions 75e5c31af7Sopenharmony_ci 76