| Decoding Radeon Vulkan versions

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">

That gives you what you need to interrogate the internal versioning from the public one for Windows today. <whql> will be WHQL if the driver has been WHQL-qualified or Optional if not. <download-url> lets you point users of your software at the right place to get the driver if you need to do that, and AMD GPU Services will let you interrogate the running version number in a robust way by reading AGSGPUInfo->radeonSoftwareVersion  in your game or application.

Machine Readable XML

  • https://gpuopen.com/vulkan-versions/amdversions.xmlLink
  • https://raw.githubusercontent.com/GPUOpen-Drivers/amd-vulkan-versions/master/amdversions.xmlLink


AMD GPU Services (AGS) Library

The AMD GPU Services (AGS) library provides software developers with the ability to query AMD GPU software and hardware state information that is not normally available through standard operating systems or graphics APIs.


Vulkan® gives software developers control over the performance, efficiency, and capabilities of AMD Radeon™ GPUs and multi-core CPUs.

Rys Sommefeldt
Links to third party sites are provided for convenience and unless explicitly stated, AMD is not responsible for the contents of such linked sites and no endorsement is implied.


Tutorials Library

Browse all our fantastic tutorials, including programming techniques, performance improvements, guest blogs, and how to use our tools.

Samples Library

Browse all our useful samples. Perfect for when you’re needing to get started, want to integrate one of our libraries, and much more.