123 lines
2.8 KiB
Plaintext
123 lines
2.8 KiB
Plaintext
|
Name
|
||
|
|
||
|
NVX_multiview_per_view_attributes
|
||
|
|
||
|
Name Strings
|
||
|
|
||
|
GL_NVX_multiview_per_view_attributes
|
||
|
|
||
|
Contact
|
||
|
|
||
|
Jeff Bolz, NVIDIA Corporation (jbolz 'at' nvidia.com)
|
||
|
|
||
|
Contributors
|
||
|
|
||
|
Kedarnath Thangudu, NVIDIA Corporation
|
||
|
|
||
|
Status
|
||
|
|
||
|
In progress.
|
||
|
|
||
|
Version
|
||
|
|
||
|
Last Modified Date: January 20, 2017
|
||
|
Revision: 1
|
||
|
|
||
|
Number
|
||
|
|
||
|
TBD
|
||
|
|
||
|
Dependencies
|
||
|
|
||
|
None.
|
||
|
|
||
|
Overview
|
||
|
|
||
|
This extension adds per-view builtin attributes corresponding to
|
||
|
gl_Position and gl_ViewportMask, named gl_PositionPerViewNV[] and
|
||
|
gl_ViewportMaskPerViewNV[].
|
||
|
|
||
|
New Procedures and Functions
|
||
|
|
||
|
None.
|
||
|
|
||
|
New Tokens
|
||
|
|
||
|
None.
|
||
|
|
||
|
|
||
|
Modifications to the OpenGL Shading Language Specification, Version 4.50
|
||
|
|
||
|
Including the following line in a shader can be used to control the
|
||
|
language features described in this extension:
|
||
|
|
||
|
#extension GL_NVX_multiview_per_view_attributes : <behavior>
|
||
|
|
||
|
where <behavior> is as specified in section 3.3
|
||
|
|
||
|
New preprocessor #defines are added to the OpenGL Shading Language:
|
||
|
|
||
|
#define GL_NVX_multiview_per_view_attributes 1
|
||
|
|
||
|
Modify Section 7.1 (Built-In Language Variables), p. 118
|
||
|
|
||
|
Add to the list of vertex shader built-ins:
|
||
|
|
||
|
out gl_PerVertex {
|
||
|
highp vec4 gl_PositionPerViewNV[];
|
||
|
highp int gl_ViewportMaskPerViewNV[];
|
||
|
};
|
||
|
|
||
|
Add to the list of geometry shader built-ins:
|
||
|
|
||
|
in gl_PerVertex {
|
||
|
highp vec4 gl_PositionPerViewNV[];
|
||
|
} gl_in[];
|
||
|
|
||
|
out gl_PerVertex {
|
||
|
highp vec4 gl_PositionPerViewNV[];
|
||
|
highp int gl_ViewportMaskPerViewNV[];
|
||
|
};
|
||
|
|
||
|
Add to the list of tessellation control shader built-ins:
|
||
|
|
||
|
in gl_PerVertex {
|
||
|
highp vec4 gl_PositionPerViewNV[];
|
||
|
} gl_in[gl_MaxPatchVertices];
|
||
|
|
||
|
out gl_PerVertex {
|
||
|
highp vec4 gl_PositionPerViewNV[];
|
||
|
highp int gl_ViewportMaskPerViewNV[];
|
||
|
} gl_out[];
|
||
|
|
||
|
Add to the list of tessellation evaluation shader built-ins:
|
||
|
|
||
|
in gl_PerVertex {
|
||
|
highp vec4 gl_PositionPerViewNV[];
|
||
|
} gl_in[gl_MaxPatchVertices];
|
||
|
|
||
|
out gl_PerVertex {
|
||
|
highp vec4 gl_PositionPerViewNV[];
|
||
|
highp int gl_ViewportMaskPerViewNV[];
|
||
|
};
|
||
|
|
||
|
Add the following descriptions for gl_PositionPerViewNV[] and
|
||
|
gl_ViewportMaskPerViewNV[]:
|
||
|
|
||
|
The output arrays gl_PositionPerViewNV[] and gl_ViewportMaskPerViewNV[]
|
||
|
are available in vertex, tessellation, and geometry languages to specify
|
||
|
the position and the viewport mask for each view.
|
||
|
The input variable gl_PositionPerViewNV[] is available in the tessellation
|
||
|
and geometry languages to read the per-view positions written by a
|
||
|
previous shader stage. See the Vulkan API specification for how these
|
||
|
values are interpreted.
|
||
|
|
||
|
Errors
|
||
|
|
||
|
None.
|
||
|
|
||
|
Revision History
|
||
|
|
||
|
Revision 1
|
||
|
- Internal revisions.
|