Skip to content

docs: pin down what vulkan_host()'s version actually is - #23

Merged
jorge-menjivar merged 1 commit into
mainfrom
docs/vulkan-version-semantics
Aug 20, 2026
Merged

docs: pin down what vulkan_host()'s version actually is#23
jorge-menjivar merged 1 commit into
mainfrom
docs/vulkan-version-semantics

Conversation

@jorge-menjivar

Copy link
Copy Markdown
Owner

Verifying the probe on an AMD APU turned up a number that is easy to misread: vulkan_host() reported 1.4.354 where vulkaninfo on the same machine printed 1.4.357. Both are correct — they are different numbers — but nothing in the docs said which one we report.

api_version is the highest version any installed driver advertises in its ICD manifest, a static declaration on disk. That is neither of the two numbers it resembles:

  • Not the loader's instance version — what vulkaninfo and vkEnumerateInstanceVersion report, usually the newer of the two. The driver's is the one that binds in practice, since loaders track current headers while drivers implement features on their own schedule. The loader only constrains when the two are sourced separately, e.g. a container whose base image carries a stale loader against bind-mounted drivers.
  • Not any single device's apiVersion — with two drivers installed this is the higher of what they advertise and may describe neither card. Per-device versions need vkGetPhysicalDeviceProperties, which means linking the loader and creating an instance; that is the trade this crate exists not to make.

Also documents that Vulkan's patch is the spec header revision rather than a feature level, so callers should gate on major/minor — a patch-sensitive check only rejects builds that would have run.

Docs only, no behaviour change. Touches VulkanHost::api_version, VulkanVersion, vulkan_host(), the vulkan module header, and the README's host-toolchain section, following #20 in keeping specific hardware out of the prose.

🤖 Generated with Claude Code

api_version is the highest version any installed driver advertises in its
ICD manifest, which is neither of the two numbers it resembles: not the
loader's instance version (what vulkaninfo prints, usually newer), and not
any single device's apiVersion. Both of those need an instance and a call
into the loader, which this crate does not link.

Also note that Vulkan's patch is the spec header revision, so callers
should gate on major/minor.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@jorge-menjivar
jorge-menjivar merged commit 0c6a54f into main Aug 20, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant