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