1e5c31af7Sopenharmony_ci// Copyright 2016-2021 The Khronos Group, Inc.
2e5c31af7Sopenharmony_ci//
3e5c31af7Sopenharmony_ci// SPDX-License-Identifier: CC-BY-4.0
4e5c31af7Sopenharmony_ci
5e5c31af7Sopenharmony_ciinclude::{generated}/meta/{refprefix}VK_KHR_multiview.txt[]
6e5c31af7Sopenharmony_ci
7e5c31af7Sopenharmony_ci=== Other Extension Metadata
8e5c31af7Sopenharmony_ci
9e5c31af7Sopenharmony_ci*Last Modified Date*::
10e5c31af7Sopenharmony_ci    2016-10-28
11e5c31af7Sopenharmony_ci*IP Status*::
12e5c31af7Sopenharmony_ci    No known IP claims.
13e5c31af7Sopenharmony_ci*Interactions and External Dependencies*::
14e5c31af7Sopenharmony_ci  - Promoted to Vulkan 1.1 Core
15e5c31af7Sopenharmony_ci  - This extension requires
16e5c31af7Sopenharmony_ci    {spirv}/KHR/SPV_KHR_multiview.html[`SPV_KHR_multiview`]
17e5c31af7Sopenharmony_ci  - This extension provides API support for
18e5c31af7Sopenharmony_ci    https://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GL_EXT_multiview.txt[`GL_EXT_multiview`]
19e5c31af7Sopenharmony_ci*Contributors*::
20e5c31af7Sopenharmony_ci  - Jeff Bolz, NVIDIA
21e5c31af7Sopenharmony_ci
22e5c31af7Sopenharmony_ci=== Description
23e5c31af7Sopenharmony_ci
24e5c31af7Sopenharmony_ciThis extension has the same goal as the OpenGL ES `GL_OVR_multiview`
25e5c31af7Sopenharmony_ciextension.
26e5c31af7Sopenharmony_ciMultiview is a rendering technique originally designed for VR where it is
27e5c31af7Sopenharmony_cimore efficient to record a single set of commands to be executed with
28e5c31af7Sopenharmony_cislightly different behavior for each "`view`".
29e5c31af7Sopenharmony_ci
30e5c31af7Sopenharmony_ciIt includes a concise way to declare a render pass with multiple views, and
31e5c31af7Sopenharmony_cigives implementations freedom to render the views in the most efficient way
32e5c31af7Sopenharmony_cipossible.
33e5c31af7Sopenharmony_ciThis is done with a multiview configuration specified during <<renderpass,
34e5c31af7Sopenharmony_cirender pass>> creation with the slink:VkRenderPassMultiviewCreateInfo passed
35e5c31af7Sopenharmony_ciinto slink:VkRenderPassCreateInfo::pname:pNext.
36e5c31af7Sopenharmony_ci
37e5c31af7Sopenharmony_ciThis extension enables the use of the
38e5c31af7Sopenharmony_ci{spirv}/KHR/SPV_KHR_multiview.html[`SPV_KHR_multiview`] shader extension,
39e5c31af7Sopenharmony_ciwhich adds a new `ViewIndex` built-in type that allows shaders to control
40e5c31af7Sopenharmony_ciwhat to do for each view.
41e5c31af7Sopenharmony_ciIf using GLSL there is also the
42e5c31af7Sopenharmony_cihttps://raw.githubusercontent.com/KhronosGroup/GLSL/master/extensions/ext/GL_EXT_multiview.txt[`GL_EXT_multiview`]
43e5c31af7Sopenharmony_ciextension that introduces a `highp int gl_ViewIndex;` built-in variable for
44e5c31af7Sopenharmony_civertex, tessellation, geometry, and fragment shaders.
45e5c31af7Sopenharmony_ci
46e5c31af7Sopenharmony_ci=== Promotion to Vulkan 1.1
47e5c31af7Sopenharmony_ci
48e5c31af7Sopenharmony_ciAll functionality in this extension is included in core Vulkan 1.1, with the
49e5c31af7Sopenharmony_ciKHR suffix omitted.
50e5c31af7Sopenharmony_ciThe original type, enum and command names are still available as aliases of
51e5c31af7Sopenharmony_cithe core functionality.
52e5c31af7Sopenharmony_ci
53e5c31af7Sopenharmony_ciinclude::{generated}/interfaces/VK_KHR_multiview.txt[]
54e5c31af7Sopenharmony_ci
55e5c31af7Sopenharmony_ci=== New Built-In Variables
56e5c31af7Sopenharmony_ci
57e5c31af7Sopenharmony_ci  * <<interfaces-builtin-variables-viewindex,code:ViewIndex>>
58e5c31af7Sopenharmony_ci
59e5c31af7Sopenharmony_ci=== New SPIR-V Capabilities
60e5c31af7Sopenharmony_ci
61e5c31af7Sopenharmony_ci  * <<spirvenv-capabilities-table-MultiView,code:MultiView>>
62e5c31af7Sopenharmony_ci
63e5c31af7Sopenharmony_ci=== Version History
64e5c31af7Sopenharmony_ci
65e5c31af7Sopenharmony_ci * Revision 1, 2016-10-28 (Jeff Bolz)
66e5c31af7Sopenharmony_ci   - Internal revisions
67e5c31af7Sopenharmony_ci
68e5c31af7Sopenharmony_ciifdef::isrefpage[]
69e5c31af7Sopenharmony_ci
70e5c31af7Sopenharmony_ci=== Additional Resources
71e5c31af7Sopenharmony_ci
72e5c31af7Sopenharmony_ci* https://devblogs.nvidia.com/turing-multi-view-rendering-vrworks['NVIDIA
73e5c31af7Sopenharmony_ci  blog post']
74e5c31af7Sopenharmony_ci* https://community.arm.com/developer/tools-software/graphics/b/blog/posts/optimizing-virtual-reality-understanding-multiview['ARM
75e5c31af7Sopenharmony_ci  blog post']
76e5c31af7Sopenharmony_ci
77e5c31af7Sopenharmony_ciendif::isrefpage[]
78