Name Strings

SPV_KHR_device_group

Contact

To report problems with this extension, please open a new issue at:

Contributors

  • Ashwin Kolhe, NVIDIA

Status

  • Complete

  • Approved by the SPIR Working Group: 2017-01-11

  • Approved by the Khronos Board of Promoters: 2017-02-24

Version

Last Modified Date

2016-12-12

Revision

1

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_KHX_device_group and the VK_KHX_device_group_creation extensions in SPIR-V. It provides functionality to use a logical device that consists of multiple physical devices, as created with the VK_KHX_device_group_creation extension.

The new DeviceGroup capability allows the DeviceIndex builtin variable to be exported from all shaders stages, which represents the index of the logical device.

Extension Name

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

OpExtension "SPV_KHR_device_group"

New Capabilities

This extension introduces a new capability:

DeviceGroup

New Builtins

A new builtin is added as an input for all shader stages.

DeviceIndex

Input device index of the logical device consisting of multiple physical devices.

New Instructions

None.

Token Number Assignments

DeviceGroup

4437

DeviceIndex

4438

(Modify Section 3.21, BuiltIn)

(add a new row to the Builtin table)

BuiltIn Enabling Capabilities

4438

DeviceIndex
Input device index of the logical device. See VK_KHX_device_group for more details.

DeviceGroup

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

4437

DeviceGroup

SPV_KHR_device_group

Validation Rules

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

OpExtension "SPV_KHR_device_group"

Issues

  1. Should the DeviceGroup have a dependency on Shader?

    RESOLVED: SPIR WG 2016-12-21: No. It seems that this could be useful in Kernels in a future extension, so we won’t limit it to Shaders. The semantics are defined by the corresponding API extension so there should be no conflicts.

Revision History

Rev Date Author Changes

1

2016-12-12

Ashwin Kolhe

Initial draft