Skip to content

Mesa Driver Installation

Mesa provides the OpenGL and Vulkan drivers (RADV) required for BC-250 GPU support.

Mesa Requirements

Minimum Version

Mesa 25.1.0 or newer is required

  • BC-250 (Cyan Skillfish / gfx1013) support added in Mesa 25.1
  • No manual patching needed (upstream support)
  • Earlier versions will not work

Mesa 25.3.x+ recommended for stability

  • Bug fixes and performance improvements over earlier versions
  • Better compatibility and performance
  • Mesa 25.3.6 confirmed working on Fedora 43 (March 2026)
  • Mesa 25.1.3+ is minimum, but 25.3.x is the current validated stable target

Mesa and Governor Independence

The cyan-skillfish-governor tool works independently of Mesa version and kernel version. Mesa 25.1+ is specifically required for GPU 3D acceleration (OpenGL/Vulkan), not for power management or fan control. These are separate concerns.

Upstream Support

As of Mesa 25.1, BC-250 support is included upstream. No custom patches or compilation needed!

Checking Mesa Version

# Check installed Mesa version
glxinfo | grep "OpenGL version"

# Example output:
# OpenGL version string: 4.6 (Compatibility Profile) Mesa 25.1.5

# Check Vulkan driver
vulkaninfo | grep "driverName"

# Should output: driverName = radv

Installation by Distribution

Fedora 43

Mesa 25.1+ is in official repositories:

# Update system (includes Mesa)
sudo dnf upgrade --refresh

# Verify Mesa version
dnf list mesa-\*
glxinfo | grep "OpenGL version"

No additional steps needed!

Fedora 42 is End of Life

Fedora 42 reached EOL. Upgrade to Fedora 43 (Mesa 25.x in repos).

Arch Linux / CachyOS

Mesa 25.1+ in official repos:

# Install/update Mesa
sudo pacman -S mesa vulkan-radeon

# Verify
pacman -Q mesa
glxinfo | grep "OpenGL version"

Debian

Debian/Linux Mint Mesa Availability

Debian stable/testing & Linux Mint: Mesa 25.1+ may not be available in standard package repositories. Consider using debian-experimental, backports, or compiling from source if your distro is pinned to older versions.

Mesa 25.1.3+ available in experimental:

# Add experimental repo (if not already added)
echo "deb http://deb.debian.org/debian experimental main" | sudo tee /etc/apt/sources.list.d/experimental.list

# Update package lists
sudo apt update

# Install Mesa from experimental
sudo apt install -t experimental mesa-vulkan-drivers libgl1-mesa-dri mesa-utils

# Verify
glxinfo | grep "OpenGL version"

Debian sid (Jan 2026)

Mesa 26 + kernel 6.18.3 confirmed working on Debian sid as of January 2026.

Experimental Repo

Debian experimental packages may have dependencies on other experimental packages. Use with caution.

Ubuntu

Mesa 25.1.5 available via PPA:

# Add PPA (example - check for current BC-250 compatible PPA)
sudo add-apt-repository ppa:kisak/kisak-mesa

# Update and install
sudo apt update
sudo apt upgrade

# Verify
glxinfo | grep "OpenGL version"

Ubuntu PPA Verification

Before using the Kisak PPA, verify it provides Mesa 25.1+. Check PPA status or test installation before relying on it for BC-250 support.

Bazzite

Mesa 25.1+ included by default:

# Check version
rpm -qa | grep mesa

# Update if needed
rpm-ostree upgrade

Manjaro

Mesa in official repos:

# Update system
sudo pacman -Syu

# Verify Mesa
pacman -Q mesa

Verifying Installation

Check OpenGL

# Install mesa-utils if not present
# Fedora: sudo dnf install mesa-utils
# Arch: sudo pacman -S mesa-utils

# Check OpenGL renderer
glxinfo | grep "OpenGL renderer"

# Should show:
# OpenGL renderer string: AMD Radeon Graphics (radv gfx1013 LLVM 18.1.8 DRM 3.59 6.18.18-200.fc43.x86_64)

llvmpipe Means No GPU

If you see "llvmpipe" as the renderer, the GPU driver is NOT working. You're using CPU software rendering.

Check Vulkan

# Install vulkan-tools
# Fedora: sudo dnf install vulkan-tools
# Arch: sudo pacman -S vulkan-tools

# Check Vulkan device
vulkaninfo | grep deviceName

# Should show:
# deviceName = AMD Radeon Graphics (RADV GFX1013)

Verify RADV Driver

# Check driver is RADV (not AMDVLK)
vulkaninfo | grep "driverName"

# Should show: driverName = radv

Environment Variables

Required Variables

# Add to /etc/environment or ~/.bashrc

# Force RADV driver (not AMDVLK)
AMD_VULKAN_ICD=RADV

Optional Variables

RADV_DEBUG options:

# Fix some graphical glitches
RADV_DEBUG=nohiz

# Disable compute queue (may not be needed on Mesa 25.1+)
# RADV_DEBUG=nocompute

Apply globally:

# Edit /etc/environment
sudo nano /etc/environment

# Add:
AMD_VULKAN_ICD=RADV
RADV_DEBUG=nohiz

Apply per-game in Steam:

RADV_DEBUG=nohiz %command%

Mesa Performance Variables

For OpenGL applications:

# Use Zink (OpenGL over Vulkan) for better performance
MESA_LOADER_DRIVER_OVERRIDE=zink

Zink Overhead

Zink adds slight overhead but can improve compatibility and performance for some OpenGL applications. Test per-game.

