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
-
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 |