For most of the past two decades, gaming on Linux was a project. You installed a distro, hunted down Wine configuration guides, accepted that roughly half your library simply would not run, and made peace with that. It was a hobby platform for people who already loved Linux, not a realistic home for anyone who primarily cared about games.
That era is over. As of early 2026, close to 90% of Windows games run on Linux through Proton, and the ones that don't are blocked by deliberate publisher decisions rather than any technical limitation in the platform. The March 2026 Steam Hardware and Software Survey recorded Linux at 5.33% of surveyed users -- the highest share in the platform's history, up from 3.38% in January 2026 and just over 2% in late 2024. This article covers the full current picture: the technology stack that made this possible, where the remaining friction actually lives, how to choose a distro, and how to handle the edge cases.
Proton launched in 2018. Linux share stayed below 2% for years. Then the Steam Deck shipped and the number started moving. What does it tell you about the relationship between hardware adoption and software ecosystem investment?
Proton: The Technology That Changed Everything
The modern Linux gaming story begins with Proton, Valve's compatibility layer built on top of the Wine project. Valve released Proton on August 21, 2018. At launch it was treated as a curiosity -- Valve announced a list of 27 tested and certified games. Seven years later it is the reason you can install and run most of your Steam library on Linux without doing anything special.
Understanding how Proton actually works matters, because it explains both its reach and its limits. Proton is not an emulator. It does not simulate Windows hardware or run a Windows virtual machine. Instead, it intercepts Windows API calls and translates them into calls the Linux stack understands, in real time.
Wine is a compatibility layer, not an emulator. It re-implements the Windows API -- file systems, registry access, thread management, COM objects -- on top of POSIX. When a Windows executable calls CreateFile() or LoadLibrary(), Wine intercepts that call and routes it to the Linux equivalent. Wine does not run a Windows kernel; it provides just enough Windows surface for the application to believe it is running on Windows. Proton carries patches on top of Wine that Wine upstream has not accepted -- including the synchronization primitives esync and fsync, and more recently ntsync (kernel 6.14+), which together substantially reduce CPU threading overhead in game workloads.
DXVK intercepts Direct3D draw calls and translates them into Vulkan in real time. Before DXVK, the only option was Wine's software D3D implementation (wined3d), which translated D3D into OpenGL -- a slower path that could not come close to native Windows performance. DXVK uses Vulkan's closer-to-metal design to achieve near-native performance. The first-run shader stutter you encounter with Proton is DXVK compiling Vulkan pipeline state objects from the SPIR-V shaders translated out of the game's D3D shader bytecode. After the first play session, these compiled PSOs are cached locally and the stutter disappears.
VKD3D-Proton is a fork of the original Wine VKD3D project, aggressively optimized by Valve and Hans-Kristian Arntzen specifically for gaming workloads. D3D12 and Vulkan are philosophically similar -- both are explicit, low-overhead APIs -- which makes the translation more structural than semantic. The key engineering challenge is that D3D12's resource binding and pipeline state model does not map directly to Vulkan's. VKD3D-Proton solves this with aggressive shader pre-compilation, async pipeline creation, and an optimized descriptor heap implementation. VKD3D-Proton 3.0b (shipped in Proton 10.0-4) significantly improved compatibility with titles that use D3D12's work graphs and mesh shaders.
Vulkan is the reason the entire translation stack is viable at all. OpenGL, its predecessor, was a high-level API where the driver made many implicit decisions -- meaning translating D3D into OpenGL meant bridging two different sets of implicit assumptions. Vulkan is explicit: the application manages memory, synchronization, and pipeline state directly. This means DXVK and VKD3D-Proton can make their translations predictable and low-overhead. On AMD hardware, the open-source Mesa Vulkan driver (RADV) is one of the highest-quality Vulkan implementations on any platform -- sometimes performing better than AMD's own Windows driver. This is why AMD hardware is generally the recommended choice for Linux gaming.
A game built for DirectX on Windows runs on Linux's Vulkan stack without the developer shipping a Linux build and without you needing to understand any of the plumbing. Wine handles the broader Windows userspace surface -- file system conventions, registry emulation, thread management. The result: your game launches, runs, and saves exactly as it would on Windows.
Proton maintains better compatibility than upstream Wine because Valve and the community carry additional patches that Wine itself has not accepted upstream. Components like esync (eventfd-based synchronization, reducing CPU overhead from threading) and fsync (a futex-based extension for better performance) ship in Proton and make a measurable difference in stability and performance for many titles. The current evolution of this work is ntsync, a kernel-level synchronization driver that landed in the Linux mainline kernel in version 6.14 (released March 2025). Distros shipping kernel 6.14 or later -- including Fedora 42, Ubuntu 25.04, and CachyOS -- get ntsync support, and Valve has added the ntsync module to SteamOS. GE-Proton 10-10 and later enable ntsync by default where the kernel supports it; GE-Proton 10-9 added support but requires the PROTON_USE_NTSYNC=1 environment variable explicitly.
The Proton 10 cycle, which entered beta in April 2025 and reached stable release (10.0-3) in November 2025, was a significant compatibility milestone. Proton 10 rebases against Wine 10, which Wine developers described as representing "a year of development effort and over 6,000 individual changes." The stable release also updated to DXVK 2.6.x and VKD3D-Proton 2.14.x, fixed crashes in titles like Assassin's Creed: Valhalla, added playable status for Microsoft Flight Simulator 2024 and Factorio, and expanded DualSense controller support.
Proton 10.0-4, released January 26, 2026, extended official support to 19 additional titles that had previously required the Proton Experimental branch -- including Metal Slug: Awakening, Distant Worlds 2, and Girls' Frontline. It also shipped with VKD3D-Proton 3.0b, VKD3D 1.18, SteamWorks SDK 1.63, and Wine Mono 10.4.1. Notable targeted fixes in 10.0-4 addressed long launch delays for several Xbox Game Studios titles (Avowed, Grounded 2, Indiana Jones and the Great Circle, The Outer Worlds 2), fixed 7.1 audio channel mapping in Ghost of Tsushima Director's Cut and Clair Obscur: Expedition 33, and resolved issues in Arc Raiders and For Honor. Proton Experimental continued its role as the advance staging branch throughout early 2026, with a March 2026 update resolving HELLDIVERS 2 initialization failures and launch-blocking issues for games using the REDLauncher, along with broader MonoGame compatibility improvements.
GE-Proton: Community Patches for Edge Cases
In parallel with the official Proton builds, a community-maintained fork called GE-Proton (maintained by Thomas Crider, known online as GloriousEggroll) applies fixes to specific games ahead of the official Proton release cycle. You manage it through ProtonUp-Qt, a graphical tool that handles downloading and organizing alternate Proton versions. You then assign it per-game in Steam under Properties > Compatibility. GloriousEggroll is also the maintainer of Nobara Linux, making him one of the more quietly influential figures in the Linux gaming ecosystem.
Understanding what GE-Proton actually adds helps you use it intelligently rather than reaching for it blindly. The three categories of fixes it most commonly carries ahead of official Proton are:
- FFmpeg codec patches -- GE-Proton bundles FFmpeg with additional codec support, most importantly for games that use proprietary video formats for cutscenes (BINK video, certain H.264 DRM containers). Games that crash or show a black screen during intro videos on official Proton frequently work in GE because of this. This is one of the first things to try if a game launches but hangs at a logo or intro cutscene.
- Media Foundation patches -- Windows games that use Microsoft's Media Foundation framework for video or audio playback require patches that are not always in official Proton. GE carries these. Affected titles include some EA games, certain Ubisoft titles, and games that use Windows' built-in audio or video decoders rather than bundled ones.
- Game-specific hotfixes -- Each GE release includes targeted fixes for games that have broken since the last official Proton release or that have known issues. The release notes on the GE-Proton GitHub page are the canonical reference: they list each game fix by name. Before trying GE-Proton for a specific broken title, search the release notes for that game's name -- if it is listed, you know which GE build introduced the fix and roughly what it addressed.
The practical workflow: if a game does not work on stock Proton, check ProtonDB reports to see if users recommend a specific GE build. If they do, install that version through ProtonUp-Qt rather than always defaulting to the latest release -- a newer GE build occasionally breaks something a prior one fixed.
ProtonDB (protondb.com) is community-crowdsourced compatibility data for every game on Steam. Before buying a title you intend to run on Linux, check its ProtonDB page. Ratings run: (works perfectly, no configuration needed) → → → (does not run). Reports often include specific Proton version recommendations and launch option fixes.
The Numbers in 2026
The Steam Hardware and Software Survey for March 2026 recorded Linux at 5.33% of surveyed Steam users -- the highest share the platform has ever recorded, up 3.10 percentage points from February's 2.23% figure. KitGuru described it as "Linux crossing the 5% market share threshold for the first time." For context on the trajectory: Linux was at just over 2% in late 2024, climbed to 3.20% in November 2025, reached 3.58% in December 2025, pulled back to 3.38% in January 2026, dipped again in February, then surged to 5.33% in March. The March spike correlated with continued Steam Deck and SteamOS adoption, with SteamOS Holo accounting for roughly 24% of the Linux install base in that survey. Steam's total monthly active user count stood at 132 million in 2025, according to figures confirmed by Valve at GDC 2026.
The catalog story is more striking than the market share number. Steam hosts roughly 118,000 games in total. Around 9,000 of those have native Linux builds. Proton extends the practically playable library to over 106,000 titles. Valve's Deck Verified program had certified more than 21,000 games as Verified or Playable on SteamOS as of late 2025, with ProtonDB community testing showing positive compatibility reports for over 15,000 additional titles.
On the performance question that Windows users most frequently ask: Linux gaming performance is not a penalty. For AMD GPU users in particular, average framerates in Proton-run titles are typically within 2--5% of equivalent Windows results, and 1% lows are sometimes better because the Mesa driver stack has lower CPU overhead in certain workloads. The gap has closed to the point where single-player titles frequently show no meaningful difference. The scenarios where Windows has a clear edge are titles with aggressive DXVK shader compilation stutter on first run (which improves after the shader cache warms up), and specific titles where the Windows build receives ongoing performance optimisations that the Proton path has not caught up to.
The Steam survey figure fluctuates month to month. The February 2026 drop to 2.23% correlated with a 30% monthly surge in Simplified Chinese language participation. Phoronix described this as "a reporting anomaly" that negatively impacts Linux share -- the same pattern has repeated multiple times. The English-language Linux share, tracked separately by GamingOnLinux's Steam tracker, remained steady through that period. The underlying growth trend has been consistent across 2025 and into 2026.
One hardware pattern worth noting: approximately 70% of Linux gaming systems run AMD processors, compared to around 39% of the general Steam population. AMD's open-source driver commitment (the Mesa amdgpu driver stack) means AMD GPUs on Linux benefit from driver improvements that land in the kernel and Mesa without requiring proprietary blobs or out-of-tree modules. This is structurally different from the NVIDIA situation, described below.
What the Market Share Number Doesn't Tell You
The 5.33% Steam figure gets quoted everywhere, but several specific data points from the same surveys rarely make it into broader coverage and are worth knowing if you are making a decision about switching.
SteamOS's share of Linux is shrinking as desktop Linux grows. Two years ago the Steam Deck (running SteamOS Holo) represented 42%2024 of all Linux installs on Steam. By the March 2026 survey it had dropped to 24%Mar 2026. That does not mean fewer Decks are on Steam -- it means desktop Linux adoption has grown substantially faster than Deck sales. People are installing gaming-focused distros on conventional hardware in increasing numbers.
CachyOS and Bazzite have been among the fastest-growing distros in the Steam survey. In the November 2025 data, CachyOS grew by +0.73ppCachyOS within the Linux install base and Bazzite by +1.29ppBazzite in a single month. These are gaming-specific distros with essentially zero non-gaming use cases, which means those numbers represent people who made a deliberate choice to game on Linux rather than people who landed on it for other reasons.
Linux users skew toward higher RAM configurations than the general Steam population. The 32 GB configuration represented 33.52%Linux users compared to ~25%all Steam of the overall Steam population. The 16 GB configuration sits at roughly 46% among Linux users. This matters because Proton and Wine create additional memory pressure compared to native Windows execution -- Linux gamers appear to compensate for this by running more capable hardware.
Proton's 90% figure covers the library by count, not by weight. That 90%+ compatibility rate applies across Steam's full catalog of roughly 118,000 games. A significant portion of that catalog is small or inactive. The relevant question for most users is whether their specific titles work -- and the right tool for answering that is ProtonDB, not a platform-wide average. High-profile AAA titles released in 2024 and 2025 generally have positive ProtonDB ratings within days of launch, often before official Deck Verified status is assigned.
Rather than relying on the 90% figure, run this specific check before switching: go to protondb.com, look up the 10 to 15 games you actually play most, and check their ratings. If they are all Gold or Platinum with no anti-cheat blocks, the transition to Linux will be smooth for you personally. If any are Borked or Denied on AreWeAntiCheatYet, you know your specific friction points before you commit.
GPU Compatibility: AMD vs. NVIDIA
GPU choice has real consequences on Linux, and the gap between AMD and NVIDIA is not just historical anymore -- it is structural.
AMD
AMD's open-source driver stack is built into the Linux kernel and Mesa. For gaming-relevant GPUs -- GCN architecture onwards, with strong support from Polaris through the RX 9000 series -- you get driver updates through your distribution's normal update channel. There is no proprietary driver to install, no kernel module to sign, and no delay waiting for AMD to ship a binary blob. Gaming performance on a well-supported AMD GPU is frequently competitive with Windows, and in some benchmarks -- particularly 1% lows and frame pacing -- can exceed it.
The one caveat is very new hardware. The RX 9070 XT, released in late 2025, showed early driver inconsistencies on immutable distros like Bazzite where updating Mesa ahead of the distribution's release cycle is not straightforward. On mutable distros like CachyOS or Arch, you can pull the latest Mesa from the package manager and resolve these within hours of a driver drop. This is one concrete case where distro choice has real consequences.
NVIDIA
NVIDIA on Linux works -- but with caveats that require some clarity on what "the NVIDIA driver" actually means, because there are now three distinct things in that category. For a complete technical reference covering open modules, GSP firmware, and Blackwell support, see the NVIDIA Linux drivers guide. The short version for gaming:
- The legacy closed binary kernel module -- the traditional fully-proprietary kernel module, used on Kepler-era and earlier cards. Still required for older hardware.
- The open-source kernel module (nvidia-open) -- NVIDIA's newer kernel module, released under a dual MIT/GPLv2 license, required for Blackwell (RTX 50-series) and recommended for Turing (RTX 20-series) and newer. This is not Nouveau. It is NVIDIA's own code, open-licensed but not community-developed. It shares the proprietary user-space components. On Ada Lovelace (RTX 40-series) and Blackwell hardware, this is now the default and provides better compatibility with the Linux kernel's driver model.
- Nouveau -- the fully community-developed, fully open-source NVIDIA driver. Does not support reclocking on modern GPUs without firmware blobs, and delivers a fraction of full performance. Not recommended for gaming on any current hardware.
The gaming-relevant NVIDIA stack is always the proprietary user-space libraries paired with whichever kernel module is appropriate for your card generation. That said, NVIDIA users still encounter specific friction points:
- HDR and variable refresh rate support under Wayland has been incomplete, though it has improved through 2025
- VRAM management under Proton has historically been less efficient than on AMD, which can matter in VRAM-constrained scenarios on cards below 12GB
- Driver updates require attention: a bad update can break gaming functionality until the next release, and the fix is always to wait for the next driver rather than attempt a rollback on immutable distros
The practical advice: NVIDIA is viable for Linux gaming, but AMD removes a category of problems from your life. If you are building or buying a system specifically for Linux gaming, AMD is the lower-friction choice.
One signal worth tracking: in early 2026, NVIDIA posted engineering roles explicitly focused on optimizing Proton and Vulkan performance on Linux -- positions targeting CPU and GPU bottlenecks in the Proton execution path specifically. The listings were removed after a short window, suggesting the roles were filled. This is notable because it represents a direct investment in the Linux gaming stack by NVIDIA itself, rather than simply keeping the proprietary driver functional. Whether this produces measurable results for desktop Linux users by the end of 2026 is unconfirmed, but it is the clearest signal to date that NVIDIA regards Linux gaming performance as a first-class concern worth engineering resources rather than a community problem to defer.
Anti-Cheat: The Remaining Hard Wall
Anti-cheat is where most of the remaining friction in Linux gaming lives, and it is important to understand the structure of the problem accurately, because the technical situation and the commercial situation are quite different.
The two most widely deployed anti-cheat systems in PC gaming are Easy Anti-Cheat (EAC) from Epic Games and BattlEye. Both technically support Proton. The catch is that support is opt-in by the game's developer or publisher. BattlEye has supported Proton compatibility since 2021 -- enabling it is a developer-side configuration request, not a rewrite or a technical undertaking. EAC works the same way. Whether Linux users can play a given game comes down entirely to whether that game's publisher made the request. Many have. Many have not.
The clearest example of a deliberate block is Bungie. Destiny 2 has been blocked on all Linux platforms for years, including a stated Bungie policy that players who attempt to bypass the block through Proton will receive a permanent ban. Their extraction shooter Marathon, which launched March 5, 2026, uses BattlEye but Bungie again chose not to enable Proton compatibility. GamingOnLinux, which contacted Bungie's press team multiple times before the Marathon launch, received no response. Fortnite remains similarly blocked. These are not technical limitations -- they are deliberate publisher choices.
Always check areweanticheatyet.com before purchasing a multiplayer game you plan to run on Linux. The site tracks per-game anti-cheat status, including which EAC and BattlEye games have opted in to Proton support. A game showing "Supported" there should work; one showing "Denied" will not, regardless of your hardware or distro.
The broader pattern: single-player games and many cooperative multiplayer titles work without issue. The problematic category is competitive online games with kernel-level anti-cheat that have not opted in.
Status as of April 2026. Always verify at areweanticheatyet.com before purchase.
BattlEye and Easy Anti-Cheat both technically support Proton. The games blocked on Linux are blocked because individual publishers chose not to flip the switch. If the technical barrier is zero, what is the actual barrier -- and who benefits from maintaining it?
Choosing a Distro for Gaming
The distro question for Linux gaming has become more tractable than it used to be. The underlying technical requirements -- Vulkan, Mesa or NVIDIA's proprietary driver, Proton -- are the same across all distributions. Distro choice mostly affects how much setup you do, how stable things stay over time, and how easy it is to recover when something goes wrong. Benchmark testing across Bazzite, CachyOS, and Nobara shows that raw performance differences are typically 5--10 FPS and often indistinguishable in real gameplay. You are choosing a philosophy and a maintenance model, not a dramatically different performance tier. Users who want to run stock Fedora rather than a gaming-specific derivative should see the Fedora gaming optimization guide for manual setup steps.
These are the four options most worth considering in 2026:
Bazzite
Bazzite is the most beginner-friendly gaming distro, and the one most recommended for people coming from Windows. It is built on Fedora Atomic, which makes it an immutable distribution: the core operating system cannot be accidentally modified, atomic updates mean the whole system rolls forward or rolls back as a unit, and applications are installed as Flatpaks in their own sandboxes. This design makes it very hard to break your install. Bazzite and Nobara both joined the Open Gaming Collective in early 2026, a cross-distro effort to improve the open-source gaming ecosystem.
Out of the box, Bazzite ships Steam, Lutris, Heroic Games Launcher, ProtonUp-Qt, HDR and VRR support, and GPU drivers for both AMD and NVIDIA. It mirrors the SteamOS interface that Steam Deck users will recognize, and it supports the same Decky Loader plugin system. The tradeoff is that if you have very new hardware with early driver issues, pulling bleeding-edge Mesa or kernel updates requires rebasing to a different image -- you cannot simply run a package manager command the way you can on a mutable distro.
CachyOS
CachyOS is Arch-based and built for maximum performance. It compiles packages with CPU-specific optimizations using x86-64-v3 and v4 microarchitecture targets, with Link Time Optimization (LTO) and Profile-Guided Optimization (PGO). It ships a heavily patched kernel with the BORE CPU scheduler (Burst-Oriented Response Enhancer), which reduces latency under gaming load and is specifically designed to improve 1% lows. Because CachyOS shares Valve's chosen Arch foundation for SteamOS, gaming improvements from Valve tend to appear quickly in the Arch ecosystem, and CachyOS users see those patches fast.
CachyOS consistently benchmarks with better 1% lows and average framerates than immutable alternatives in titles that stress the scheduler, though real-world differences are often 5--10 FPS. Its March 2026 release added a Handheld Edition that forks from Valve's gamescope-session for Steam Deck and Legion Go support. The AUR (Arch User Repository) means you can install virtually any package without hunting third-party sources.
The caveat is that CachyOS is not a distro you hand to someone new to Linux. It is mutable by design, and that means you can break it. For experienced users who want every frame and full system control, nothing else is quite as close.
Nobara
Nobara is a Fedora-based distribution maintained by Thomas Crider, also known as GloriousEggroll -- the same person who maintains GE-Proton. It occupies a middle ground: more configurable than Bazzite, less of a performance-optimization project than CachyOS, and built specifically with gaming and streaming in mind. It ships GE-Proton and a collection of gaming-relevant kernel patches, includes codecs, OBS, and Wine pre-installed, and many users find it requires almost no terminal work after install. Like Bazzite, Nobara joined the Open Gaming Collective in early 2026. In direct testing, it frequently matches or slightly exceeds Bazzite in desktop responsiveness. For a thorough look at what Nobara ships and how it differs from stock Fedora, see the dedicated Nobara Linux guide.
Pop!_OS
System76's Pop!_OS is worth mentioning for users who want a Debian/Ubuntu-based foundation and a polished experience that extends beyond gaming. System76 built COSMIC, a fully custom desktop environment written in Rust, as a complete replacement for GNOME -- it has matured significantly through 2025 and is now the default on Pop!_OS. Steam, Proton, Lutris, and GPU drivers all behave predictably. Gaming performance is not as tuned as CachyOS, but if you want a single OS that handles gaming, development, and daily use with minimal friction and strong NVIDIA hybrid graphics handling, Pop!_OS earns consideration.
| Distro | Base | Mutability | Best For | GPU Out of Box |
|---|---|---|---|---|
| Bazzite | Fedora Atomic | Immutable | Beginners, Windows converts, handheld PCs | AMD + NVIDIA |
| CachyOS | Arch | Mutable | Experienced users, maximum performance | AMD + NVIDIA (meta package) |
| Nobara | Fedora | Mutable | Balanced -- gaming + general use | AMD + NVIDIA |
| Pop!_OS | Ubuntu | Mutable | Gaming + development on one machine | AMD + NVIDIA (separate ISOs) |
Display: HDR, VRR, Wayland, and Multi-Monitor
Display configuration is where many Windows-to-Linux switchers hit friction that no article warned them about. HDR and variable refresh rate both work -- but with caveats that depend on your GPU, your desktop environment, and whether you are running Wayland or X11.
X11 vs. Wayland: Which One for Gaming?
Linux desktop environments run on one of two display server protocols: the legacy X11 (also called X.org) and the modern replacement Wayland. Bazzite, CachyOS, Nobara, and Pop!_OS all default to Wayland in 2026. This matters for gaming because the two protocols handle features like HDR, variable refresh rate, and multi-monitor configuration quite differently.
Wayland is the correct choice for gaming in 2026 on AMD hardware. It supports HDR, VRR, proper multi-monitor handling, and eliminates the screen tearing that plagued X11 without a compositor. For NVIDIA, Wayland support has improved substantially -- driver version 525 added VRR under Wayland, and current drivers make Wayland viable for most gaming workloads. The remaining Wayland friction with NVIDIA is in HDR edge cases and some overlay tools. Games that will not run on Wayland natively are automatically handled by XWayland, a compatibility layer that lets X11 applications run inside a Wayland session. The large majority of games run this way without any visible difference.
X11 still exists as an option on most distros if you switch your session at login. The case for choosing it over Wayland in 2026 is narrow: some very old titles explicitly require it, and some overlay tools still have incomplete Wayland support. For nearly all gaming scenarios, staying on Wayland is the right call.
HDR on Linux: The Honest Picture
HDR on Linux works, but it is not the set-and-forget experience Windows offers. There are two distinct paths: in-game HDR through Proton/gamescope, and desktop-level HDR through your compositor.
Desktop HDR requires KDE Plasma 6 on Wayland. KDE Plasma 6 ships HDR as a stable compositor feature; you enable it in System Settings > Display and Monitor > HDR. GNOME's HDR support is earlier-stage. On AMD hardware with Mesa 25.1 or later, the required Vulkan extensions (VK_EXT_swapchain_colorspace and VK_EXT_hdr_metadata) are available automatically. NVIDIA requires nvidia-open driver version 595.58.03 or later for the same extensions; older NVIDIA drivers need the vk-hdr-layer-kwin6 package and the environment variable ENABLE_HDR_WSI=1 set per application. X11 has no HDR support at all and no plans to add it.
In-game HDR through Proton is handled primarily by gamescope (covered in detail below). The practical launch option approach: add DXVK_HDR=1 gamescope -f --hdr-enabled -- %command% to a game's Steam launch options. This runs the game inside a gamescope microcompositor session with HDR enabled. This works reliably on AMD with a KDE Plasma 6 Wayland session. NVIDIA users can achieve the same with GE-Proton using PROTON_ENABLE_WAYLAND=1 PROTON_ENABLE_HDR=1. Results vary by title: some games pass HDR metadata cleanly, others do not. HDR on Linux rewards patience and per-game testing; it is not a platform-wide guarantee the way it is on Windows.
Running both HDR and VRR simultaneously can produce framerate instability on some hardware, particularly AMD, because of long HDR compositing times. If you see stuttering with both enabled, try disabling one. On CachyOS with the linux-cachyos-deckify kernel, AMD hardware color management uses hardware planes and largely resolves this. NVIDIA users currently have no patch for VRR + HDR simultaneously in gamescope.
Variable Refresh Rate (FreeSync / G-Sync)
VRR works well on Linux in 2026 under Wayland. KDE Plasma automatically enables VRR for all fullscreen applications on supported monitors -- no configuration required beyond having a compatible display. GNOME requires enabling it as an experimental feature: run gsettings set org.gnome.mutter experimental-features "['variable-refresh-rate']", then log out and back in.
On X11, VRR requires a single-monitor setup. Connecting a second monitor breaks FreeSync/G-Sync on X11 entirely -- this is a protocol limitation that does not exist on Wayland. If you use multiple monitors and need VRR, Wayland is not optional. NVIDIA requires Volta architecture (RTX 20-series) or newer for VRR under Wayland, and driver 525 or later.
Multi-Monitor and Ultrawide Gaming
Multi-monitor setups work on Linux under both X11 and Wayland. Wayland gives you per-monitor scaling -- you can run a 4K display at 2x scaling alongside a 1080p display at 1x without the blurring that plagued X11 mixed-DPI setups. Ultrawide resolutions are handled normally through your display settings; games that support ultrawide on Windows generally support it through Proton. The practical issue is games that cap at 16:9 or have broken FOV at ultrawide ratios -- these are game-specific problems, not Linux-specific ones, and the same mods that fix them on Windows work through Proton.
The one multi-monitor caveat worth noting: gamescope (required for HDR gaming) does not natively support spanning multiple monitors in a single session. If HDR gaming is important to you, running it on a dedicated single monitor while other monitors run SDR content is the standard approach.
What is Gamescope?
Gamescope is a Wayland microcompositor developed by Valve. Rather than running a game directly on your desktop compositor, gamescope creates an isolated compositing session specifically for that game, handling resolution scaling, HDR output, VRR, and frame limiting independently of your desktop environment. It is the technology that powers the Steam Deck's Game Mode -- when the Deck switches to Big Picture, it is running gamescope. On desktop Linux, gamescope is what makes per-game HDR and VRR reliable rather than dependent on your full desktop compositor's level of feature maturity.
You do not need to invoke gamescope manually for most games. Bazzite and CachyOS Handheld Edition run their Game Mode entirely through gamescope. For desktop use, gamescope is most relevant when you want HDR in a specific game or need to force an integer scale on a title that does not support your native resolution cleanly. The launch option pattern gamescope -f -w [width] -h [height] --hdr-enabled -- %command% is the typical entry point.
Non-Steam Libraries: Lutris and Heroic
Proton is Steam-specific, but most gaming distros ship tools that extend the same compatibility approach to games from other storefronts.
Heroic Games Launcher handles Epic Games Store and GOG libraries. It wraps Wine/Proton under the hood, supports multiple Proton versions including GE-Proton, and has become the standard tool for non-Steam game management on Linux. GOG titles in particular often run well through Heroic since GOG does not use anti-cheat in most of its catalog.
Lutris is a broader game management platform that supports Steam, GOG, Epic, Battle.net, EA App, Ubisoft Connect, and a large library of install scripts. Install scripts are community-contributed recipes that configure Wine prefixes, download required dependencies, and handle launcher authentication automatically. Lutris is the right tool when you need games from EA or Ubisoft Connect to work, or when you are installing older titles that need specific Wine tweaks.
Battle.net (Blizzard) runs through Lutris with a maintained install script. World of Warcraft, Hearthstone, Overwatch 2, and Diablo IV are all playable through this route. WoW in particular has a long history of Linux support -- Blizzard's launcher runs under Wine and the game itself has native Vulkan rendering paths that perform well. Overwatch 2 uses Blizzard's own anti-cheat system (Warden/Defense Matrix), not BattlEye. It runs on Linux via the Battle.net launcher through Lutris, though it is not officially supported and intermittent issues occur, particularly after launcher updates. For a complete walk-through of every error, fix, and configuration option, see the Battle.net on Linux guide.
Xbox Game Pass (PC Game Pass) does not have a native Linux path. Microsoft has not built a Linux client for its Game Pass service, and the Windows app that delivers Game Pass titles does not run cleanly under Wine or Proton. Users who rely on Game Pass for a significant portion of their library should treat this as a meaningful gap when evaluating a Linux switch. Individual Game Pass titles that are also sold on Steam or GOG can often be purchased and played through those platforms instead.
EA App and Ubisoft Connect both work through Lutris with community-maintained install scripts, but they require more maintenance than Steam titles. These launchers are updated by EA and Ubisoft without regard for Linux compatibility, so a launcher update occasionally breaks the Wine configuration until the community updates the script. Check the relevant Lutris page before launching for the first time after a known launcher update.
The Steam Deck's Role -- and What Comes Next
It is difficult to overstate what the Steam Deck did for Linux gaming beyond its own form factor. Before the Deck, Proton was an engineering project used by enthusiasts. After the Deck shipped at scale, it became a platform that publishers and anti-cheat vendors could not ignore. The Deck Verified program turned Linux compatibility into a product signal visible at point of purchase -- a game's Verified badge means it has been tested on SteamOS and works correctly, giving developers a concrete reason to care about Proton support.
SteamOS (the OS running on the Steam Deck) is Arch-based. Valve has been expanding its availability beyond its own hardware. The Lenovo Legion Go S was the first officially licensed third-party handheld running SteamOS. The Lenovo Legion Go 2 with SteamOS was announced at CES 2026 and is scheduled to launch in June 2026 at $1,199, running the same AMD Ryzen Z2 Extreme chip as the Windows model but replacing Windows with SteamOS. The March 2026 SteamOS 3.8.0 Preview update added initial support for the forthcoming Steam Machine -- Valve's living-room gaming PC running SteamOS -- along with Lenovo Legion Go 2 controller support and improved handheld compatibility across multiple third-party devices.
For desktop and handheld users who do not want to wait for the official SteamOS PC release, Bazzite and CachyOS both offer Handheld Edition builds that mirror the SteamOS interface, using Valve's gamescope compositor and Steam Game Mode. These are functionally equivalent to the Deck experience on supported hardware.
"They use BattlEye, which can be enabled for Linux, but they choose not to."
-- GamingOnLinux, January 2026 · on Bungie / Marathon
A Note on Native Linux Games
With all the focus on Proton, it is worth addressing native Linux games directly. Steam hosts approximately 9,000 games with native Linux builds, and in theory native always means better. In practice, native Linux ports vary significantly in quality. Some -- particularly Valve's own titles like Dota 2 and Team Fortress 2, and many indie games built with engines like Unity or Godot that have solid Linux export targets -- run well. Others are aging ports from the early 2010s Linux push that have not been maintained in years and perform worse than running the Windows build through Proton.
Steam allows you to force Proton for a game even when a native Linux build exists. This is a legitimate strategy for specific titles where the Proton path is cleaner. ProtonDB reports will document these cases -- if a native game has consistent performance complaints and the Windows version has a Platinum rating on ProtonDB, force Proton in Properties > Compatibility and compare. The results are often better.
A native Linux port that was last updated in 2013 runs through a decade-old OpenGL path on a compositor that no longer ships. The same game's Windows build, run through Proton, uses DXVK's Vulkan translation with a shader cache. Which one is actually "native" in any meaningful sense in 2026?
VR Gaming on Linux
VR on Linux is functional but not seamless, and the hardware compatibility picture is narrower than on Windows. SteamVR has an official Linux client that supports the Valve Index natively. The open-source alternative is Monado, the OpenXR runtime that works with a broader range of headsets at the driver level and is the basis for Valve's own XR work. The Valve Index is the best-supported headset on Linux by a significant margin -- if VR is a primary use case, the Index is currently the only headset where you can expect reliable out-of-box operation.
Meta Quest headsets (Quest 2, Quest 3) can connect to a Linux PC for PCVR through the open-source ALVR project (Air Light VR), which streams the SteamVR session over Wi-Fi or USB to the Quest running the ALVR client. This works, but it requires more setup than Meta's official Air Link on Windows, and latency depends heavily on your Wi-Fi environment. HP Reverb G2 and WMR headsets have incomplete Linux driver support and are generally not recommended for Linux. PSVR2 has no Linux driver path as of early 2026.
VR game compatibility through SteamVR on Linux follows the same Proton logic as flat games: many titles work, some do not. The additional complexity is that VR titles sometimes use OpenVR API calls that behave differently through the Proton translation layer. If VR is central to your use case and you rely on headsets outside the Index, Linux is not the right platform yet.
Day-to-Day Practicalities: Saves, Controllers, Discord, and Mods
The technical compatibility story is well-covered by Proton metrics, but readers switching from Windows consistently ask a different set of questions that rarely get answered in one place. These are the ones that matter most once you are actually running games.
Game Saves and Steam Cloud
Steam Cloud sync works fully on Linux. Your save files synchronise the same way they do on Windows -- the Steam client handles this at the platform level, not the OS level. For games that store saves outside Steam Cloud (typically in %APPDATA% or a Documents subfolder on Windows), Proton maps these paths into a compatibility prefix. On most native Steam installations this is at ~/.local/share/Steam/steamapps/compatdata/[appid]/pfx/; on older installations you may find it via the symlink at ~/.steam/steam/steamapps/compatdata/[appid]/pfx/. The saves are there; they just live in a different place than you might expect. If you are migrating an existing save from Windows, you can copy the save files into the corresponding Proton prefix and the game will find them.
GOG games through Heroic handle saves similarly, with each game running in its own Wine prefix. Lutris gives you explicit control over prefix locations, which is useful when you need to share or back up saves manually.
Controller Support
Controller support on Linux is, for most devices, better than many users expect. The kernel has native HID support for Xbox controllers (all generations including Xbox Series), PS4 DualShock, and PS5 DualSense. These are detected and mapped without any driver installation. Switch Pro and Switch Joy-Con controllers work through the hid-nintendo kernel module, which has been in the mainline kernel since 5.16.
Steam Input adds a second layer on top of kernel HID: it translates any supported controller into a configurable virtual gamepad, handles gyroscope and touchpad mapping, and lets you apply community-created controller configs per game. Haptic feedback on DualSense works under Proton for titles that use the SDL haptics path. The main exception is very new or obscure controllers that lack kernel or SDL support -- for these, check SDL_GameControllerDB to see if your device is listed.
GameMode and Performance Tuning
One tool that other Linux gaming guides frequently skip over is GameMode, a daemon developed by Feral Interactive (the Linux porting studio behind titles like Total War and Alien: Isolation). When a game starts, GameMode temporarily switches the CPU governor from powersave or schedutil to performance, raises the game process's I/O priority, and applies kernel scheduler hints that reduce latency. The effect is measurable in CPU-bound scenarios -- typically 5--15% improvement in 1% lows on systems where the CPU governor was throttling. On most gaming-focused distros (Bazzite, CachyOS, Nobara), GameMode is pre-installed. To use it, add gamemoderun %command% to a game's Steam launch options. You can verify it activated with gamemoded -s in a terminal while the game runs. On systems where it is not pre-installed: sudo apt install gamemode on Ubuntu/Debian derivatives, or sudo pacman -S gamemode on Arch-based distros.
Laptops and Hybrid Graphics (NVIDIA Optimus / AMD Hybrid)
Laptops with discrete GPUs present a specific setup requirement that desktop guides routinely skip. On most gaming laptops, the display is wired to the integrated GPU (Intel or AMD iGPU), and the discrete GPU (NVIDIA or AMD dGPU) renders frames and passes them through the iGPU to reach the screen. This is the Optimus architecture on NVIDIA systems and a similar arrangement on AMD hybrid laptops.
On NVIDIA Optimus laptops, the key command is prime-run. Prefixing a Steam game's launch options with prime-run %command% forces that game to render on the discrete NVIDIA GPU. Without it, games often run on the integrated GPU and deliver a fraction of expected performance -- or crash immediately. To verify which GPU a game is actually using, run MANGOHUD=1 prime-run %command% and check the GPU listed in the MangoHud overlay; it should show your discrete card, not Intel Graphics or similar.
On AMD hybrid laptops, the equivalent is setting DRI_PRIME=1 %command% in launch options to select the discrete AMD GPU. Many AMD hybrid laptops in 2025 and 2026 use the newer SmartShift architecture where the driver handles switching automatically, but for titles that still default to the wrong GPU, DRI_PRIME=1 is the override.
NVIDIA Optimus users on Wayland sometimes encounter a further complication: if the NVIDIA driver is not configured as the render offload provider, the display will fall back to the iGPU entirely. The standard fix is to add __NV_PRIME_RENDER_OFFLOAD=1 __GLX_VENDOR_LIBRARY_NAME=nvidia to the launch environment, which forces NVIDIA render offload explicitly. The Bazzite documentation covers laptop NVIDIA setup in detail, and it is worth reading before installing if you have an Optimus system.
Discord, Overlays, and Voice Chat
Discord has a native Linux client and works reliably for text, voice, and video. The in-game overlay that Discord injects on Windows does not function under Proton -- it relies on Windows graphics hooks that the compatibility layer does not expose. For most users this is not a real loss: you can still voice chat, share your screen from the desktop, and use the Discord app normally. The Steam overlay works correctly under Proton, so in-game screenshots, achievements, and the browser all function as expected.
OBS Studio has a native Linux build with full Pipewire integration for screen capture, game capture, and browser sources. Streaming performance on Linux with AMD hardware is often comparable to or better than Windows, because the open-source VAAPI encoder path has lower overhead than some Windows alternatives. As of OBS Studio 30.2 (released July 2024), NVIDIA users get native NVENC hardware encoding support directly in OBS without any additional plugin -- the NVENC encoder appears automatically in OBS's output settings when the NVIDIA proprietary driver is installed.
For game capture specifically, OBS on Linux uses the Pipewire screen capture path rather than the Windows game capture hook. This means you capture a specific window or the entire screen rather than injecting directly into the game process. The practical consequence: there is no performance advantage to using game capture over display capture on Linux -- both go through the same Pipewire portal. The visual quality and CPU overhead are equivalent. For streaming to Twitch, YouTube, or any RTMP destination, the workflow is identical to Windows once OBS is configured.
Remote game streaming (playing on a thin client or another room device) is well-supported through Sunshine and Moonlight. Sunshine is an open-source game streaming host that runs on your Linux gaming machine and exposes your game session to Moonlight clients on any device (phone, TV stick, another computer). This is the most reliable path for local network game streaming on Linux, and it supports HDR passthrough on hardware that supports it. The proprietary NVIDIA GameStream was sunset by NVIDIA in early 2023, so Sunshine is now the standard solution for everyone regardless of GPU brand.
Modding
Modding on Linux works, but the tooling landscape is uneven. Nexus Mods itself is a website -- you download files through the browser and place them manually, and that works fine. The mod managers are where it gets specific:
- Mod Organizer 2 (MO2) runs through Proton. The community-maintained Modding-on-Linux guide on the Nexus forums documents the specific Proton version and configuration required for MO2 to function correctly with each game. Bethesda titles (Skyrim, Fallout 4, Starfield) are well-documented.
- Vortex also runs through Proton with some additional setup. It is generally considered less stable than MO2 under Proton and the community recommends MO2 for Linux users.
- Baldur's Gate 3 has a native Linux build and BG3 Mod Manager has a native Linux version, making it one of the better-supported modding scenarios on the platform.
- Script Extenders (SKSE, F4SE) require specific Proton configuration but work. The community documentation for each extender covers the Linux setup.
The Modding-on-Linux guide maintained on the Nexus Mods community wiki is the most comprehensive reference for getting mod managers and script extenders running under Proton. Search "Modding on Linux" on the Nexus Mods wiki for the current guide, as setup details change with each Proton major release.
Dual-Boot: When and Whether to Keep Windows
Dual-booting Linux alongside Windows is a practical option for users who have one or two specific games that are blocked on Linux and do not want to sacrifice them. If your library is 95% Linux-compatible but Destiny 2 is your main game, keeping a Windows partition for that one title is a reasonable approach. The practical question is whether Secure Boot and BitLocker on your existing Windows installation will cause complications -- they frequently do if Windows is already installed and you add Linux later. Disabling BitLocker before partitioning is the standard advice to avoid data loss.
The less-documented problem with dual-boot is bootloader management after the initial setup. Windows updates regularly overwrite the EFI System Partition boot entry, replacing the GRUB or systemd-boot entry with the Windows Boot Manager entry and effectively hiding Linux at the boot menu. This is not malice on Microsoft's part; it is Windows assuming it owns the EFI partition. Three approaches handle it:
- Fix the boot order with efibootmgr -- After a Windows update breaks the boot order, boot from a Linux live USB, then run
efibootmgrto list all boot entries and identify your Linux bootloader's entry number. Runefibootmgr --bootorder XXXX,YYYYwith your Linux entry first to restore the correct order. This is reactive -- you need to do it after each Windows update that overwrites the order. - Use Windows Boot Manager to chainload Linux -- Instead of having GRUB manage both systems, configure Windows Boot Manager to include Linux as a boot option. This keeps Windows in control of the EFI boot entry (which it will stop overwriting since it already owns it) and adds Linux as a chainloaded option. The tool to add the Linux entry is
bcdeditin an elevated Windows terminal. - Install systemd-boot as the Linux bootloader -- systemd-boot writes a less aggressive EFI entry than GRUB and coexists more gracefully with Windows on some hardware combinations. Pop!_OS uses this by default. The tradeoff is that systemd-boot requires a correctly structured EFI partition and is less automatic to configure than GRUB on most distributions.
For users who are confident their library works on Linux, a clean single-boot Linux install removes the cognitive overhead of managing two systems entirely. The choice depends on whether any of your blocked titles are genuinely irreplaceable. The practical test described earlier -- looking up your 10--15 most-played games on ProtonDB -- is the right tool for making this decision before you commit.
Why Publishers Block Linux: The Argument and the Rebuttal
The article has explained that publishers like Bungie choose not to enable BattlEye's Proton support for reasons that are not technical. It is worth understanding the argument they make, because it is coherent even if it is ultimately unconvincing.
The publisher position is roughly this: Linux is open-source, the kernel can be modified by the user, and a modified kernel could in theory be used to bypass anti-cheat kernel modules in ways that are harder on a locked-down commercial OS. The anti-cheat vendor's opt-in for Proton does not solve the broader kernel modification problem; it just makes the game run. Publishers who are deeply invested in competitive integrity -- extraction shooters like Marathon where losing your gear is permanent, or ranked modes in Destiny 2 -- treat the marginal increase in cheat risk as unacceptable.
The rebuttal has several parts. First, cheating on Windows is already a large-scale industry -- cheat software for Fortnite, Destiny 2, and Valorant exists and is commercially distributed regardless of platform. The marginal increase in cheat risk from supporting Linux is not empirically large. Second, games like Warframe, DayZ, Counter-Strike 2, and Arma Reforger support BattlEye or EAC on Linux and do not show elevated cheat rates from Linux players. Third, the number of people willing to modify a kernel to cheat at a video game is substantially smaller than the number of legitimate Linux users locked out by a blanket refusal. The policy punishes far more honest players than it stops cheaters.
What this means practically: the publisher argument is a policy choice dressed in a technical framing. The technical framing is not entirely wrong, but the weight given to it -- locking out an entire platform -- reflects competitive paranoia more than evidence-based risk management. Publishers who have taken the time to think about this carefully, like the Warframe developers at Digital Extremes, arrived at the opposite conclusion.
Counter-Strike 2 runs on Linux with VAC active, has one of the highest competitive integrity standards of any online game, and shows no documented elevation in cheat rates from Linux players. What does that suggest about the argument that supporting Linux is incompatible with anti-cheat effectiveness?
How to Get Started Gaming on Linux
Choose a gaming-ready distro
Install Bazzite if you are new to Linux or want a stable, pre-configured experience. Install CachyOS if you are an experienced user who wants maximum performance and full system control. Either gives you everything needed to start gaming without manual driver or Proton setup.
Enable Proton in Steam
In the Steam client on Linux, go to Steam > Settings > Compatibility and enable Steam Play for all titles. As of mid-2025, the Steam Beta client removed the legacy toggle and enables Proton for all titles by default -- the stable client may still show the option, but enabling it is a one-time step. This makes your entire Steam library available to install, routing Windows-only games through Proton automatically.
Check game compatibility before you buy
Before purchasing a title, look it up on ProtonDB (protondb.com) and AreWeAntiCheatYet (areweanticheatyet.com). ProtonDB shows crowdsourced ratings from (works flawlessly) through and down to (does not run), with user-submitted notes on specific Proton versions and launch options. AreWeAntiCheatYet tells you whether a specific game's anti-cheat system has been enabled for Linux. A game rated will not run regardless of what you do.
Install Proton GE for edge cases
For games that do not run cleanly with the stock Proton build, install ProtonUp-Qt (available in most gaming distros) and download the latest GE-Proton build. GE-Proton carries FFmpeg codec patches, Media Foundation fixes, and per-game hotfixes ahead of the official release cycle. Before installing the latest build blindly, check the GE-Proton GitHub release notes for your specific game -- the fix you need may be in an older release, and newer builds occasionally regress a previously working title. Set it per-game in Steam under Properties > Compatibility.
When a Game Does Not Work: A Diagnostic Approach
Proton compatibility being close to 90% means the other 10% of cases will be encountered by real users. The instinct when something breaks is to either give up or try GE-Proton -- but both moves can be premature. There is a structured order of operations that resolves the large majority of failures, and it starts with understanding where the failure actually is.
Enable a Proton log first
The single most useful diagnostic step is adding PROTON_LOG=1 %command% to a game's Steam launch options (right-click game > Properties > Launch Options). This writes a detailed log to your home directory named steam-[appid].log. Open it in a text editor and search for the word err. Common error patterns and what they mean:
- fixme: messages are informational and can be ignored -- they indicate Wine encountered an unimplemented Windows API call but continued anyway.
- err:module: attach_process_dlls or similar module-load errors usually indicate a missing Windows runtime. The game expects a specific version of the Visual C++ Redistributable or DirectX runtime that has not been installed into the Wine prefix. The solution is to run
protontricks [appid] vcrun2022(or the relevant runtime version) to install it manually. - wine: cannot find followed by an executable path means the game's installation is incomplete or the prefix is corrupted. Delete the prefix at
~/.local/share/Steam/steamapps/compatdata/[appid]/and let Steam recreate it on next launch. - DXVK errors in the log indicating a Vulkan issue usually mean either an outdated Mesa driver (on AMD) or a driver-level Vulkan problem (on NVIDIA after a bad update). Check your driver version before trying anything else.
The Wine prefix and why it matters
Each Steam game on Linux runs inside its own isolated Wine prefix -- a self-contained directory structure that mimics a Windows installation, with its own fake C: drive, registry hive, and installed Windows components. This is what allows two games with conflicting Windows runtime requirements to coexist on the same system. The prefix for any game lives at ~/.local/share/Steam/steamapps/compatdata/[appid]/pfx/, where [appid] is the numeric Steam App ID visible in the game's store URL.
Understanding the prefix explains several common fixes. If a game progressively breaks across sessions without any clear cause, the prefix has likely accumulated corruption. Deleting the entire compatdata/[appid]/ directory and relaunching the game gives Steam a clean slate to recreate it. You will lose any saves that live inside the prefix rather than in Steam Cloud, so check the saves section below before deleting. A corrupted prefix is also the correct explanation when a game worked previously and broke after a Wine or Proton update without anything else changing.
If you are running Steam as a Flatpak (the default on Bazzite), the compatdata path is different: ~/.var/app/com.valvesoftware.Steam/.local/share/Steam/steamapps/compatdata/. Flatpak Steam runs in a sandbox with its own home directory. Instructions written for native Steam that reference ~/.local/share/Steam/ will not match where your files actually are.
Launch options that solve common problems
Steam launch options (set per-game under Properties > Launch Options) are the fastest way to resolve a range of specific failure patterns without switching Proton versions or modifying the prefix. The ones that solve the highest proportion of real problems:
PROTON_USE_WINED3D=1 %command%-- Forces DXVK to be bypassed for Direct3D rendering, using Wine's software D3D implementation instead. Useful for older DX9 games where DXVK causes visual corruption or crashes, at the cost of lower performance. Try this if a DX9 game renders incorrectly but runs.DXVK_ASYNC=1 %command%-- Deprecated. This variable was removed from GE-Proton in early 2023 and the upstream dxvk-async project was archived in November 2025. It has no effect in modern Proton, which uses DXVK 2.x with Graphics Pipeline Library (GPL) for pre-compilation instead. If you are seeing first-run stutter on a title not covered by Steam's shader pre-cache, switching to GE-Proton is the current approach rather than this variable.MANGOHUD=1 %command%-- Enables MangoHud, an in-game performance overlay that shows framerate, frametime, GPU and CPU load, VRAM usage, and temperatures. Not a fix in itself, but essential for diagnosing whether a performance problem is GPU-bound, CPU-bound, or VRAM-constrained.WINEDLLOVERRIDES="d3d9=n,b" %command%-- Overrides DLL loading for specific Windows libraries. The example forces Wine to use its own D3D9 implementation instead of DXVK's. Generalized form:"dll_name=n,b"means native first, then builtin. Used when a specific game is incompatible with DXVK's version of a given DLL.PROTON_FORCE_LARGE_ADDRESS_AWARE=1 %command%-- Forces 32-bit games to access more than 2GB of memory by setting the large address aware flag. Helps older 32-bit games that crash on modern hardware due to memory exhaustion.
Shader compilation stutter: what it is and how to reduce it
DXVK must compile every shader a game uses before it can render with it. On first run, when no cached shaders exist, this compilation happens synchronously as the game tries to render -- producing the characteristic stutter where the game freezes for a fraction of a second whenever new geometry or effects appear. This is not a Proton bug; it is a structural consequence of how Vulkan shaders work compared to D3D9/10/11 on Windows, where shader compilation happens at the driver level invisibly.
Three mechanisms reduce this. First, Steam's shader pre-caching downloads pre-compiled shader bundles from Valve's servers for Deck-verified games before you launch them -- this handles the large majority of cases for supported titles automatically. Second, DXVK 2.x (used by all current Proton builds) introduced Graphics Pipeline Library (GPL) support, which compiles shaders when games load their D3D shaders rather than at draw time, largely replacing the need for asynchronous compilation hacks. The old DXVK_ASYNC=1 variable was removed from GE-Proton in January 2023 as GPL superseded it, and the original dxvk-async repository was archived in November 2025. Third, the stutter diminishes on its own after the first play session as the local shader cache populates. If a game stutters badly on first launch and smoothly on second, the cause was shader compilation and no further action is needed.
Flatpak Steam vs. native package Steam
Bazzite ships Flatpak Steam by default. CachyOS and Nobara install Steam from the native package repository. These behave differently in ways that matter for troubleshooting and modding.
Flatpak Steam runs in a sandbox that restricts its filesystem access to specific allowed paths. This means it cannot write to arbitrary locations outside its sandbox, which breaks mod managers and tools that expect to write to directories outside the Steam installation. Mod Organizer 2 running inside a Flatpak Steam prefix may fail to deploy mods to the correct location because the sandbox blocks the write path. The fix is either to use a native Steam installation for modded games, or to grant the Flatpak additional filesystem permissions using flatpak override --user --filesystem=home com.valvesoftware.Steam -- which effectively removes the sandbox restriction for that purpose.
Flatpak Steam also uses its own bundled runtime libraries rather than your system's Mesa or other graphics libraries. For most users this is transparent. For users on very new AMD hardware where the system Mesa is newer than what the Flatpak runtime includes, this can mean the Flatpak is using an older driver than your system has available. In those cases, switching to native Steam is the direct solution.
Where to Get Help When Nothing Works
The Linux gaming community produces better per-game troubleshooting documentation than any official channel. When the diagnostic steps above do not resolve your issue, these are the resources most likely to contain the specific fix:
- ProtonDB reports for your game -- Sort by "Recent" and read the reports from users on a similar Proton version. Someone has likely hit the same error; their notes often contain the exact launch option or prefix tweak needed.
- r/linux_gaming -- The largest general Linux gaming community. Searching the subreddit for your game title plus "Proton" or your specific error message frequently surfaces threads with working solutions.
- GamingOnLinux forums and comments -- GamingOnLinux publishes articles on new game releases with Linux-specific testing notes, and the comment sections often contain reader-submitted fixes and workarounds faster than any wiki.
- Bazzite Discord -- If you are running Bazzite, the official Discord server has a dedicated troubleshooting channel staffed by active contributors. Hardware-specific issues (particularly new AMD GPUs and handheld devices) get resolved here before the information propagates anywhere else.
- GE-Proton GitHub release notes -- For any game that is broken on stock Proton, search the GE-Proton releases page for the game's name. If GloriousEggroll has addressed it, the relevant build and what it fixed will be listed explicitly.
- AreWeAntiCheatYet.com issue tracker -- If a game's anti-cheat status on the site seems out of date or incorrect, the issue tracker contains user-reported status updates and often links to developer statements or community workarounds.
Frequently Asked Questions
Can you actually game on Linux in 2026?
Yes. Close to 90% of Windows games run on Linux through Proton, Valve's compatibility layer. Single-player and indie titles largely just work. The Steam Hardware Survey for March 2026 recorded Linux at 5.33% of users -- an all-time record. The remaining hard cases are multiplayer games using kernel-level anti-cheat that publishers have not opted in to Proton support.
Which Linux distro is best for gaming?
Bazzite is the best choice for beginners: it is immutable, ships with Steam, Lutris, Proton, and GPU drivers pre-configured, and mirrors the SteamOS experience. CachyOS suits experienced users who want maximum performance and full system control. Nobara is a solid middle ground built by the GE-Proton developer. Real-world benchmark differences between the three are typically 5--10 FPS.
Why do some multiplayer games still not work on Linux?
The cause is kernel-level anti-cheat. BattlEye and Easy Anti-Cheat both support Proton, but developers must opt in. BattlEye has offered Proton compatibility since 2021 -- enabling it is a simple developer request. Games like Warframe, DayZ, and Arma Reforger use BattlEye and work on Linux. Destiny 2, Fortnite, and Marathon are blocked by publisher choice, not technical limitation.
How does Proton allow Windows games to run on Linux?
Proton is a compatibility layer built on Wine by Valve and CodeWeavers. It uses DXVK to translate Direct3D 8, 9, 10, and 11 calls into Vulkan, and VKD3D-Proton to translate Direct3D 12 into Vulkan. Windows games run without a native Linux port. Proton also adds esync and fsync for reduced CPU threading overhead. The current stable release is Proton 10, based on Wine 10.
What is the Linux gaming market share on Steam?
The March 2026 Steam Hardware and Software Survey recorded Linux at 5.33% of surveyed users -- the highest share ever recorded on the platform. The figure has grown steadily since late 2024, driven by Steam Deck sales and SteamOS expanding to third-party devices like the Lenovo Legion Go S. Monthly figures fluctuate due to regional survey sampling variations.
Will I lose FPS switching from Windows to Linux?
For most games on AMD hardware, the performance difference is within 2--5% of Windows, and 1% lows are sometimes better. The main scenarios where Linux underperforms are DXVK shader compilation stutter on a game's first run (which clears after the shader cache builds), and specific titles where Windows receives ongoing performance optimisations that Proton has not caught up to. For NVIDIA, the gap is similar but driver update timing can temporarily widen it. Single-player titles frequently show no meaningful difference in real-world play. Adding gamemoderun %command% to your Steam launch options activates GameMode, which applies CPU governor and scheduler optimisations for the duration of the session and commonly improves 1% lows by 5--15% on systems where the governor was throttling.
Do game mods work on Linux?
Yes, with some setup. Nexus Mods works through the browser with no issues. Mod Organizer 2 runs through Proton and is well-documented for Bethesda titles. Vortex also runs under Proton but is considered less stable than MO2 for Linux users. Baldur's Gate 3 has a native Linux build and a native mod manager. Script Extenders like SKSE work under Proton with specific configuration -- the Nexus Mods community wiki covers the current setup for each game.
Should I dual-boot or go all in on Linux for gaming?
Look up your 10--15 most-played games on ProtonDB and AreWeAntiCheatYet first. If your library is broadly compatible and no blocked game is irreplaceable, a clean Linux install avoids the management overhead of two systems. If you have one or two hard-blocked titles you genuinely cannot give up, keeping a Windows partition for those specific games is a reasonable solution. Disable BitLocker on your Windows drive before partitioning to avoid data loss. Be aware that Windows updates regularly overwrite the EFI boot order -- use efibootmgr after updates to restore your Linux bootloader entry, or configure Windows Boot Manager to chainload Linux so it stops overwriting it.
What should I do when a game does not run?
Start with the Proton log: add PROTON_LOG=1 %command% to the game's Steam launch options and check the resulting log file in your home directory for err: lines. Common fixes, in order: try GE-Proton through ProtonUp-Qt (especially if reports mention cutscene crashes or missing video -- GE carries FFmpeg codecs that stock Proton does not); delete and regenerate the Wine prefix at ~/.local/share/Steam/steamapps/compatdata/[appid]/ if the game worked previously and broke after an update; run protontricks [appid] vcrun2022 if the log shows missing runtime errors; try PROTON_USE_WINED3D=1 %command% for older DX9 titles with rendering corruption.
What is a Wine prefix and why does deleting it fix things?
Each Steam game on Linux runs inside its own isolated Wine prefix -- a directory that simulates a Windows installation with a fake C: drive, registry, and installed Windows components. Proton creates one per game at ~/.local/share/Steam/steamapps/compatdata/[appid]/pfx/. Deleting the entire compatdata/[appid]/ directory and relaunching forces Proton to build a fresh prefix, which resolves corruption that accumulates across Proton version changes or interrupted updates. Back up any saves that live inside the prefix before deleting.
Does it matter whether I use Flatpak Steam or native Steam?
For most users, no. For modding and new AMD hardware, yes. Flatpak Steam runs sandboxed and cannot write to arbitrary filesystem paths, which breaks mod managers like Mod Organizer 2 unless you grant broader filesystem access with flatpak override --user --filesystem=home com.valvesoftware.Steam. Flatpak Steam also bundles its own Mesa runtime, which may be behind your system Mesa on very new AMD hardware. Native Steam (as installed on CachyOS and Nobara) uses system libraries directly and has no sandbox restrictions. If modding matters or you have a very new AMD GPU, native Steam is the lower-friction choice.
Does HDR work on Linux?
Yes, with caveats. Desktop-level HDR requires KDE Plasma 6 on Wayland. AMD users need Mesa 25.1 or later; NVIDIA users need nvidia-open driver 595.58.03 or later. In-game HDR through Proton works via gamescope: add DXVK_HDR=1 gamescope -f --hdr-enabled -- %command% to a game's Steam launch options. Results vary by title. Running HDR and VRR simultaneously can produce framerate instability on some hardware. X11 has no HDR support at all.
Does VRR / FreeSync / G-Sync work on Linux?
Yes, under Wayland. KDE Plasma automatically enables VRR for fullscreen applications on supported monitors with no configuration needed. GNOME requires enabling it as an experimental feature via a gsettings command. On X11, VRR only works with a single monitor -- a second monitor connected breaks FreeSync/G-Sync entirely. For multi-monitor VRR, Wayland is required. NVIDIA needs Volta (RTX 20-series) or newer and driver 525 or later.
Does Linux work on gaming laptops with NVIDIA Optimus?
Yes, but it requires a specific launch option. Add prime-run %command% to a game's Steam launch options to ensure it renders on the discrete NVIDIA GPU rather than the integrated graphics. Without this, many games run on the iGPU and deliver a fraction of expected performance. Verify with MangoHud: run MANGOHUD=1 prime-run %command% and confirm the overlay shows your discrete card. AMD hybrid laptops use DRI_PRIME=1 %command% for the same purpose.
Can I stream or record gameplay on Linux?
Yes. OBS Studio has a native Linux build with full Pipewire integration and hardware encoding support for both AMD (VAAPI) and NVIDIA (NVENC). Streaming to Twitch or YouTube works identically to Windows. For remote play streaming to another device on your network, Sunshine (open-source host) paired with Moonlight (client) is the standard approach -- it replaced NVIDIA GameStream for everyone after NVIDIA sunset that service in 2023.
Does VR work on Linux?
Partially. The Valve Index is the best-supported headset by a significant margin, with SteamVR's official Linux client. Meta Quest headsets can connect via ALVR (Air Light VR), an open-source streaming client, over Wi-Fi or USB. HP Reverb/WMR headsets have incomplete Linux driver support. PSVR2 has no Linux path. If the Index is your headset, VR on Linux is viable. For other headsets, compatibility varies considerably.
What are the best community resources when I get stuck?
ProtonDB reports for your specific game are the first stop -- sort by Recent and look for users on a similar Proton version. After that: r/linux_gaming for broad troubleshooting, GamingOnLinux for game-specific release notes and reader fixes, the Bazzite Discord for hardware-specific issues (especially new AMD hardware), and the GE-Proton GitHub release notes for per-game fix history. AreWeAntiCheatYet's issue tracker contains up-to-date status information beyond what the main table shows.