Name Strings

SPV_NVX_multiview_per_view_attributes

Contact

See Issues list in the Khronos SPIRV-Headers repository: https://github.com/KhronosGroup/SPIRV-Headers

Contributors

  • Jeff Bolz, NVIDIA

Status

  • Complete

Version

Last Modified Date

2017-02-20

Revision

2

Dependencies

This extension is written against the SPIR-V Specification, Version 1.1 Revision 4.

This extension requires SPIR-V 1.0.

Overview

This extension adds a new capability to support the Vulkan VK_NVX_multiview_per_view_attributes extension in SPIR-V.

The new PerViewAttributesNV capability adds two builtin variables, PositionPerViewNV and ViewportMaskPerViewNV, which can be exported from Vertex, Tessellation, or Geometry shaders. PositionPerViewNV can be imported to Tessellation or Geometry shaders.

The PositionPerViewNV builtin decoration corresponds to the gl_PositionPerViewNV[] array in GLSL and is used to specify per-view positions.

The ViewportMaskPerViewNV builtin decoration corresponds to the gl_ViewportMaskPerViewNV[] array in GLSL and is used to specify the per-view viewport masks.

Extension Name

To use this extension within a SPIR-V module, the following OpExtension must be present in the module:

OpExtension "SPV_NVX_multiview_per_view_attributes"

New Capabilities

This extension introduces a new capability:

PerViewAttributesNV

New Decorations

None.

New Builtins

Two new builtins are added as outputs for the Vertex, Tessellation and Geometry Execution Models under the PerViewAttributesNV capability:

PositionPerViewNV
ViewportMaskPerViewNV

PositionPerViewNV can also be used as an input for the Tesselation and Geometry Execution Models.

New Instructions

None.

Token Number Assignments

PerViewAttributesNV

5260

PositionPerViewNV

5261

ViewportMaskPerViewNV

5262

Modifications to the SPIR-V Specification, Version 1.1

(Modify Section 3.21, BuiltIn)

(add two new rows to the BuiltIn table)

BuiltIn Required Capability

5261

PositionPerViewNV
Output vertex position for each view in Vertex, Tessellation, or Geometry Execution Model, and input position for each view in Tessellation and Geometry Execution Models. See Vulkan API specification for more detail.

PerViewAttributesNV

5262

ViewportMaskPerViewNV
Output viewport mask for each view in Vertex, Tessellation, or Geometry Execution Model. See Vulkan API specification for more detail.

PerViewAttributesNV

(Modify Section 3.31, Capability, add a new row to the Capability table)
Capability Depends On Enabled by Extension

5260

PerViewAttributesNV

MultiView

SPV_NVX_multiview_per_view_attributes

Validation Rules

An OpExtension must be added to the SPIR-V for validation layers to check legal use of this extension:

OpExtension "SPV_NVX_multiview_per_view_attributes"

Issues

None yet!

Revision History

Rev Date Author Changes

1

2017-02-01

Jeff Bolz

Initial draft

2

2017-02-20

Jeff Bolz

Mark complete.