Per updated https://github.com/KhronosGroup/SPIRV-Registry/blob/main/nonsemantic/NonSemantic.Shader.DebugInfo.asciidoc :
Version Compatibility
Later versions are supersets of earlier versions in the following sense:
New instructions may be added.
- Existing instructions maintain their instruction numbers and operand structure within the version they were defined.
- Adding operands to existing instructions, even as optional trailing operands, constitutes a breaking change and requires a new version. Any added operands must be optional trailing operands.
- Validation rules may become stricter for newly generated code.
However, later versions are NOT required to be semantically compatible:
- The meaning of an instruction and its operands will not change unless an operand, added after the instruction’s initial version, is used. Clarifications to the specification text do not constitute semantic changes.
- Tools consuming debug info at version N should use the semantics defined in version N.
- Tools may choose to support multiple versions or drop support for older versions.
- This allows the specification to evolve and fix problematic patterns without being constrained by full backward compatibility.
This has to be taken into an account. See #3744 (comment)
Per updated https://github.com/KhronosGroup/SPIRV-Registry/blob/main/nonsemantic/NonSemantic.Shader.DebugInfo.asciidoc :
Version Compatibility
Later versions are supersets of earlier versions in the following sense:
New instructions may be added.
However, later versions are NOT required to be semantically compatible:
This has to be taken into an account. See #3744 (comment)