• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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