KhronosGroup / SPIRV-Headers

SPIRV-Headers
Other
273 stars 260 forks source link

(request) Provide git tags for matching Vulkan spec versions #345

Open K900 opened 1 year ago

K900 commented 1 year ago

Hello! I'm working on packaging the Vulkan components for a Linux distribution, and we've been having some issues where things (notably the validation layers, but also some other tools) expect a specific version of spirv-headers, but there's no released tag for it. We can, of course, pick an arbitrary commit (and it seems to be what the VVL repo does for CI, at least), but it would be much nicer to have a specific tag that denotes "this includes all the changes as of Vulkan v1.x.xxx".

dgkoch commented 1 year ago

There already are tags which correspond to the Vulkan SDK releases, which I think is what you should be using for the SDK components, not the Vulkan spec version.

See https://github.com/KhronosGroup/SPIRV-Headers/tags

K900 commented 1 year ago

Those aren't updated for every spec version though. We want to be able to build software that uses the latest extensions.

johnkslang commented 1 year ago

But, after a Vulkan update, which happens quite frequently, there isn't necessarily a new SPIR-V update to tag. The most recently tagged would be the most stable, but possibly missing the latest changes.

What do you mean by "expect a specific version of spirv-headers"? If it's about a specific extension's tokens being present, it would be the spir-v commit that committed that extension (and if not yet tagged, then no one has yet formed a coherent SDK to tag as such). If about the latest features/extensions, that will be in the latest spir-v commit.

If you mean all tested together as a coherent collection, I think that's what's getting tagged as @dgkoch mentioned.

(There will be some tension between "all components fully tested together and tagged as such" versus "I need the latest extension from both Vulkan and SPIR-V".)

K900 commented 1 year ago

For example the validation layers have tags for every Vulkan spec version, and those sometimes (like right now) depend on SPIRV symbols that aren't included in a tagged SDK release yet. So it would be nice to just know that a certain commit includes all the changes up to Vulkan spec version X.

daurnimator commented 11 months ago

e.g. https://github.com/KhronosGroup/glslang/compare/13.1.1...14.0.0#diff-ee9bb7072653a36092f3273394245c4151df04bb76c5afa22f0abf406320c0b2R15 points at untagged commit of 1c6bb2743599e6eb6f37b2969acc0aef812e32e3

daurnimator commented 10 months ago

There is still no tag since vulkan-sdk-1.3.268.0 back in october. How can we get tags for the commits selected by other components (such as glslang I linked above)

daurnimator commented 9 months ago

Thankyou @kpet for pushing https://github.com/KhronosGroup/SPIRV-Headers/releases/tag/vulkan-sdk-1.3.275.0

daurnimator commented 5 months ago

2acb319af38d43be3ea76bfabf3998e5281d8d12 as used at https://github.com/KhronosGroup/glslang/blob/fa9c3deb49e035a8abcabe366f26aac010f6cbfb/known_good.json#L15 is untagged