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