Flatpak Mesa Override

Problem: Flatpak applications use runtime Mesa, which may be outdated.

Solution: Override with mesa-git

# Add flathub-beta repository
flatpak remote-add --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo

# Install mesa-git for runtime 24.08
flatpak install --system flathub-beta org.freedesktop.Platform.GL.mesa-git//24.08
flatpak install --system flathub-beta org.freedesktop.Platform.GL32.mesa-git//24.08

# Set environment for Flatpak
sudo mkdir -p /etc/systemd/system/service.d
sudo bash -c 'echo -e "[Service]\nEnvironment=FLATPAK_GL_DRIVERS=mesa-git" > /etc/systemd/system/service.d/99-flatpak-mesa-git.conf'

# Reboot
sudo reboot

Flatpak Runtime Dependency

Flatpaks on runtime 23.08 or older cannot use Mesa 25.1. They must be on runtime 24.08+.

Compilation (Advanced)

When to Compile Mesa

Usually not needed, but compile if: - Distribution doesn't have Mesa 25.1+ yet - Testing newest Mesa-git features - Development/testing purposes

Mesa Compilation Guide

Dependencies (Fedora):

sudo dnf install git meson ninja-build gcc-c++ \
    libdrm-devel libXrandr-devel libXext-devel \
    libXdamage-devel libX11-devel libxcb-devel \
    libxshmfence-devel libXxf86vm-devel libXfixes-devel \
    wayland-devel wayland-protocols-devel \
    llvm-devel libunwind-devel zlib-devel \
    expat-devel elfutils-libelf-devel python3-mako \
    flex bison

Clone and Build:

# Clone Mesa
git clone https://gitlab.freedesktop.org/mesa/mesa.git
cd mesa

# Configure
meson setup build \
    --buildtype=release \
    -Dgallium-drivers=radeonsi \
    -Dvulkan-drivers=amd \
    -Dplatforms=x11,wayland \
    -Dglx=dri

# Compile (use -j for parallel build)
ninja -C build -j$(nproc)

# Install (may need to backup old Mesa first)
sudo ninja -C build install

Compilation Time: 10-30 minutes depending on CPU

Backup Before Installing

Compiling and installing Mesa system-wide can break your system if done incorrectly. Only do this if you know what you're doing.

Troubleshooting Mesa Issues

GPU Not Detected

Symptoms: - vulkaninfo shows no devices - glxinfo shows llvmpipe

Causes: 1. Mesa < 25.1 installed 2. amdgpu kernel module not loaded 3. Kernel parameters incorrect

Solutions:

# Check kernel module
lsmod | grep amdgpu
# If empty, driver not loaded

# Check kernel messages
dmesg | grep -i amdgpu
# Look for errors

# Verify Mesa version
glxinfo | grep "OpenGL version"
# Must be 25.1+

# Check if nomodeset is still active
cat /proc/cmdline
# Should NOT contain "nomodeset"

Software Rendering (llvmpipe)

Symptom:

glxinfo | grep "OpenGL renderer"
# Shows: "llvmpipe (LLVM 18.1.8, 256 bits)"

Cause: GPU driver not working, falling back to CPU rendering

Solutions: 1. Install Mesa 25.1+ 2. Remove nomodeset from GRUB 3. Ensure amdgpu module loaded 4. Check kernel version (6.12-6.14)

AMDVLK Instead of RADV

Symptom:

vulkaninfo | grep "driverName"
# Shows: driverName = AMDVLK

Issue: AMD's open-source Vulkan driver (AMDVLK) loaded instead of RADV

Solution:

# Force RADV
export AMD_VULKAN_ICD=RADV

# Make permanent
echo "AMD_VULKAN_ICD=RADV" | sudo tee -a /etc/environment

# Or uninstall AMDVLK
sudo dnf remove amdvlk  # Fedora
sudo pacman -R amdvlk   # Arch

Graphical Glitches in Games

Symptoms: - Black textures - Flickering - Visual artifacts

Solutions:

Try RADV_DEBUG options:

# Fix Z-buffer issues
RADV_DEBUG=nohiz

# Disable compute queue (older Mesa versions)
RADV_DEBUG=nocompute

# Combine multiple options
RADV_DEBUG=nohiz,nocompute

Per-game in Steam launch options:

RADV_DEBUG=nohiz %command%

Mesa Update Breaks System

Symptoms: - Black screen after Mesa update - System doesn't boot

Recovery:

  1. Boot into recovery mode or older kernel
  2. Downgrade Mesa:
# Fedora
sudo dnf downgrade mesa\*

# Arch
sudo pacman -U /var/cache/pacman/pkg/mesa-25.1.3-1-x86_64.pkg.tar.zst

# Check what version you're downgrading to
  1. Hold Mesa version temporarily:
# Fedora
sudo dnf versionlock add mesa\*

# Arch
# Add to /etc/pacman.conf under [options]:
# IgnorePkg = mesa

Mesa Version History

Mesa Version BC-250 Support Notes
< 25.0 ❌ No No gfx1013 support
25.0.x ⚠️ Experimental Early support, buggy
25.1.0 ✅ Yes First official support
25.1.3+ ✅ Minimum Stable, bug fixes
25.1.5+ ✅ Good Improvements over 25.1.3
25.2.x ✅ Good Stable, Feb 2026
25.3.x Recommended Current stable (March 2026, e.g. 25.3.6 on Fedora 43)
26.0 ✅ Latest Available on Debian sid/Ubuntu 26.04 daily

See Also