Mesa gets a big CS:GO speedup, plus upcoming AMD RADV performance boost

By | 15/09/2022

Vulkan-logo.png

There are two Vulkan drivers for AMD graphics cards available: The RADV driver that comes with Mesa and the AMDVLK driver from AMD. Here is a test of the latest AMDVLK 2021.Q2.1 driver against the latest Mesa 21.0.three RADV driver in some graphical and compute applications.


written by 윤채경 (Yoon Chae-kyung)  2021-04-17 – final edited 2021-04-20.


© CC BY

Asahi by Futuris 10.jpg

The Asahi scene demo rendered in Wine with RADV.

All the GNU/Linux distributions come with the Mesa RADV Vulkan driver for AMD graphics cards as part of the standard Mesa graphics stack. There is some other culling, a special Vulkan driver from AMD called AMDVLK. It has to exist acquired and installed separately.

Both drivers will more often than not provide the same performance with Vulkan compute as a notable exception.
Which you lot should utilise is therefore mostly a question of what driver works best with the game(due south) you would like to play. Both AMDVLK and RADV work fine with
most
games, merely in that location are some that work better with AMDVLK or vice versa. Information technology is, luckily, quite piece of cake to have both drivers installed and choose what game or application uses what driver.

Graphics Performance

[edit]

Graphics performance is, as yous volition run into from the numbers, nearly equal. The RADV driver is more often than not about 2% faster. In that location are a few special exceptions where AMDVLK functioning drops similar a rock, but those aren’t common.

Basemark GPU

[edit]

Basemark GPU 1.2.1 Vulkan at 1080p Medium using RADV Mesa 20.2rc4.jpg

Basemark GPU, out of Republic of finland, fails to run through the “official test” with default settings with the AMDVLK driver. The
amdgpu
kernel module will spew out some errors so the 10 server will crash. It used to fail with the Mesa RADV commuter too, but that has non been the case in quite some fourth dimension. The AMDVLK page proposes using this to prepare issues with libdrm versions earlier than 2.4.92:

File:
$Habitation/.config/amdPalSettings.cfg

MaxNumCmdStreamsPerSubmit,4 CommandBufferCombineDePreambles,1
        

We tried those settings even though our libdrm version is newer. It did non assistance, and the default official Basemark GPU examination withal fails with AMDVLK on our GPU.

Basemark ane.2.1 “Official” exam
MSI RX 470 8 GiB

Going downwardly to “Medium” content quality makes the official test run fine with both drivers.

Basemark 1.2.1 “Official” test, Medium Quality
MSI RX 470 8 GiB

The latest Mesa RADV driver scores higher, but the margin it wins by is barely outside of run to run variation. There really isn’t much of a deviation betwixt the two in the Basemark criterion beyond the fact that AMDVLK can’t run it unless yous reduce the settings.


MSI Kombustor (Wine)

[edit]

MSI Kombustor v4.1.6.0 On Linux Using Wine.jpg

A MSI logo rendered past MSI Kombustor 4.one.6.0, running in Vino, using Vulkan.

MSI Kombustor is a GPU stress-test plan for Windows with several built-in benchmarks. It runs fine in Wine. You do not need the latest Wine version, it has worked fine in Wine for years. It uses Vulkan directly, the benchmarks do not go through whatever DirectX to Vulkan translation layer like a DirectX graphics benchmark would exercise.

The results are mostly equal except for the TessMark benchmarks. The AMDVLK score is
Blond-anime-girl-with-red-questionmark.png
far below where information technology should exist in that criterion.

MSI Kombustor 4.i.7.0, Wine 6.6, FurMark-Donut, Wine
MSI RX 470 eight GiB
MSI Kombustor four.i.7.0, Wine 6.half-dozen, FurMark-MSI, Vino
MSI RX 470 8 GiB
MSI Kombustor 4.1.7.0, Wine vi.half dozen, Phong-Donut,, Wine
MSI RX 470 8 GiB
MSI Kombustor four.ane.7.0, Wine 6.vi, TessMark-X32, Wine
MSI RX 470 viii GiB
MSI Kombustor 4.one.7.0, Vino vi.6, TessMark-X16, Vino
MSI RX 470 eight GiB

The odd difference between RADV and AMDVLK in the TessMark tests take been similar that since the first time nosotros tried benchmarking the two using that test years agone. Do note that we are not aware of any
real games
exhibiting such a gigantic performance divergence. You may encounter it, bit isn’t non probable. The numbers are quite equal in the other tests. The Mesa RADV driver
is
faster by a few percent, but there isn’t whatsoever huge and notable divergence betwixt the two.

vkmark

[edit]

vkmark is a really unproblematic Linux-native Vulkan benchmark. It doesn’t apply any particularly advanced Vulkan features, but it does produce a result.

vkmark -s 1920x1050
(higher is ameliorate)
MSI RX 470 viii GiB

