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