Proton is Valve’s open-source compatibility layer, built on top of Wine, that lets you run thousands of Windows-only games on Linux through Steam Play with no manual configuration. Released in 2018 alongside the Steam Deck’s early development, it solved the long-standing chicken-and-egg problem that had held Linux gaming back for decades. Before Proton, getting a Windows game running on Linux meant wrestling with Wine prefixes, hunting for patches, and accepting that half your library simply would not boot.
Today, Valve reports that the vast majority of the top Steam games are playable on Linux through Proton, and the Steam Deck ships with it enabled by default. This guide explains exactly how Proton works, how to turn it on, and importantly, which games still will not run despite years of rapid progress.
Table of Contents
What Is Proton? (and Why It Changed Linux Gaming)
Proton is a fork of Wine that Valve develops in partnership with CodeWeavers, bundled with additional tools that handle graphics, controllers, and Steam integration. The key difference between Proton and standalone Wine is that Proton is designed to be invisible: you install a Windows game in Steam on Linux, you click Play, and it just runs.
Valve integrated Proton into Steam through a feature called Steam Play. When Steam Play is enabled for all titles, every Windows game in your library becomes installable on Linux. Steam downloads the Windows build, downloads the right Proton version, and handles the translation in the background. There is no command-line setup, no winecfg, and no separate launcher to manage.
For a community that had spent years manually configuring Wine prefixes and crossing fingers after every game patch, this was a turning point. Proton made Linux gaming approachable for people who had never opened a terminal, which is the real reason it matters.
How Proton Works?: The Translation Layers Explained
How Proton lets you play Windows games on Linux comes down to two translation problems that Proton solves at the same time: Windows system calls and Windows graphics calls. Both need to be translated into something Linux understands, and they are handled by different components inside the Proton package.
Wine: The Foundation That Translates System Calls
Wine (originally an acronym for Wine Is Not an Emulator) is the compatibility layer that translates Windows API calls into POSIX calls that Linux can execute. When a Windows game asks the operating system to open a file, allocate memory, or create a thread, Wine intercepts that request and rewrites it as the equivalent Linux system call.
This is not emulation in the traditional sense. There is no virtual machine running a copy of Windows, which is why Proton can run games at near-native speeds. Wine reimplements the Windows API directly on top of Linux, so the game runs as a regular Linux process talking to Wine’s translation layer rather than to a real Windows kernel.
Proton ships a heavily patched version of Wine. Valve and CodeWeavers contribute fixes upstream, but Proton’s Wine includes experimental patches that have not yet been accepted into mainline Wine, which often fixes game-specific issues weeks or months earlier.
DXVK and VKD3D-Proton: Translating Direct3D to Vulkan
The second translation problem is graphics. Most Windows games use Microsoft’s Direct3D (D3D) APIs to talk to the GPU, but Linux does not natively support Direct3D. Proton solves this with two separate projects.
DXVK translates Direct3D 9, 10, and 11 calls into Vulkan, the cross-platform graphics API. This is what lets older and most current Windows games render correctly on Linux using AMD, Intel, or NVIDIA drivers. DXVK is one of the main reasons Proton performs so well, because Vulkan is a modern, low-overhead API that can sometimes match or even exceed native Direct3D performance on the same hardware.
VKD3D-Proton handles Direct3D 12 translation, also targeting Vulkan. This is what makes newer DirectX 12 titles playable. Both projects are maintained by Valve and contributors from the wider Wine community, and they ship bundled inside every Proton release.
When a game launches under Proton, these layers work together: Wine translates the system calls, DXVK or VKD3D-Proton translates the graphics calls, and the game never knows it is not running on Windows.
Steam Play: The Integration Layer
Steam Play is the feature inside the Steam client that ties Proton, Wine, and the translation layers together into a one-click experience. When you enable Steam Play for all titles, Steam automatically picks a Proton version, downloads it, and configures the prefix for each game on first launch.
Steam also handles shader pre-compilation, which is one of the most important quality-of-life features. Translating Direct3D shaders into Vulkan shaders on the fly causes stuttering the first time a game renders a new effect. Steam downloads pre-built shader caches from other players, which dramatically reduces that stutter on the Steam Deck and desktop Linux alike.
How to Enable Proton in Steam? (Step by Step)
Turning on Proton in Steam takes about thirty seconds and works identically on Ubuntu, Fedora, Arch, Linux Mint, and most other distributions.
- Install Steam from your distribution’s package manager or download it directly from store.steampowered.com. If you are on a distribution with strict SELinux policies like Rocky Linux, consider the Flatpak version of Steam, which avoids most SELinux conflicts.
- Open Steam and sign in to your account. You do not need a special Linux version of Steam; the same client you use on Windows runs on Linux.
- Go to Settings (or Preferences) in the Steam menu, then click the Compatibility tab on the left sidebar.
- Toggle “Enable Steam Play for all other titles”. Steam will warn you that this lets you install games that have not been officially verified for Linux. Accept the warning.
- Choose a Proton version. The default (usually Proton Experimental or the latest stable Proton) works for most games. You can override this per-game later.
- Restart Steam when prompted. After the restart, every Windows game in your library will show an Install button.
To force a specific Proton version on a single game, right-click the game in your library, choose Properties, then Compatibility, and select the Proton version you want from the dropdown. This is useful when a game works better on an older Proton release than the latest one.
Checking Compatibility With ProtonDB
ProtonDB is a community-run database where Linux gamers report their experiences running specific games through Proton. It is the single most useful tool for predicting whether a game will work before you buy or install it.
Each game on ProtonDB has a community rating drawn from user reports. The ratings, from best to worst, are:
- Platinum: runs flawlessly out of the box with no tweaks.
- Gold: runs well after minor tweaks such as a launch parameter or a specific Proton version.
- Silver: runs with notable issues, graphical glitches, or requires significant tweaking.
- Bronze: barely runs, with major bugs or crashes during normal play.
- Borked: does not run at all, usually due to anti-cheat or kernel-level DRM.
Always read the most recent reports, not just the overall rating. A game rated Platinum a year ago may have dropped to Silver after a recent update broke compatibility, and ProtonDB reports usually surface that within days.
What Won’t Run: Games and Categories That Still Fail?
This is the part of the topic most guides gloss over, and it is the part you actually need to know before switching to Linux. Proton is impressive, but it is not magic. Several categories of Windows games still will not run, and knowing them up front saves frustration.
Games with kernel-level anti-cheat are the biggest category of outright failures. Anti-cheat systems like Easy Anti-Cheat, BattlEye, and nProtect GAMEGUARD load drivers into the Windows kernel, which is something Wine and Proton cannot replicate on Linux. Some publishers (notably Epic with Fortnite, Bungie with Destiny 2, and Riot with Valorant) explicitly block Wine and Proton, even when the underlying anti-cheat technically supports Linux. If a game you play competitively uses one of these, check ProtonDB before assuming it will work.
Games that depend on kernel-level DRM often fail for the same reason. Some older titles using aggressive DRM wrappers cannot validate their licenses through Wine, which means they crash on launch or refuse to boot at all.
Games that rely on unsupported launcher middleware can be hit or miss. Titles that bundle their own ancient DirectX runtimes, custom launcher executables, or region-locked update systems sometimes fail because the launcher breaks even though the game itself would run fine.
Recently updated games are a moving target. A major patch can introduce a new dependency that Proton does not yet handle, breaking a game that worked perfectly the day before. This usually gets fixed within weeks as Proton catches up, but it is a real risk if you want to play a game the day a patch drops.
Specific examples that are commonly reported as broken include Valorant, Destiny 2, Fortnite, Rainbow Six Siege, Genshin Impact, and most games using GameGuard or Vanguard. If any of those are dealbreakers for you, dual-booting Windows for those specific titles is still the realistic answer in 2026.
Performance and Troubleshooting: What to Expect?
Performance under Proton varies by game, but the general rule is that well-optimized titles run within 5 to 15 percent of their native Windows framerates. Some games actually run faster on Linux through Proton because Vulkan’s lower overhead and DXVK’s more efficient shader pipeline can outperform Direct3D on the same hardware. A few older Direct3D 9 games see dramatic improvements.
The main performance cost is shader compilation stutter, which hits hardest during the first hour of play in a new game. Steam’s shader pre-caching reduces this significantly, and the Steam Deck benefits most because its fixed hardware lets Valve pre-build caches for the entire verified catalog.
Common launch parameters that fix specific issues include PROTON_USE_WINED3D=1 (forces the slower OpenGL-based translator instead of DXVK, useful for very old games), DXVK_HUD=fps (shows an overlay with framerate and translation stats), and PROTON_LOG=1 (writes a debug log to your home directory for troubleshooting).
If a game refuses to launch, the first step is always trying a different Proton version. Proton Experimental often has fixes that have not yet shipped in the numbered stable releases. Ge-Proton, a community fork, includes additional patches and is a popular fallback for stubborn titles.
On distributions with SELinux in enforcing mode (notably Fedora and Rocky Linux), some users report Proton failing to write files or launch games. Switching SELinux to permissive mode or using the Flatpak build of Steam resolves this in most cases.
Proton vs Lutris vs Native Ports
Proton is not the only way to play Windows games on Linux, even though it is the most convenient. Lutris is a community launcher that supports non-Steam games, GOG installers, Epic Games Store titles, and emulators through a unified interface. If a game is not on Steam, Lutris is usually the next thing to try.
Raw Wine is still an option for technically inclined users, but for Steam games there is rarely a reason to use it over Proton. Proton is a Wine fork with extra patches and integrated translation layers, so anything Wine can do, Proton usually does better for gaming.
Native Linux ports remain the gold standard where they exist. A game with a true Linux build will usually outperform the Proton version of the same title, because there is no translation overhead at all. The catch is that native ports have become rarer as Proton has improved, since developers increasingly see no reason to maintain a separate Linux build when Proton handles it for free.
FAQs
How to run Windows games on Linux using Proton?
Install Steam on Linux, open Settings, go to the Compatibility tab, enable Steam Play for all other titles, choose a Proton version, and restart Steam. Every Windows game in your library will then show an Install button and run through Proton automatically when launched.
Can I play my Windows games on Linux?
Yes. With Proton enabled in Steam, most Windows games run on Linux without any manual configuration. Community data on ProtonDB shows the majority of the top 100 Steam games are playable, though a small number with kernel-level anti-cheat still do not work.
Does Proton work for all Windows games?
No. Games using kernel-level anti-cheat such as Easy Anti-Cheat, BattlEye, and Vanguard often fail or are explicitly blocked by their publishers. Examples include Valorant, Fortnite, Destiny 2, and Rainbow Six Siege. Always check ProtonDB before assuming a specific game will run.
How to emulate PC games on Linux?
You do not need traditional emulation. Proton is a compatibility layer, not an emulator, and runs Windows games as native Linux processes through Wine and DXVK. For non-Steam PC games, Lutris is the most popular alternative launcher and handles GOG, Epic, and standalone installers.
What is the difference between Proton and Wine?
Proton is a fork of Wine maintained by Valve. Wine handles system call translation only, while Proton bundles Wine with DXVK, VKD3D-Proton, Steam integration, and shader caching. For Steam games, Proton is easier to use and usually performs better than standalone Wine.
Conclusion
How Proton lets you play Windows games on Linux is not a single trick but a stack of translation layers working together: Wine handles system calls, DXVK and VKD3D-Proton translate Direct3D into Vulkan, and Steam Play glues it all into a one-click experience. The result is that most of your Steam library will install and run on Linux with no terminal commands and no manual configuration.
The honest limitation is that competitive multiplayer titles with kernel-level anti-cheat still will not run, and probably will not until publishers choose to support Linux. For everything else, Proton in 2026 is mature enough that switching to Linux for daily gaming is realistic for the first time in the platform’s history.
If you are evaluating whether Linux will work for you, the practical next step is simple: check your most-played games on ProtonDB, enable Steam Play, and try them. The data tells you what to expect better than any general guide can.