RADV wins the vkmark benchmark by a margin that is and then minor information technology is barely measurable.

Vulkan Compute

[edit]

Blond-anime-girl-with-red-questionmark.png

Vulkan Compute is an area where AMDVLK is
noticeably slower
than the Mesa RADV Vulkan commuter. In that location is, as you will see from the numbers,
a huge difference. Which driver y’all employ doesn’t matter all that much in graphical applications, they both perform similarly. Compute really is a very dissimilar story.

waifu2x and RealSR are both popular image upwardly-scaling programs. waifu2x is nearly suitable for anime pictures, RealSR is suitable for all kinds of pictures. waifu2x will always upward-scale 2x, RealSR will always upwardly-scale 4x. These are not theoretical workloads, these benchmarks measure how long information technology takes to upward-scale real images using Vulkan compute. We have verified that
the resulting images are identical, none of the Vulkan drivers cheat in any way (unlike what we encounter in the LuxMark OpenCL benchmark with Mesa Clover prior to Mesa 21 and AMD ROCm, the image Clover from Mesa <=20.iii.10 produces isn’t correct or valid).

waifu2x

[edit]

waifu2x-ncnn-vulkan,
100 anime girls with questionmarks, in seconds
MSI RX 470 8 GiB

RealSR

[edit]

It is very apparent that RADV offers
much, much
better operation than AMDVLK when information technology comes to Vulkan compute and that is especially true in the RealSR paradigm up-scaling test. It is interesting to note that AMDVLK appears to be getting slightly
slower, not faster, with each new release.

libplacebo

[edit]

Libplacebo is a multimedia rendering library taken from the mpv flick role player core. Each test consists of a variety of tasks washed using Vulkan GPU compute.

libplacebo, deband_heavy, FPS (college is better)
MSI RX 470 8 GiB
libplacebo, polar_nocompute, FPS (higher is ameliorate)
MSI RX 470 viii GiB
libplacebo, hdr_peakdetect, FPS (higher is improve)
MSI RX 470 viii GiB
libplacebo, av1_grain_lap, FPS (college is better)
MSI RX 470 viii GiB

Wine Compatibility

[edit]

Windows software using Vulkan directly works as fine with RADV and AMDVLK with the TessMark MSI Kombustor tests being a notable exception.

That is
not
the case with DirectX xi games in Vino with DXVK translating DX11 to Vulkan. Admittedly
nothing
using DX11 works with AMDVLK. Windows software using DirectX 9 seems to work fine with AMDVLK.

You should probably avert AMDVLK if you apply Windows DirectX software in Wine regularly.

In Conclusion

[edit]

AMDVLK performs slightly worse in graphical applications and much worse in compute applications. At that place’due south trivial reason to bother with the AMD AMDVLK driver unless there is some game or awarding that doesn’t work as it should with the Mesa RADV commuter. There may be specific Vulkan games where information technology works improve.

Choosing The Currently Active Vulkan Commuter

[edit]

Note: AMDVLK lacks support for certain APUs similar the Athlon 5350. You may not be able to use it if you take an older AMD APU. RADV does work with those.

AMDVLK v-2021.Q2.1 comes with something AMD calls “AMD switchable graphics layer” in the course of a implicit layer library and configuration file in
/etc/vulkan/implicit_layer.d/amd_icd64.json.

This lets you choose what Vulkan driver to utilize by setting
AMD_VULKAN_ICD
to
AMDVLK
or
RADV
if you choose to install the AMDVLK driver side-by-side with the Mesa RADV Vulkan driver.

Mesa RADV AMD_VULKAN_ICD="RADV"
AMD AMDVLK AMD_VULKAN_ICD="AMDVLK"

AMDVLK will be the default if
AMD_VULKAN_ICD
is unset.

A elementary flim-flam is to add together
env AMD_VULKAN_ICD="RADV"
to the
Exec
line in a games
.desktop
file (files in
/usr/share/applications/
and
$Dwelling house/.local/share/applications
desktop environments use to provide menu items).

Using that “switchable graphics” thing makes merely i Vulkan driver show upwardly in the games and applications that allow y’all choose within the game or application, and that would be most of them. Wine and a few other things are exceptions, the outset (0) Vulkan device is used if multiple are installed. Y’all can simply
mv /etc/vulkan/implicit_layer.d/amd_icd64.json /etc/vulkan/implicit_layer.d/amd_icd64.nope
to disable the AMD switchable graphics temporarily or permanently.

On a like note, you may want to
rm /usr/share/vulkan/icd.d/lvp_icd.*.json
if y’all never ever want to use the Mesa’s super-slow Vulkan
CPU implementation.


Source: https://linuxreviews.org/The_Best_Linux_Vulkan_Driver_For_AMD_GPUs:_Mesa_RADV_vs_AMDVLK