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