AMDVLK 2020.Q3.5 Alternative AMD Vulkan Driver Released With Four Game Specific Fixes And Sub-RADV Performance

From LinuxReviews
Jump to navigationJump to search

AMD has released a new version of their special "open source" Vulkan driver with game-specific fixes for Detroit: Become Human, Tropico 4, Doom 2016 and GTA IV. Vulkan API compliance is updated to Vulkan 1.2.152. Performance is overall slightly worse than what the latest Mesa RADV Vulkan driver provides and magnitudes worse in very specific GPU stress tests.

written by 권유리 (Kwon Yu-ri)  2020-09-14 - last edited 2020-10-04. © CC BY

Tropico 4 demo Steam.jpg
Tropico 4 demo installed from Steam running on GNU/Linux using Proton 5 and the Mesa 20.2.0~rc4 RADV Vulkan driver for AMD graphics cards, not the special "open" AMDVLK driver which contains a fix for this game in the latest 2020.Q3.5 release.

AMDVLK is a special MIT licensed "open source" AMD graphics driver for Vulkan released regularly by AMD in the form of binaries and regular source code dumps on Microsoft GitHub at /GPUOpen-Drivers/AMDVLK/releases. There is no git source tree to look at, AMD just dumps source tarballs and binary packages for Ubuntu and RedHat/Fedora once or twice a month and that's what you get. AMDVLK is built on AMD's cross-platform "Platform Abstraction Library (PAL)". It is basically a Linux version of the Windows driver, it is not at all the same as the free software community's Mesa RADV Vulkan driver.

AMDVLK 2020.Q3.5 supports Vulkan API 1.2.152, bringing it up to par with the Mesa 20.2 rc4 RADV driver. The release-notes lists four game-specific fixes:

  • Corruption observed in Detroit: Become Human on RX 5600XT
  • Tropico 4 demo: Game Crashes instantly after launch
  • Doom 2016: TDR / Hang Observed playing a while
  • GTA IV: Game crashes instantly on launch

AMDVLK Performance

The default (Vulkan at 4K High) Basemark GPU 1.2.1 benchmark crashes/hangs in the same spot with both the AMDVLK driver and the Mesa 2.20.0 rc4 RADV driver on Linux 5.9 rc4. That default benchmark does run, like a slide-show, without issues on Intel integrated graphics using the Mesa ANV driver.

Basemark 1.2.1 "Official" test, MSI RX 470 8 GiB
Basemark GPU 1.2.1 test Mesa RADV 20.2rc4 AMDVLK 2020.Q3.5
High Content Quality Edit-bomb.svg Fail Edit-bomb.svg Fail
Medium Content Quality 41316 40944

Basemark GPU using the AMDVLK driver will run at "High" content quality at all resolutions except 4K. Both AMD drivers are capable of running the Basemark GPU benchmark at all resolutions when "Medium" content quality is used. Mesa RADV will not run with "High" content quality at any resolution. This gives AMDVLK 2020.Q3.5 a win in Basemark GPU even though it too is far from perfect in this particular benchmark application.

The rather simple vkmark benchmark does work with both Mesa RADV and AMDVLK. A very quick and dirty test of the Mesa 20.2 rc4 RADV driver vs AMDVLK 2020.Q3.5 using vkmark --fullscreen at 1440p reveals that AMDVLK is slower and therefore totally not worth bothering with. The default free software Mesa RADV driver developed by the free software community using a live git tree everyone can see and participate in development of, is faster than the "open source" AMDVLK driver in the not very good or accurate vkmark Vulkan benchmark.

vkmark 2017.08-0 20180123git68b6f23 AMD RX470 8GiB
Mesa 20.2 rc 4 RADV AMDVLK 2020.Q3.5
vkmark Score 3583 3483
Component FPS FrameTime FPS FrameTime
[vertex] device-local=true 3929 0.255 ms 3886 0.257 ms
[vertex] device-local=false 3530 0.283 ms 3363 0.297 ms
[texture] anisotropy=0 3929 0.255 ms 3809 0.263 ms
[texture] anisotropy=16 3921 0.255 ms 3826 0.261 ms
[shading] shading=gouraud 3673 0.272 ms 3638 0.275 ms
[shading] shading=blinn-phong-inf 3685 0.271 ms 3636 0.275 ms
[shading] shading=phong 3671 0.272 ms 3628 0.276 ms
[shading] shading=cel 3670 0.272 ms 3650 0.274 ms
[effect2d] kernel=edge: 3301 0.303 ms 3323 0.301 ms
[effect2d] kernel=blur: 1412 0.708 ms 1423 0.703 ms
[desktop] <default> 3051 0.328 ms 3106 0.322 ms
[cube] <default> 4290 0.233 ms 4243 0.236 ms
[clear] <default> 4523 0.221 ms 3750 0.267 ms

