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