1// Copyright 2016-2022 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5include::{generated}/meta/{refprefix}VK_KHR_multiview.adoc[] 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 {GLSLregistry}/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 42{GLSLregistry}/ext/GL_EXT_multiview.txt[`GL_EXT_multiview`] extension that 43introduces a `highp int gl_ViewIndex;` built-in variable for vertex, 44tessellation, 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.adoc[] 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 63ifdef::isrefpage[] 64 65=== Additional Resources 66 67* https://devblogs.nvidia.com/turing-multi-view-rendering-vrworks['NVIDIA 68 blog post'] 69* https://community.arm.com/developer/tools-software/graphics/b/blog/posts/optimizing-virtual-reality-understanding-multiview['ARM 70 blog post'] 71 72endif::isrefpage[] 73 74=== Version History 75 76 * Revision 1, 2016-10-28 (Jeff Bolz) 77 ** Internal revisions 78 79