There are traditionally just two hard problems in computer science — naming things, cache invalidation, and off-by-1 errors — but I’ve long thought that there should be a third: software versioning.

We have a practical problem that will be familiar to anyone in the midst of developing any complex packaged software: we need to ship multiple driver components developed at different cadences and in certain ways, all packaged together and distributed, to be installed as a unit. That disconnect in cadence across the myriad components means aligning the version numbers of each is difficult, and it’s further compounded by the fact we have internal <em>and</em> external versioning schemes for most of those components too.

You can see why there’s a case for adding it to that exalted list of the most difficult problems in our field!

When you download and install the AMD-provided GPU driver you’re getting something with a public name, which today is Radeon Software Adrenalin Edition Graphics Driver 18.8.1, but there’s no solid way for you to map the important bit of the name — 18.8.1 – to what gets placed on disk and loaded by the operating system. And that’s never mind details like whether it’s been WHQL tested or not.

So as a developer writing something using Vulkan, how do you map between the AMD GPU driver that the users of your games have installed, and our versioned Vulkan component in that driver? Until today you ran screaming from the keyboard! We’d like to change that.

What we’ve come up with is a machine-readable mapping that you can integrate into your software, plus this page here with the handy table below that we’ll keep updated whenever a new driver version shows up. The machine-readable mapping is an XML file with a structure that maps from the public driver version number, say 18.8.1, to everything packaged by it, including the Vulkan software component version, something which may or may not change between driver releases. Here’s an example entry for 18.6.1 on Windows.

<driver version="18.6.1" operating-system="Windows"> <whql>Optional</whql> <download-url> https://support.amd.com/en-us/kb-articles/Pages/Radeon-Software-Adrenalin-Edition-18.6.1-Release-Notes.aspx </download-url> <internal-version>118.10.21.01</internal-version> <windows-version>24.20.11021.1000</windows-version> <vulkan-version>2.0.33</vulkan-version> </driver>