Version 6
Contact
To report problems with this extended instruction set, please open a new issue at:
Contributors
-
Alan Baker, Google
-
Kévin Petit, Arm Ltd.
-
Callum Fare, Codeplay
-
Finlay Marno, Codeplay
-
Romaric Jodin, Google
Notice
Copyright (c) 2020-2022 The Khronos Group Inc. Copyright terms at http://www.khronos.org/registry/speccopyright.html
Status
Unratified extended instruction set.
Version
Last Modified Date |
2023-10-11 |
Revision |
6 |
Dependencies
This instruction set requires SPIR-V 1.0.
This instruction set requires SPV_KHR_non_semantic_info.
1. Introduction
This specifies the NonSemantic.ClspvReflection extended instruction set. It provides all the necessary instructions needed to relay the reflection information for clspv-generated shader modules to a runtime (e.g clvk). It is not expected that drivers implement this instruction set.
Import this extended instruction set using an OpExtInstImport "NonSemantic.ClspvReflection.<ver>" instruction, where <ver> indicates the version.
2. Version
This extended instruction set is versioned. The version is specified via the import string. It must be an integer between 1 and the version specified at the beginning of this instruction set. Differences between the version are specified below.
3. Binary Form
The return type for all instructions must be OpTypeVoid.
None of the instructions support forward references in their operands. Therefore, the Kernel and ArgumentInfo instructions must come before their uses.
Kernel |
|||||
1 |
<id> |
<id> |
<id> |
<id> |
<id> |
ArgumentStorageBuffer |
|||||
3 |
<id> |
<id> |
<id> |
<id> |
Optional |
ArgumentUniform |
|||||
4 |
<id> |
<id> |
<id> |
<id> |
Optional |
ArgumentPodStorageBuffer |
|||||||
5 |
<id> |
<id> |
<id> |
<id> |
<id> |
<id> |
Optional |
ArgumentPodUniform |
|||||||
6 |
<id> |
<id> |
<id> |
<id> |
<id> |
<id> |
Optional |
ArgumentPodPushConstant |
|||||
7 |
<id> |
<id> |
<id> |
<id> |
Optional |
ArgumentSampledImage |
|||||
8 |
<id> |
<id> |
<id> |
<id> |
Optional |
ArgumentStorageImage |
|||||
9 |
<id> |
<id> |
<id> |
<id> |
Optional |
ArgumentSampler |
|||||
10 |
<id> |
<id> |
<id> |
<id> |
Optional |
ArgumentWorkgroup |
|||||
11 |
<id> |
<id> |
<id> |
<id> |
Optional |
LiteralSampler |
|||
23 |
<id> |
<id> |
<id> |
PropertyRequiredWorkgroupSize |
||||
24 |
<id> |
<id> |
<id> |
<id> |
ArgumentPointerPushConstant |
|||||
26 |
<id> |
<id> |
<id> |
<id> |
Optional |
ArgumentPointerUniform |
|||||||
27 |
<id> |
<id> |
<id> |
<id> |
<id> |
<id> |
Optional |
ImageArgumentInfoChannelOrderPushConstant |
||||
30 |
<id> |
<id> |
<id> |
<id> |
ImageArgumentInfoChannelDataTypePushConstant |
||||
31 |
<id> |
<id> |
<id> |
<id> |
ImageArgumentInfoChannelOrderUniform |
||||||
32 |
<id> |
<id> |
<id> |
<id> |
<id> |
<id> |
ImageArgumentInfoChannelDataTypeUniform |
||||||
33 |
<id> |
<id> |
<id> |
<id> |
<id> |
<id> |
ArgumentStorageTexelBuffer |
|||||
34 |
<id> |
<id> |
<id> |
<id> |
Optional |
ArgumentUniformTexelBuffer |
|||||
35 |
<id> |
<id> |
<id> |
<id> |
Optional |
PrintfBufferStorageBuffer |
|||
39 |
<id> |
<id> |
<id> |
PrintfBufferPointerPushConstant |
|||
40 |
<id> |
<id> |
<id> |
NormalizedSamplerMaskPushConstant |
||||
41 |
<id> |
<id> |
<id> |
<id> |
Kernel Property Flags
Value | Flag Name |
---|---|
0 |
None |
1 << 0 |
MayUsePrintf |
Issues
None.
Revision History
Rev | Date | Author | Changes |
---|---|---|---|
6 |
2023-10-11 |
Romaric Jodin |
Add support for sampler mask push constants. |
5 |
2022-12-22 |
Callum Fare and Finlay Marno |
Add support for module-scope buffer push constants and printf. Add NumArguments, Flags, and Attributes to the Kernel instruction. |
4 |
2022-10-04 |
Kévin Petit |
Add support for texel buffer arguments. |
3 |
2022-06-26 |
Kévin Petit |
Add support for pointer arguments, program scope variables and image channel order and data type queries. |
2 |
2021-10-25 |
Kévin Petit |
Add SpecConstantSubgroupMaxSize |
1 |
2020-07-27 |
Alan Baker |
Initial revision |