gfx-rs / rspirv

Rust implementation of SPIR-V module processing functionalities
https://docs.rs/rspirv
Apache License 2.0
451 stars 57 forks source link

Release with SPIR-V 1.6? #252

Closed tareksander closed 3 weeks ago

tareksander commented 3 weeks ago

Vulkan 1.3 now supports SPIR-V 1.6, the spirv crate is still at version 1.3. Is there a reason for that?

MarijnS95 commented 3 weeks ago

Vulkan 1.6 doesn't exist yet.

The latest rspirv crate release is 0.12.0 which was generated from the sdk-1.3.268.0 SPIRV-Headers release. This release already defines SPIR-V 1.6.1:

https://github.com/KhronosGroup/SPIRV-Headers/blob/e867c06631767a2d96424cbec530f9ee5e78180f/include/spirv/unified1/spirv.core.grammar.json#L28-L30

A newer regeneration on tag sdk-1.3.296.0 with SPIR-V revision 1.6.4 is being worked on and considered in https://github.com/gfx-rs/rspirv/pull/251.

Given that we already have a published rspirv on the requested SPIR-V version 1.6, I think we can close this as "stale".

MarijnS95 commented 3 weeks ago

Separate from that, how do maintainers feel about changing the version metadata from the Vulkan SDK tag that this SPIR-V release was shipped with, to the SPIR-V revision itself, i.e. +spirv-1.6.4?

I'm unsure what we settled on last time.

EDIT: We changed away from that because SPIR-V versions/revisions didn't get bumped in the past, see i.e. https://github.com/gfx-rs/rspirv/issues/225.

tareksander commented 3 weeks ago

Oh, I get it now. In that case the spirv crate readme should probably be changed, that's what confused me:

Version

Note that the major and minor version of this create is tracking the SPIR-V spec, while the patch number is used for bugfixes for the crate itself. So version 1.4.2 is tracking SPIR-V 1.4 but not necessarily revision 2. Major client APIs like Vulkan/OpenCL pin to a specific major and minor version, regardless of the revision.