Gaming on 26.04 LTS

If playing modern games this will mostly apply. So 2015 or newer & 2020 onwards especially.
Typical modern Proton shader cache sizes can range from roughly 1–3 GB per title, although some games may be considerably smaller or larger depending on the engine and the amount of content you’ve played.

Shader cache size.

Whenever you launch a game through Steam using Proton or through Lutris, shaders may be precompiled before the game starts, or compiled during gameplay depending on the game engine and graphics API. Steam’s shader processing helps reduce in-game compilation where supported.

2020 onwards per game can look Something like.

  1. Game A: 1.8 GB
  2. Game B: 2.1 GB
  3. Game C: 1.4 GB
  4. Game D: 2.5 GB
  5. Game E: 1.0 GB
  6. Game F: 1.7 GB
  7. Game G: 2.2 GB
  8. Game H: 1.6 GB

Graphics drivers maintain a persistent shader cache on disk to reduce compilation during gameplay. Once the configured cache limit is reached, older cached shaders are evicted to make room for new ones. If you regularly play many modern games, a larger cache reduces how often previously compiled shaders must be regenerated.

The reason to pre-compile shaders is to eliminate experience reducing effects like stuttering, missing and unfinishes graphical effects which create the illusion that the game is broken.

Depending on how much space you are willing to give away to this process, it can help.

For me I have loads of storage 7TB in fast NVME, 3TB in slow HDD storage. It’s just not an issue.

For me I will set a 24GB limit. For me that should reasonably enough for the lifespan of 26.04 LTS.

Storage Capacity Suggested Shader Cache Limit
512 GB 5–8 GB
1 TB 8–12 GB
2 TB 12–24 GB
4 TB+ 24 GB+

Go here for the shader-booster script.
https://codeberg.org/psygreg/shader-booster/releases

Download the highlighted version.

Once downloaded find it under downloads in the user interface.

Right click the .sh file and make it executable.

Open the terminal and type sudo.

Drag and drop the .sh file into the terminal and hit enter, type in your password when promopted, hit enter to hit ok then reboot the system.

After reboot.

Nvidia user. Driver version 535 or later.

__GL_SHADER_DISK_CACHE_SIZE=(Amount you want allocated in bytes)
example & usable command: __GL_SHADER_DISK_CACHE_SIZE=12000000000

AMD user. Driver Mesa 23.1 or later.

AMD_VULKAN_ICD=RADV
MESA_SHADER_CACHE_MAX_SIZE=(size in absolute unit)

Example & usable command: AMD_VULKAN_ICD=RADV
MESA_SHADER_CACHE_MAX_SIZE=12G

Power settings are not the be-all end-all of performance but if you are not getting your desired level of experience, it can be a cause for that problem.

On a very fast system such as my own, changing from balanced to performance only really effects edge cases where a game is using the entire systems resources to it’s maximum, or for high-refresh gaming such as Counter Strike 2.

Typically with a Ryzen CPU based system especially the balanced profile is completely fine. But feel free to change this if ever needed.

MORE ADVANCED USERS ONLY.

Updating MESA.

Mesa 26.1.1: What Changed for Gamers (2026)

Mesa 26.1.0 shipped on May 6 as a feature release. Two weeks later, 26.1.1 followed as the stable bugfix, squashing driver crashes, memory leaks, and Vulkan stability issues across AMD, Intel, and NVIDIA hardware.

The headline addition in the 26.1 series is VK_EXT_present_timing, supported on RADV (AMD), NVK (NVIDIA), ANV (Intel), and several smaller drivers. This extension gives applications precise control over frame presentation timing, which directly translates to lower input latency in competitive titles. On the RADV side, AMD users also get VK_KHR_internally_synchronized_queues, VK_KHR_copy_memory_indirect for GPU-driven rendering, and VK_VALVE_shader_mixed_float_dot_product on Vega20 and RDNA2+ hardware for mixed-precision shader ops.

What Is Mesa and Why Should Gamers Care?

Mesa is the open-source graphics driver stack that provides OpenGL, Vulkan, OpenCL, and video acceleration on Linux. When you launch a game on Steam, run a Vulkan title through Proton, or render anything in Blender, Mesa is the layer translating those API calls into GPU commands. Your GPU vendor (AMD, Intel, NVIDIA) writes the kernel-mode driver, but Mesa handles everything in userspace from shader compilation to frame presentation.

A newer Mesa release almost always means:

  • Better Vulkan extension support for newer game engines

  • Shader compiler optimizations that improve framerate stability

  • Bugfixes for specific driver crashes and rendering corruption

  • Improved video encode/decode quality for streaming and recording

This is why checking your Mesa version is not just a debugging step. It is a regular maintenance task, like updating your kernel or your GPU firmware.

How to Upgrade Mesa

Ubuntu / Debian (APT)

Check Your Current Mesa Version on Ubuntu

apt-cache policy libgl1-mesa-dri mesa-vulkan-drivers

For 26.04: IN ORDER:

| Ubuntu 26.04 LTS | Mesa 26.0.x

if glxinfo is missing:

sudo apt update
sudo apt install mesa-utils
sudo apt update
sudo apt upgrade
. /etc/os-release

case "$VERSION_CODENAME" in
  resolute|noble)
    sudo add-apt-repository -y ppa:kisak/kisak-mesa
    ;;
  jammy)
    echo "Ubuntu 22.04 should use ppa:kisak/turtle instead."
    exit 1
    ;;
  *)
    echo "This article covers Ubuntu 26.04, 24.04, and 22.04."
    exit 1
    ;;
esac
sudo apt update
apt-cache policy libgl1-mesa-dri mesa-vulkan-drivers

Continue only when the candidate version includes a ~kisak suffix and the source URL matches your release, such as ppa.launchpadcontent.net/kisak/kisak-mesa/ubuntu resolute/main on Ubuntu 26.04 or noble/main on Ubuntu 24.04. If the candidate stays on Ubuntu’s archive package, stop and re-check the PPA choice before upgrading.

sudo apt upgrade
sudo apt install libgl1-mesa-dri mesa-vulkan-drivers

Sources.

  • FOSS Linux
  • Linux Capable
  • Shader Booster GitHub
  • Ubuntu Community discussion
2 Likes

Moved to Lounge > Tips & Tricks

Thanks for sharing with the community.

2 Likes