USM Generic Storage Class - spv_codeplay_usm_generic_storage_class

Name Strings

SPV_codeplay_usm_generic_storage_class

Contact

  • Aaron Greig, Codeplay Software Ltd. (aaron.greig ‘at’ codeplay.com)

Contributors

  • Aaron Greig, Codeplay Software Ltd.

  • Ewan Crawford, Codeplay Software Ltd.

Version

Last Modified Date

2020-10-29

Revision

1

Status

Proposal

Dependencies

This extension is written against the Unified SPIR-V Specification, Version 1.5, Revision 3.

This extension requires SPIR-V 1.0.

Overview

This extension allows a module to indicate that it is omitting storage class information from OpTypePointer and OpTypeForwardPointer instructions. In this case, instead of including storage class information in these instructions the module passes storage class Generic to indicate that the storage class has no semantic meaning. Note that modules using this extension do not need to declare the GenericPointer capability, and pointer types declared in the manner outlined above do not retain any of the semantics of a regular Generic pointer type declaration.

Extension Name

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

OpExtension "SPV_codeplay_usm_generic_storage_class"

New Capabilities

None.

New Builtins

None.

New Instructions

None.

Token Number Assignments

None.

Modifications to the SPIR-V Specification

Modify section 3.7, Storage Class, changing the following entry in the Storage Class table:

8

Generic For generic pointers, which overload the Function, Workgroup, and CrossWorkgroup Storage Classes. Also used to declare pointer types without a storage class when the “SPV_codeplay_usm_generic_storage_class” extension is enabled.

GenericPointer

Modify section 3.68.8, Memory Instructions, changing the description of OpVariable:

… Storage Class is the Storage Class of the memory holding the object. It cannot be Generic unless OpExtension “SPV_codeplay_usm_generic_storage_class” was declared. …

Validation Rules

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

OpExtension "SPV_codeplay_usm_generic_storage_class"

Revision History

Rev

Date

Author

Changes

1

2020/10/29

Aaron Greig

Initial revision