AMDVLK v-2020.Q3.6 Is Released With Four Game-Specific Fixes
The latest AMDVLK driver has one new Vulkan extension and game-specific fixes for Doom VFR, Baldur's Gate 3 and Red Dead Redemption 2. AMDVLK's performance is still worse, in some cases far worse, than what the RADV Mesa Vulkan driver from Mesa 20.2.0 offers. AMDVLK v-2020.Q3.6 does offer better compatibility so it may be worth installing it side-by-side the Mesa RADV Vulkan driver if you own a AMD graphics card.
The AMD change-log story as to what issues have been fixed since AMDVLK 2020.Q3.5 was released is:
- Junk Screen is observed during gameplay on Doom VFR Game on Navi10
- Baldur's Gate 3 stops responding after enabling Vsync
- Flickering corruption visible in shadows in Baldur's Gate 3
- Green color corruption flashes and disappears on launching the jesse-cube demo
- Red Dead Redemption 2 game is not launching with LLPC driver with latest Game update
- Little Witch Nobeta hard crash and attempt to reboot on RX 5700 XT
The jesse-cube demo is a simple Vulkan program written by Keith Packard, the creator of the Snek programming language and one of four Freedesktop Code Of Conduct enforcers. It shows a cube on the screen and that's it. It's not exactly exciting, but it is nice that it no longer causes green color corruptions with the latest AMDVLK (not that we actually noticed that with the previous version, it may have been a GPU dependent issue).
The Mesa RADV driver is the default Vulkan driver for AMD graphics cards on all the GNU/Linux distributions. This is what your machine will use if you simply install a GNU/Linux distribution and run a game. AMD's special AMDVLK Vulkan driver, and their ROCm OpenCL driver, are things users will have to install on their own. It is therefore interesting to see how their compare in order to see if AMDVLK is worth installing or not. AMDVLK and ROCm are both software AMD offers as free software under the MIT Software License so GNU/Linux distributions could include them if they wanted to. None of the GNU/Linux distributions want to do that.
Mesa 20.2.0 was released earlier this week. It is the first Mesa release using the new shader compiler technology called ACO by default. The ACO shader compiler makes it faster than previous Mesa versions, but is it faster and better than the latest and greatest AMDVLK?
Basemark GPU: Vulkan
Both the Mesa 20.2.0 RADV Vulkan driver and AMDVLK 2020.Q3.6 fail to run the Basemark GPU Vulkan benchmark at 4K High. AMDVLK can do it at 1440p and 1080p, RADV can't run the "High" preset at any resolution.
|Custom settings||Mesa RADV 20.2.0||AMDVLK 2020.Q3.5||AMDVLK 2020.Q3.6|
AMDVLK v-2020.Q3.6 is faster than AMDVLK v-2020.Q3.5 in this benchmark and it wins over the Mesa RADV driver just by participating. Running this test with RADV results in the
amdgpu driver crashing and kernel driver re-set. The same happens with AMDVLK at 4K high.
AMDVLK wins the Basemark GPU test on compatibility, not performance. Mesa RADV can't run this test at high at any resolution, it just crashes the entire machine (including the
amdgpu kernel driver). Mesa RADV can run Basemark GPU at "Medium". AMDVLK has a clear advantage since it manages to run the Basemark GPU Vulkan test with "High" settings at 1440p and 1080p (even though it too fails at 4K High).
waifu2x is a very popular image up-scaling algorithm. There are two implementations that run on Linux, one of which actually does something. waifu2x-ncnn-vulkan is very good at up-scaling low-resolution cartoon imagery. It happens to use Vulkan which means it's easy to use it to compare Vulkan implementations. Up-scaling one image 2x doesn't take long, but 100 images does take a while on a older mid-range AMD GPU like the MSI RX 470.
|AMD RADV ACO|
Mesa RADV is faster than AMDVLK when it comes to image up-scaling with waifu2x. We compared the up-scaled image files, they have the same sha256 hashes (they are identical) regardless of which Vulkan implementation you use. The 10 second difference isn't exactly huge on a four and a half minute long run, but the difference is consistently there.
You could do this test with 100 anime-girls-objecting images if you do not have a folder with 100 anime-girls-with-questionmarks images. Those kind of images can be collected from a popular Japanese cartoon forum called /g/ if you don't have a collection of either of those.
RealSR is an amazing image up-scaling program similar to waifu2x but much better at real-world images. The realsr-ncnn-vulkan Vulkan implementation can be used to compare how long it takes to process the same 100 pictures of anime girls with question-marks even though it wasn't designed for up-scaling Japanese cartoons for children.
RealSR is a lot slower than waifu2x-ncnn-vulkan, processing the 100 images of anime girls with question marks used in the waifu2x benchmark takes 78 minutes using the AMDVLK v-2020.Q3.6 driver. We did not test that with the AMD RADV ACO Vulkan driver from Mesa 20.2.0 as we realized that multiple runs with both would take ages. We cut the test image folder down to just 20 images and did three runs with both Vulkan implementations.
|AMD RADV ACO|
The performance difference is between the AMDVLK and Mesa RADV implementations is very real in the realsr-ncnn-vulkan 20-anime-girls-with-questionmark benchmark. AMDVLK is slower by two minutes and twenty seconds. That's something that does make a big difference if you batch-process lots and lots of images with RealSR. The difference isn't all that large if you occasionally up-scale a single image.
MSI Kombustor 188.8.131.52 in Wine
MSI Kombustor is a Windows-only Vulkan benchmark that runs fine in Wine. It's a nice way to test Vulkan driver performance, even if it is proprietary freeware software, not morally acceptable free software.
|AMDVLK 2020.Q3.6||Mesa 20.2.0|
|Furmark-Donut VK||50 FPS||51 FPS|
|Furkmark-MSI VK||81 FPS||82 FPS|
|Phong-Donut||482 FPS||501 FPS|
|TessMark-X32 VK||13 FPS||104 FPS|
|TessMark-X16 VK||97 FPS||247 FPS|
There is, as we noted when AMDVLK 2020.Q3.5 was released a few weeks ago, something seriously off with AMDVLK in the MSI Kombustor TessMark tests. There is a pretty big gap between 13 and 104 frames per second. The difference between the two in the Phong-Donut benchmark, 482 FPS vs 501 FPS, is about what you would expect when you compare two Vulkan drivers using the same graphics card. 97 vs 247 FPS in TessMark-X1 is a pretty huge difference. There is no such gigantic difference in the rest of the tests so there seems to be something in this particular test that makes AMDVLK struggle.
AMDVLK is worth installing if you have one of the supported graphics cards. That would be all the dedicated GCN, Vega and Navi graphics cards but not all the GCN-based APUs. Software that lets you choose between multiple graphics cards will think Mesa RADV is one graphics card and AMDVLK is another so both can be installed side-by-side. You can just temporarily
mv /etc/vulkan/icd.d/amd_icd64.json /etc/vulkan/icd.d/amd_icd64.disabled if you need to use something that doesn't let you choose and you want to temporarily disable it.
The only reason to install AMDVLK is compatibility. The Basemark GPU Vulkan benchmark shows that, AMDVLK can run it at 1440p and 1080p "High" while Mesa RADV can't. Performance is not a reason to install AMDVLK, it is slower, notably so in two of the MSI Kombustor tests.
AMDVLK is only "officially" supported on Ubuntu and RedHat. Installation instructions for those can be found at github.com/GPUOpen-Drivers/AMDVLK. Actual packages, and source code, can be acquired from github.com/GPUOpen-Drivers/AMDVLK/releases. Fedora users can use the "RedHat" .rpm and Linux Mint users can use the "Ubuntu" .deb package.