The upcoming Mesa driver 23.1 release is sounding like it's going to be pretty great, with the Graphics Pipeline Library ("GPL") being enabled by default, plus we're looking at smaller shader cache sizes too.
We're still around a month away from the release of Mesa 23.1 but that doesn't stop me being excited by it. Going by the current roadmap, the estimated release date is May 3rd. When you will get the update will depend on the usual update times for whatever Linux distribution you're on, and for Steam Deck — likely for the next major upgrade.
Merged into the AMD RADV driver in Mesa a couple of days ago, was a change to enable GPL by default. What this should do, is much improve the stuttery situation that many games on Linux and Steam Deck face when they don't have a shader cache. You can read a whole lot more about how it works in the original announcement post from The Khronos Group who oversee the Vulkan API.
Another recent addition that was merged into Mesa only a day ago, "re-implements the RADV pipeline cache based on the common vk_pipeline_cache", and as a result the developer noted they saw a reduction in the cache file size by "~60%" for single-file disk-cache and "~2%" increase for multi-file disk-cache "due to the overhead from additional small files".
All this and more was summed up in my recent Steam Deck overview news video:
Direct Link
QuoteMerged into the AMD RADV driver in Mesa a couple of days ago, was a change to enable GPL by default.A good day for software licensing!
The shader cache is working as expected now.
I don't have to disable gpl for any of the games I've tested (and Rage 2 runs correctly)
Of relevance: It can be disabled if necessary with
RADV_DEBUG=nogpl
---------------------------------------------------
It harms Vulkan games (shader cache... see point below)
It harms DirectX 12 (vkd3d-proton), by disabling the on-disk shader caching completely (e.g. no mesa_shader_cache or mesa_shader_cache_sf if gpl). Vkd3d-proton has it's own mechanism, where it caches a primitive and links it in at pipeline time (much like the GPL with DXVK, only it needs to cache more than just its pipeline state)
At this time it's mostly only good for DXVK. (from what I hear, some native Linux Valve titles like DOTA 2, recently ported to Vulkan, also support this but not much else)
Just like mesa_glthread and adaptive sync (also presumptuous defaults). In EVERY case, mesa_glthread is detrimental to me, even in the "poster child" application where it's purported to improve: Bioshock Infinite (native). I patch those defaults in driinfo_radeonsi.h (I change them to false)
I've been using mesa-master (well, "main" now, for the politically correct) for months now so I get the latest commits related to this graphics pipeline library. and I can tell you this gpl is not ready to be enabled by default, or rather, other things won't like it.
As the majority of games I play are DirectX 11 and 9, I have been enabling it by default globally with a variable (RADV_PERFTEST=gpl in /etc/profile.d), and disable it on command line per invocation for games that don't like it. That's fine for me, but could cause problems for those unaware of the problems.
I haven't done a build in some days on gaming system (I don't have this change yet) but now that this is a default, it won't be RADV_PERFTEST="" anymore,
it will be RADV_DEBUG="nogpl" to disable it.
[strike]P.S. I actually have a game that won't launch with gpl, Rage 2. It's a Windows game, but it's Vulkan. It just sits there with the library entry showing "running" until I hit stop. It's waiting for something that isn't coming. That will be a good test tonight, I'll get rid of the variables and try the new mesa build's defaults.
... and Rage 2 launches just fine now (and works normally)
Last edited by Grogan on 13 April 2023 at 12:57 am UTC
Isn't AMDGPU the most prevalent AMD driver on Linux?
I was under impression that RADV is half baked driver implementation from AMD directly?
Did something change in a while or?
Quoting: drjomsWho uses RADV?
Isn't AMDGPU the most prevalent AMD driver on Linux?
I was under impression that RADV is half baked driver implementation from AMD directly?
Did something change in a while or?
Pretty much everyone with a Radeon uses RADV.
AMDGPU is the kernel driver for Radeon cards, RADV is the Vulkan implementation in Mesa for Radeon cards. They are two distinct things.
its always fixes or support new linux technology but never performance improvement
Is DXVK/VKD3D ready right now?
Quoting: drjomsI was under impression that RADV is half baked driver implementation from AMD directly?You're thinking of AMDVLK, the driver from AMD. It's not widely used but I'm not sure if half-baked is the correct description.
Quoting: kokoko3kFrom whai I've read, the GPL feature needs specific userspace support by the "game".In DXVK from 2.0 I think.
Is DXVK/VKD3D ready right now?
See more from me