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.