The vkmark scores do not mean all that much since the tests that benchmark runs are so ridiculously simple that they produce FPS numbers in the thousands on many-years old graphics cards. Still, a win is a win, and the Mesa RADV number does win with a whopping 100 FPS (which means a whole lot less when it's 3583 vs 3483 than it would mean if it was 150 vs 50 FPS).

The difference between AMDVLK and Mesa 20.2rc4 RADV is just 1 FPS in the MSI Kombustor Furkmark-MSI test rendered at 1080p using Vulkan. There is, however, something seriously wrong with the way AMDVLK handles the MSI Kombustor TessMark tests.

MSI Kombustor, Wine 5.16, 1080p
Mesa 20.2 rc 4 RADV AMDVLK 2020.Q3.5
Furkmark-MSI VK 85 FPS 84 FPS
TessMark-X16 VK 254 FPS 71 FPS Blond-anime-girl-with-red-questionmark.png
TessMark-X32 VK 106 FPS 12 FPS Blond-anime-girl-with-red-questionmark.png
Furmark-Donut VK 53 53

Someone from AMD should probably have a look at how AMDVLK 2020.Q3.5 handles the MSI Kombustor TessMark tests since there is a gigantic performance difference between AMDVLK and Mesa RADV that isn't there in the Furkmark-MSI and Furmark-Donut tests. The TessMark test are probably using some specific Vulkan feature AMDVLK is really bad at compared to Mesa RADV. Games using whatever Vulkan feature is the root cause of the horrible TessMark performance will likely suffer equally gigantic performance-penalties.

HOWTO test the AMDVLK technology

Fedora 32/33 users who want to try the special AMD AMDVLK Vulkan driver can acquire the technology with this fine command:

sudo rpm -ivh
Kemonomimi rabbit.svg
Note: You only want the above command if you are reading this after it was recently published, go to /GPUOpen-Drivers/AMDVLK/releases and find the link to the latest version if you are reading this after October 2020.

vulkaninfo from the vulkan-tools package will tell you that you have two Vulkan-capable graphics cards even if you only have one once this package is installed. A brute-force fix is disable the Mesa driver by renaming the ICD loader file as root:

mv /usr/share/vulkan/icd.d/radeon_icd.x86_64.json /usr/share/vulkan/icd.d/radeon_icd.x86_64.disabled

Switching between Vulkan drivers can be done by renaming both the Mesa and the AMDVLK ICD files. To switch from AMDVLK to Mesa RADV:

mv /usr/share/vulkan/icd.d/radeon_icd.x86_64.disabled /usr/share/vulkan/icd.d/radeon_icd.x86_64.json
mv /etc/vulkan/icd.d/amd_icd64.json /etc/vulkan/icd.d/amd_icd64.disabled

To switch from Mesa RADV to AMDVLK:

mv /usr/share/vulkan/icd.d/radeon_icd.x86_64.json /usr/share/vulkan/icd.d/radeon_icd.x86_64.disabled
mv /etc/vulkan/icd.d/amd_icd64.disabled /etc/vulkan/icd.d/amd_icd64.json

You can check what Vulkan driver you are using with vulkaninfo |grep driver. It will tell you

driverName = AMD open-source driver

if you are using the AMD AMDVLK driver or, if you are using Mesa:

driverName = radv

Ubuntu users can get a .deb package from /GPUOpen-Drivers/AMDVLK/releases.

Installing AMDVLK for performance reasons is probably not worth it if the vkmark numbers are any indication. But there may be compatibility reasons, if a Vulkan games has issues with the Mesa RADV drivers then the AMDVLK driver could be worth a try. It is closer to the Windows driver than the Mesa driver is so it may work better if some proprietary game has glitches or issues using the Mesa RADV driver.

(one vote)


Anonymous user #1

6 months ago
Score 0++
What's the point of using that AMDVLK driver existing when it's more buggy than Mesa and every distribution defaults to Mesa? Why is AMD wasting time on that instead of contributing to the Mesa driver everyone uses? Is anyone actually manually installing and using it?

Anonymous user #2

6 months ago
Score 0++

Because it's *not* more buggy than RADV (it's not even close, and unlike the author of this article, I've used all three Linux vulkan drivers extensively on a daily basis). RADV is still an absolute disaster when it comes to Navi GPUs, and there are **numerous** games that aren't even COMPATIBLE with RADV and are ONLY compatible with AMDVLK or vulkan-amdgpu-pro. And there are also games where RADV performs 30-40% worse than AMDVLK and vulkan-amdgpu-pro (like Doom Eternal).

That's the whole point of having vulkan drivers that can coexist on the same installation and be chosen at runtime. You use RADV in games where RADV works the best, you use AMDVLK in games where AMDVLK is the best (or where RADV literally doesn't work at all).

Anonymous user #3

6 months ago
Score 0++

it's ATI all over again I guess. I too thought they have changed their ways with amdgpu until amdgpu-pro came out, same goes to amdvlk when radv was already functional.

probably only intel that's committed to ANV. hopefully intel driver is good to go as soon as Xe-based devices came out. I'm looking at SG1 since DG1 is only mobile, or if I am patient enough, DG2 next year. looking to upgrade power pinless RX 550 to something beefier and at the same time with an option for proper Mesa driver support
Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.