KhronosGroup / KhronosGroup/SPIRV-LLVM-Translator
Revisions for extension's versions
- Dominant language
- LLVM
- Stars
- 625
- Forks
- 279
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 34
Description
The idea appeared from development and review of #1835
Sometimes the extension specification introduces backward-incompatible changes in its new revision. If we just update the existing implementation to the such new revision, it will affect SPIR-V consumers which are not yet ready for such changes.
The suggestion is to introduce mechanism that will allow to set the certain revision for the extension, if there is more than one supported by translator. Obviously, we won't support every single revision, but a "bunch" of them at once when drastic changes have happened. The translation for different revisions will be done in accordance to the spec, and by default we'll take the "lowest" revision available for extension if it's not set specifically.
The usage example:
```
--spirv-ext=+[EXT_NAME]:[EXT_VERSION]
// e.g.:
--spirv-ext=+SPV_INTEL_tensor_float32_conversion:5
```
To sum up, this will allow to introduce backward-incompatible changes to the SPIR-V consumers more smoothly.
Want to get feedback on how helpful the improvement looks, and is it useful enough to be implemented.
Contributor guide
Research direction
Review the context from #1835 and the extension specification changes described in this issue. The proposed entry point is the --spirv-ext option, including its revision syntax; first clarify the supported-revision policy and how backward-incompatible revisions should be selected. Done means an agreed design and implementation that preserves older consumers while translating each supported revision according to its specification.
Written by the indexing model from the issue text.
Assessment
- Domain
- cli, compilers
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100