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