When a game does not launch, stutters badly, or plays black bars instead of cutscenes, the first troubleshooting instinct for many Linux gamers is to switch Proton versions. The question is which one to try. Proton Experimental and GE-Proton are both common recommendations, but they are not the same thing and they do not always produce the same results.
Understanding what each one is -- and what goes into it -- makes the decision much less of a guessing game.
The Proton Version Landscape
Before comparing the two, it helps to understand where each sits in the broader picture. Valve ships Proton in several forms:
- Numbered stable releases (Proton 9.0, Proton 10.0, and so on) -- tested, versioned releases that Valve assigns to specific games during verification. Each major version brings a Wine upgrade as its foundation; Proton 10.0, originally released in beta on April 29, 2025 and now at point release 10.0-5 as of April 2026, is built on Wine 10, DXVK 2.6.1, VKD3D-Proton 2.14.1, and DXVK-NVAPI 0.9.0. Point releases within a major version add targeted fixes without bumping the major version.
- Proton Experimental -- Valve's own staging branch. It receives continuous updates with features and fixes that are not yet ready for a numbered release. Think of it as the beta queue for whatever becomes the next stable Proton. The Valve wiki describes it as intended for public testing of experimental features, with games already working only on Experimental tested for regressions before stable release.
- Proton Hotfix -- a short-lived special variant Valve ships when a specific high-profile game needs a targeted patch and there is no time for a proper Experimental or stable cycle. It is phased out once the fix matures into one of the standard flavors.
- Proton Experimental Bleeding Edge -- an opt-in beta within Proton Experimental that tracks every commit as it lands automatically. This picks up the latest development in DXVK, VKD3D-Proton, dxvk-nvapi, and Proton's Wine as it happens. It is genuinely unstable and not recommended for regular use.
GE-Proton lives outside that hierarchy entirely. It is a community fork maintained independently by Thomas Crider (GloriousEggroll) and is not distributed by Valve.
As of April 2026, Valve's latest numbered stable release is Proton 10.0-5, which is built on Wine 10, DXVK 2.6.1, VKD3D-Proton 2.14.1, and DXVK-NVAPI 0.9.0. The changelog was last updated on April 10, 2026 per the official Valve GitHub wiki. The prior point release, Proton 10.0-4, shipped January 27, 2026. GE-Proton releases are numbered in a parallel series -- GE-Proton 10-34 as of March 22, 2026 -- and ship significantly more frequently than official Proton, sometimes multiple releases per week when game-specific fixes are needed. GE-Proton's major version number now tracks Proton's upstream base rather than being an independent sequence.
What Proton Experimental Is
Proton Experimental is the place where Valve stages changes before they land in a numbered release. It pulls in upstream Wine updates as they happen, incorporates DXVK and VKD3D-Proton improvements, and contains targeted hotfixes for newly released games that would otherwise wait weeks or months for the next numbered stable.
When a high-profile game ships and does not work on the current stable Proton, Valve's typical response is to push a fix into Proton Experimental while the numbered release catches up. This means Proton Experimental is often the fastest path to making a newly released game launch -- but it can also introduce regressions. A change that fixes one title may break another. Valve does not guarantee stability here.
Proton Experimental carries half-finished changes by design. Games that have been verified against a numbered Proton version may stop working if you switch them to Experimental. Use it as a targeted tool for specific problem titles, not as a global default.
What GE-Proton Is
GE-Proton starts from the same upstream sources as Proton Experimental -- Wine, DXVK, VKD3D-Proton -- and adds a curated set of patches and components that Valve either cannot include for legal reasons or has not yet merged upstream. The key additions are:
- Media Foundation patches -- GE-Proton includes codec support for WMF-encoded video that Valve cannot ship due to licensing constraints. This covers formats including H.264, H.265, VC-1, WMV3, AAC, and WMA -- the codecs Windows ships as part of Media Foundation that games use for cutscene video and audio. This is the fix for in-game cutscenes that display as solid colored bars or play with no video. The GloriousEggroll GitHub README lists this explicitly as a feature Valve's Proton currently does not contain.
- AMD FSR in fullscreen hack -- toggled with
WINE_FULLSCREEN_FSR=1, this applies upscaling at the compatibility layer level. It is limited to Vulkan-rendered games (those using DXVK or VKD3D-Proton) and does not work with native OpenGL games or the wined3d renderer. This is separate from and older than the FSR4 upgrade path below. - FSR4, FSR3, and DLSS upgrade tooling -- GE-Proton 10-4 (June 2025) added an initial stub DLL approach for FSR4, requiring manual DLL placement. GE-Proton 10-9 (July 2025) replaced this with the automated download mechanism under
PROTON_FSR4_UPGRADE=1, which pulls the DLL from AMD's CDN and caches it in the game's prefix. GE-Proton 10-26 (December 2025) expanded the variable set further:PROTON_FSR4_UPGRADE=1downloads FSR DLL version 4.0.2 by default for games that ship FSR 3.1 on RDNA 4 hardware; a specific version can be pinned withPROTON_FSR4_UPGRADE="4.0.1".PROTON_FSR4_RDNA3_UPGRADE=1provides a parallel path for RDNA 3 GPUs, defaulting to DLL version 4.0.0.PROTON_FSR3_UPGRADE=1handles games shipping FSR 3.0 rather than FSR 3.1.PROTON_DLSS_UPGRADE=1fetches the latest NVIDIA DLSS DLLs and replaces bundled versions. None of these environment variables are available in vanilla Proton or Proton Experimental. - FEX integration and aarch64 compile support -- GE-Proton bundles FEX, a dynamic binary translator that enables x86 and x86-64 application execution on aarch64 (ARM64) hardware. Support for compiling GE-Proton itself on aarch64 was added in GE-Proton 10-30 (February 2026). GloriousEggroll notes in the 10-30 release that this work is from upstream Valve and explicitly marked YMMV; currently the aarch64 path requires an unreleased version of umu-launcher because there is no aarch64 version of the Steam client. 32-bit game support on ARM is hit or miss. The feature is actively developed but remains experimental.
- protonfixes -- an automated per-game fix system originally created by community developer simons-public (credited as "Chris" in the GloriousEggroll README) and imported into GE-Proton. The original repository is
simons-public/protonfixeson GitHub. It applies winetricks verbs, registry edits, environment variable overrides, and EAC workarounds on a per-title basis using each game's Steam App ID as the key. When community members discover that a specific game needs a particular DLL or registry setting to run, a protonfixes entry gets added and it applies automatically on next launch. Valve cannot ship many of these fixes because they rely on proprietary DLLs or are too game-specific for the official QA pipeline. - umu-launcher integration -- GE-Proton supports the umu unified game launcher project, which applies protonfixes to games running outside of Steam (GOG, standalone launchers, Heroic Games Launcher). This makes GE-Proton the recommended compatibility layer for non-Steam Windows games on Linux.
- VR outside Steam -- since GE-Proton 10-33 (March 2026), wineopenvr patches allow VR to function for non-Steam games. GloriousEggroll's release notes list the GOG version of Project Wingman, Overload, and Star Citizen as confirmed working examples. Compatibility was tested using Meta Quest 3 with WiVRn. Setup requires following the WiVRn environment variable instructions alongside the GE-Proton VR launch options.
- Wayland monitor selection -- since GE-Proton 10-34 (March 2026),
PROTON_WAYLAND_MONITOR=HDMI-A-1documents and wraps the underlyingWAYLANDDRV_PRIMARY_MONITORvariable with an easier-to-remember name, and by default GE-Proton now auto-detects the primary monitor via xrandr when no value is set, mirroring XWayland behavior. Useful on multi-monitor Wayland setups where the wine-wayland driver renders to the wrong display. - Faster Wine and DXVK updates -- GE-Proton tracks upstream more aggressively than even Proton Experimental in many cases, meaning newer Wine fixes land there first. GE-Proton 9-27 shipped on April 1, 2025 with the latest bleeding-edge Wine, DXVK, VKD3D-Proton, and dxvk-nvapi -- nearly four weeks before the Proton 10.0 beta landed on April 29, 2025. Patches for GTA V Enhanced and Microsoft Flight Simulator 2024 were already in GE-Proton 9-26/9-27 before Valve merged them upstream, and then were removed from GE-Proton once they graduated to official Proton.
- Wine ALSA audio path -- since GE-Proton 10-27, a Wine ALSA driver is included as an alternative to the default PulseAudio path. Enabling it with
WINEDLLOVERRIDES="winepulse.drv=d" WINEALSA_CHANNELS=2(or 6 for 5.1, 8 for 7.1) bypasses PipeWire/PulseAudio entirely and can resolve audio latency and crackling issues in specific games. GE-Proton 10-28 addedWINEALSA_SPATIAL=1for spatial audio initialization errors. This path is not available in official Proton.
The tradeoff is that GE-Proton is maintained primarily by one person, Thomas Crider (GloriousEggroll), updates rapidly, and can introduce its own regressions. GloriousEggroll typically turns around fixes quickly when something breaks, but there is no Valve QA process behind it.
How the FSR4 and DLSS DLL Download Works
One detail that most coverage of GE-Proton skips: when you set PROTON_FSR4_UPGRADE=1 or PROTON_DLSS_UPGRADE=1, GE-Proton does not reach out to a vendor CDN at launch time every session. The DLLs are downloaded once and cached inside the game's Proton prefix. 64-bit upscaler DLLs (such as amdxcffx64.dll) land in steamapps/compatdata/[AppID]/pfx/drive_c/windows/system32/; 32-bit variants go into syswow64/ within the same prefix tree. On subsequent launches the cached version is used, which means there is no per-launch network dependency after the first run. If you want to force a fresh download (for example after pinning a newer DLL version by changing the environment variable value), delete the DLL file from that path and relaunch.
This matters for a few practical reasons. Games on a Steam Deck in offline mode will still use the FSR4 DLL on subsequent sessions after the initial download. If you are on an air-gapped system or have restricted outbound connections, the first launch with the upgrade variable set will fail silently to download and the game will fall back to its bundled DLL version. The GE-Proton changelog does not prominently document this caching behavior, which is why it rarely comes up in troubleshooting threads.
A related but separate behavior: PROTON_FSR4_UPGRADE=1 automatically disables AMD Anti-Lag 2 for the session. This is documented in the GloriousEggroll release notes as a known compatibility issue between the FSR 4 DLL and Anti-Lag 2 at the time of writing. If you rely on Anti-Lag 2 for latency reduction, you cannot combine it with the FSR4 upgrade path in the current implementation.
GloriousEggroll describes GE-Proton in the project README as containing things "Valve's Proton currently does not" -- specifically calling out the media foundation patches and the protonfixes automated system as the two core reasons to use it. Those gaps have remained consistent across every major version, even as the fork has grown to include FSR4 tooling, Wine ALSA audio, and VR support for non-Steam games.
amdxc64.dll contributed by the community (OOOOOF123/Etaash). The early FSR4_UPGRADE=1 flag could trigger a manual upgrade for games shipping FSR 3.1, but it required manual DLL placement following external instructions. The automated download mechanism and the PROTON_-prefixed variable name had not yet landed.PROTON_FSR4_UPGRADE=1 (note the PROTON_ prefix) now pulls the FSR 4 DLL directly from AMD's CDN at first launch and caches it in the game's prefix. Also added NTSync support in this release. This is the point where the FSR4 upgrade became practical for regular use without manual steps.PROTON_FSR4_UPGRADE=1 now downloads FSR 4.0.2 by default for RDNA 4 hardware; a specific version can be pinned (e.g. PROTON_FSR4_UPGRADE="4.0.1"). PROTON_FSR4_RDNA3_UPGRADE=1 adds a parallel path for RDNA 3 GPUs, defaulting to FSR DLL version 4.0.0. PROTON_DLSS_UPGRADE=1 adds NVIDIA DLSS DLL auto-download. FEX ARM binary translation support also appears in this release, enabling x86 and x86-64 execution on aarch64 (ARM64) hosts.WINEDLLOVERRIDES="winepulse.drv=d" WINEALSA_CHANNELS=2 in Steam Launch Options bypasses PipeWire and PulseAudio entirely, resolving crackling and latency caused by the bridge layer in specific games.WINEALSA_SPATIAL=1 alongside the ALSA flags suppresses spatial audio initialization errors that some games throw when spatial processing calls a code path the ALSA driver does not implement.WAYLANDDRV_PRIMARY_MONITOR variable as the user-facing PROTON_WAYLAND_MONITOR. When neither variable is set, GE-Proton now auto-detects the primary monitor via xrandr, mirroring XWayland behavior. Fixes God of War Ragnarok, GTA V, and Assassin's Creed rendering to the wrong display in multi-monitor Wayland sessions.Side-by-Side Comparison
| Property | Proton Experimental | GE-Proton |
|---|---|---|
| Maintained by | Valve / CodeWeavers | GloriousEggroll (community) |
| Installation | Built into Steam library | Requires ProtonUp-Qt or manual install |
| Update frequency | Continuous (Valve schedule) | Very frequent (often weekly) |
| Media codecs (WMF) | No | Yes |
| protonfixes | No | Yes |
| AMD FSR in fullscreen hack | No | Yes (WINE_FULLSCREEN_FSR=1) |
| FSR4 / DLSS runtime upgrade | No | Yes (PROTON_FSR4_UPGRADE, PROTON_DLSS_UPGRADE) |
| FSR3 upgrade (FSR 3.0 games) | No | Yes (PROTON_FSR3_UPGRADE) |
| Wayland monitor selection | No | Yes (PROTON_WAYLAND_MONITOR, since 10-34) |
| Wine ALSA audio path | No | Yes (WINEDLLOVERRIDES + WINEALSA_CHANNELS, since 10-27) |
| FEX (ARM/aarch64) | No | Yes (experimental, since 10-26) |
| umu non-Steam launcher support | No | Yes |
| VR outside Steam | No | Yes (since 10-33) |
| FSR4 on-screen indicator | No | Yes (PROTON_FSR4_INDICATOR=1) |
| DLSS on-screen indicator | No | Yes (PROTON_DLSS_INDICATOR=1) |
| XeSS runtime upgrade | No | Yes (PROTON_XESS_UPGRADE=1) |
| Stability guarantee | Low (staging branch) | Low (community fork) |
| Supported by Valve | Yes | No |
| Does not auto-update | Updates silently with Steam | Must update manually via ProtonUp-Qt |
When to Use Proton Experimental
Proton Experimental is the right first step when a game that just released is not working on the current numbered stable. Valve typically pushes targeted hotfixes here before they graduate to stable, so for a brand-new title where the community is still figuring out compatibility, Experimental is often the fix that arrives first.
It is also a reasonable choice when ProtonDB reports show users having success on Experimental but not on GE-Proton for a specific title. Always check ProtonDB before guessing -- community reports often name the exact Proton version that resolved a problem.
Before switching versions, search the game on protondb.com. User reports frequently include the exact Proton version used and the specific fix that worked. This saves significant trial-and-error time.
When to Use GE-Proton
GE-Proton tends to be the better choice in a few specific situations:
- In-game video is broken -- if cutscenes show as colored bars or simply do not play, this is almost always the Media Foundation codec gap. GE-Proton includes the patches; official Proton does not. This is the clearest, most consistent win for GE-Proton.
- The game refuses to launch under any official Proton version -- protonfixes may have a per-game workaround already in place that Valve has not merged. Check the GloriousEggroll GitHub release notes, which list specific games fixed in each release.
- Performance is noticeably worse than community benchmarks suggest -- GE-Proton sometimes ships Wine or DXVK updates ahead of official Proton that include performance improvements for specific rendering paths. For example, GE-Proton 9-27 (April 2025) carried a newer bleeding-edge Wine and DXVK build nearly four weeks before the Proton 10.0 beta dropped, during which time games hitting Wine rendering regressions that the upstream had already fixed would perform better under GE-Proton than under the then-current Proton 9.0 stable.
- You want FSR without in-game support --
WINE_FULLSCREEN_FSR=1applies AMD FidelityFX Super Resolution at the compatibility layer level for any title. Note that this path is limited to Vulkan-rendered games (those running through DXVK or VKD3D-Proton); it does not work with native OpenGL games or the wined3d renderer. For games using the Direct3D-to-OpenGL path, this variable has no effect. - You have RDNA 4 or RDNA 3 hardware and want FSR4 -- the
PROTON_FSR4_UPGRADE=1environment variable (set in Steam Launch Options before%command%) automatically downloads and substitutes FSR 4 DLLs in games that ship FSR 3.1. RDNA 3 users should usePROTON_FSR4_RDNA3_UPGRADE=1instead. For older games that ship FSR 3.0 rather than 3.1, usePROTON_FSR3_UPGRADE=1. None of these variables work in vanilla Proton or Proton Experimental. - You want to upgrade DLSS versions --
PROTON_DLSS_UPGRADE=1fetches newer NVIDIA DLSS DLLs and replaces the versions bundled with the game, which is only available in GE-Proton and similar forks. - You run games on Wayland and use multiple monitors --
PROTON_WAYLAND_MONITOR=HDMI-A-1(introduced in GE-Proton 10-34) lets you specify which physical display the wine-wayland driver targets. By default GE-Proton will attempt to detect the primary monitor via xrandr when no value is set, but the env var gives you explicit control when auto-detection does not behave as expected. The previous internal variable,WAYLANDDRV_PRIMARY_MONITOR, was undocumented;PROTON_WAYLAND_MONITORmaps to the same value and is the recommended form going forward. - You are running games outside of Steam -- GE-Proton's umu-launcher integration makes it the standard choice for running Windows games through Heroic Games Launcher, Lutris, and other non-Steam front-ends on Linux. protonfixes apply to these games using the game's IGDB or GOG ID as the key, just as they do for Steam App IDs.
- You have persistent audio crackling or high latency -- GE-Proton 10-27 added an optional Wine ALSA audio path that bypasses PipeWire and PulseAudio entirely. Setting
WINEDLLOVERRIDES="winepulse.drv=d" WINEALSA_CHANNELS=2(or 6 for 5.1, 8 for 7.1) switches to the ALSA driver directly. If you also see spatial audio initialization errors, addWINEALSA_SPATIAL=1(available since 10-28). This is not available in official Proton.
Games with kernel-level anti-cheat (Easy Anti-Cheat, BattlEye) that have not been explicitly enabled for Linux/Proton will not work under GE-Proton any more than they do under official Proton. GE-Proton cannot override anti-cheat requirements. Check areweanticheatyet.com for the current state of a specific game.
Unlike Proton Experimental, which updates silently through Steam, GE-Proton must be updated manually. When a new GE-Proton version ships, your existing installation stays at the version you installed until you open ProtonUp-Qt, add the new version, and optionally remove the old one. Games pinned to a specific GE-Proton version will continue using that version until you change it. This is intentional design -- it prevents surprise regressions -- but it means you need to check for updates yourself.
How to Install and Use GE-Proton on Linux
GE-Proton is not in the Steam library. You install it separately using ProtonUp-Qt, which is available as a Flatpak on Flathub and is the recommended approach for Steam Deck users as well.
# Install ProtonUp-Qt from Flathub $ flatpak install flathub net.davidotek.pupgui2 # Launch it $ flatpak run net.davidotek.pupgui2
Once open, confirm Steam is selected at the top of the ProtonUp-Qt window, click Add version, select GE-Proton, and click Install. ProtonUp-Qt automatically detects whether your Steam installation is native or Flatpak and extracts the tarball to the correct compatibilitytools.d directory -- either ~/.steam/steam/compatibilitytools.d/ for native Steam or ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/ for Flatpak Steam.
Restart Steam (or return to Gaming Mode on Steam Deck) so the new version appears in the compatibility tool dropdown.
Download the .tar.gz release from the GloriousEggroll GitHub releases page, then run:
mkdir -p ~/.steam/steam/compatibilitytools.d
tar -xf GE-Proton*.tar.gz -C ~/.steam/steam/compatibilitytools.d/
For Flatpak Steam installations, the target path is different:
mkdir -p ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d
tar -xf GE-Proton*.tar.gz -C ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/
For Snap Steam installations (unofficial, unsupported by GloriousEggroll and Valve):
mkdir -p ~/snap/steam/common/.steam/steam/compatibilitytools.d
tar -xf GE-Proton*.tar.gz -C ~/snap/steam/common/.steam/steam/compatibilitytools.d/
Each release also includes a .sha512sum file alongside the tarball. Verify the download before extracting with sha512sum -c GE-Proton*.sha512sum. Restart Steam after extraction so it detects the new version.
Switching Per Game
Both Proton Experimental and GE-Proton should be assigned per game, not globally. Setting either as the global default will affect every game in your library, including titles that Valve has verified against a specific numbered Proton version and that may regress under a different one.
To switch a specific game:
- Right-click the game in your Steam library and choose Properties.
- Go to the Compatibility tab.
- Tick Force the use of a specific Steam Play compatibility tool.
- Select the desired Proton version from the dropdown.
On Steam Deck in Gaming Mode, the same option is accessible from the game's properties via the gear icon on the right side of the game page.
FSR4 and DLSS Upgrade Environment Variables
One of GE-Proton's most significant recent additions -- not available in Proton Experimental -- is a set of environment variables that upgrade in-game upscalers at runtime, and others that give you finer control over the Wayland display path. These go into the Steam Launch Options field for a specific game (under Properties > General).
# Upgrade FSR 3.1 to FSR 4 -- RDNA 4 hardware (RX 9000 series) PROTON_FSR4_UPGRADE=1 %command% # Optionally pin a specific FSR 4 DLL version instead of the default (4.0.2) PROTON_FSR4_UPGRADE="4.0.1" %command% # Upgrade FSR 3.1 to FSR 4 -- RDNA 3 hardware (RX 7000 series) PROTON_FSR4_RDNA3_UPGRADE=1 %command% # Upgrade games shipping FSR 3.0 to FSR 3.1 SDK (any AMD GPU) PROTON_FSR3_UPGRADE=1 %command% # Auto-upgrade bundled DLSS DLLs to the latest version (NVIDIA only) PROTON_DLSS_UPGRADE=1 %command% # Pin a specific DLSS version -- supply the branch prefix, not the full version string # e.g. "310.2" downloads version 310.2.1.0; do NOT supply the full "310.2.1.0" string PROTON_DLSS_UPGRADE="310.2" %command% # Auto-upgrade bundled XeSS DLLs to the latest version (Intel XeSS games) PROTON_XESS_UPGRADE=1 %command% # Show FSR4 indicator watermark (useful for verifying it is active) PROTON_FSR4_INDICATOR=1 PROTON_FSR4_UPGRADE=1 %command% # Show DLSS overlay (bottom-left corner) to verify DLSS is active PROTON_DLSS_INDICATOR=1 PROTON_DLSS_UPGRADE=1 %command% # Legacy fullscreen hack FSR -- Vulkan-based games only (DXVK/VKD3D-Proton) # Does NOT work with native OpenGL games or wined3d rendering paths WINE_FULLSCREEN_FSR=1 %command% # Force wine-wayland to use a specific monitor (added in GE-Proton 10-34) # Use: xrandr --listmonitors to find your output name PROTON_WAYLAND_MONITOR=HDMI-A-1 %command% # Wine ALSA audio path -- bypasses PipeWire/PulseAudio (added in GE-Proton 10-27) # Use 2 for stereo, 6 for 5.1 surround, 8 for 7.1 surround WINEDLLOVERRIDES="winepulse.drv=d" WINEALSA_CHANNELS=2 %command% # Add WINEALSA_SPATIAL=1 if you get spatial audio initialization errors (since 10-28) WINEDLLOVERRIDES="winepulse.drv=d" WINEALSA_CHANNELS=2 WINEALSA_SPATIAL=1 %command%
Native FSR 4 support requires AMD RDNA 4 hardware (RX 9000 series) and downloads version 4.0.2 of amdxcffx64.dll by default. RDNA 3 support uses a separate emulation path via PROTON_FSR4_RDNA3_UPGRADE=1 which defaults to version 4.0.0 of the DLL. A specific version can be pinned for either variable by supplying it as a value instead of 1, e.g. PROTON_FSR4_UPGRADE="4.0.1". Note that PROTON_FSR4_UPGRADE also disables AMD Anti-Lag 2 due to known compatibility issues. For games that ship FSR 3.0 rather than FSR 3.1, PROTON_FSR3_UPGRADE=1 handles the FSR 3.x upgrade path. For NVIDIA users, PROTON_DLSS_UPGRADE=1 downloads the latest DLSS DLLs and also sets DXVK_NVAPI_DRS_SETTINGS to the latest preset automatically; to pin a specific version supply the branch prefix as a quoted value (e.g. PROTON_DLSS_UPGRADE="310.2" downloads version 310.2.1.0 -- note you supply the prefix, not the full version string). PROTON_DLSS_INDICATOR=1 enables a bottom-left overlay to confirm DLSS is active. For Intel XeSS games, PROTON_XESS_UPGRADE=1 auto-downloads updated XeSS DLLs. The legacy WINE_FULLSCREEN_FSR=1 applies FSR upscaling at the compatibility layer level and works on any GPU, but is limited to Vulkan-rendered games (DXVK and VKD3D-Proton paths); it does not function with native OpenGL games or the wined3d renderer. PROTON_WAYLAND_MONITOR=HDMI-A-1 (substituting your actual output name from xrandr --listmonitors) was introduced in GE-Proton 10-34 as a documented alias for WAYLANDDRV_PRIMARY_MONITOR; GE-Proton now auto-detects the primary display via xrandr if neither is set. For audio issues, the Wine ALSA path (WINEDLLOVERRIDES="winepulse.drv=d" WINEALSA_CHANNELS=2) was added in GE-Proton 10-27 and can resolve audio latency and crackling in specific games by bypassing PipeWire/PulseAudio. None of the FSR4/DLSS/FSR3/XeSS/WINEALSA variables function under official Proton or Proton Experimental -- they require GE-Proton or a similar community fork.
Step 1: Install ProtonUp-Qt
Install ProtonUp-Qt from Flathub with flatpak install flathub net.davidotek.pupgui2. On Steam Deck, switch to Desktop Mode and install it from the Discover store. ProtonUp-Qt is also available as an AppImage from its GitHub releases page, and as protonup-qt / protonup-qt-bin in the AUR for Arch-based distributions.
Step 2: Install GE-Proton
Open ProtonUp-Qt, confirm Steam is selected at the top, click Add version, select GE-Proton from the list, and click Install. ProtonUp-Qt detects whether your Steam installation is native or Flatpak and extracts to the correct compatibilitytools.d path automatically. On Steam Deck, return to Gaming Mode or restart Steam on desktop Linux so the new version is detected. GE-Proton does not auto-update -- you must return to ProtonUp-Qt each time a new release ships and want the latest fixes.
Step 3: Assign GE-Proton to a specific game
Right-click the game in your Steam library and choose Properties. Go to the Compatibility tab, tick Force the use of a specific Steam Play compatibility tool, and select GE-Proton from the dropdown. Launch the game as normal.
Step 4 (optional): Enable FSR4, FSR3, DLSS upgrades, or Wine ALSA audio
In the game's Properties under the General tab, find the Launch Options field. For FSR4 on RDNA 4 hardware: PROTON_FSR4_UPGRADE=1 %command% (downloads FSR DLL version 4.0.2 by default). For RDNA 3: PROTON_FSR4_RDNA3_UPGRADE=1 %command% (defaults to version 4.0.0). For games shipping FSR 3.0 (older FSR 3): PROTON_FSR3_UPGRADE=1 %command%. For DLSS: PROTON_DLSS_UPGRADE=1 %command%. For audio crackling or latency issues: WINEDLLOVERRIDES="winepulse.drv=d" WINEALSA_CHANNELS=2 %command% (use 6 or 8 for surround; add WINEALSA_SPATIAL=1 for spatial audio errors). For multi-monitor Wayland rendering on the wrong display (since GE-Proton 10-34): PROTON_WAYLAND_MONITOR=HDMI-A-1 %command% with your output name from xrandr. These environment variables are only available in GE-Proton and similar community forks -- they do nothing under vanilla Proton or Proton Experimental.
Step 5: Check ProtonDB before switching
Visit protondb.com and search for the game you are troubleshooting. Community reports will often tell you which Proton version resolves a specific issue. Use this to choose between numbered stable, Proton Experimental, and GE-Proton rather than guessing through all three sequentially.
Version Decision Tree
Rather than guessing through Proton versions sequentially, you can narrow the choice quickly by matching your symptom to the version that is most likely to resolve it. Use the interactive tool below, or read the full logic beneath it.
PROTON_FSR4_UPGRADE=1 %command% in Steam Launch Options (under Properties > General). This downloads and substitutes FSR 4.0.2 DLLs for games shipping FSR 3.1. Note: this disables AMD Anti-Lag 2. To verify FSR4 is active, add PROTON_FSR4_INDICATOR=1 to the same launch options. GE-Proton also often ships Wine and DXVK updates faster than official Proton, which may help independent of FSR.PROTON_FSR4_RDNA3_UPGRADE=1 %command% in Steam Launch Options. This uses version 4.0.0 of the FSR DLL via an RDNA 3 emulation path. If the game ships FSR 3.0 rather than 3.1, use PROTON_FSR3_UPGRADE=1 instead. GE-Proton's faster Wine/DXVK update cadence may also help for certain rendering paths.PROTON_DLSS_UPGRADE=1 can also help if the game ships an older DLSS version. Always check ProtonDB for game-specific reports.PROTON_FSR4_UPGRADE=1, PROTON_FSR4_RDNA3_UPGRADE=1, PROTON_FSR3_UPGRADE=1, and PROTON_DLSS_UPGRADE=1 are GE-Proton-only environment variables. They do not function under vanilla Proton or Proton Experimental. Use the env-var builder further down this page to construct the correct launch options string for your hardware and use case.WINEDLLOVERRIDES="winepulse.drv=d" WINEALSA_CHANNELS=2 %command% to Steam Launch Options. Use 6 for 5.1 surround, 8 for 7.1. If you also see spatial audio errors in the game's log, add WINEALSA_SPATIAL=1. This path bypasses PipeWire and PulseAudio entirely and resolves issues caused by the bridge layer rather than the game itself.PROTON_WAYLAND_MONITOR=HDMI-A-1 %command% (substituting your actual output name from xrandr --listmonitors) to Steam Launch Options. This explicitly tells the wine-wayland driver which physical display to target. When neither this variable nor the older WAYLANDDRV_PRIMARY_MONITOR is set, GE-Proton 10-34 auto-detects via xrandr.Frequently Asked Questions
What is the difference between ProtonGE and Proton Experimental?
Proton Experimental is Valve's official staging branch, updated with features and fixes not yet ready for a numbered stable release. ProtonGE (GE-Proton) is a community fork maintained by Thomas Crider (GloriousEggroll) that builds on Proton Experimental and adds extra patches Valve cannot include for legal or practical reasons, including Media Foundation codecs, AMD FSR in fullscreen hack, FSR4 and DLSS runtime upgrade variables, FEX for ARM, umu-launcher support for non-Steam games, and the protonfixes automated per-game fix system. Proton Experimental is built and tested by Valve; ProtonGE is built by an independent maintainer and updated more frequently.
When should I use ProtonGE instead of Proton Experimental?
Use ProtonGE when a game has in-game video playback issues (colored bars or missing cutscenes), when a game refuses to launch under any official Proton version, when you want to use PROTON_FSR4_UPGRADE=1, PROTON_FSR3_UPGRADE=1, or PROTON_DLSS_UPGRADE=1, when you are running games outside of Steam via umu-launcher, or when ProtonDB reports that the community has better results with GE-Proton. GE-Proton also tends to ship Wine and DXVK updates faster than official Proton.
How do I install GE-Proton?
The easiest method is ProtonUp-Qt, available as a Flatpak from Flathub. Install it with flatpak install flathub net.davidotek.pupgui2, select Steam as the target, click Add version, choose GE-Proton, and install. Restart Steam or return to Gaming Mode on Steam Deck. GE-Proton can then be selected per-game from Properties > Compatibility. For manual installation on native Steam: mkdir -p ~/.steam/steam/compatibilitytools.d then tar -xf GE-Proton*.tar.gz -C ~/.steam/steam/compatibilitytools.d/. For Flatpak Steam the path is ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/. Each release includes a .sha512sum file -- verify before extracting with sha512sum -c GE-Proton*.sha512sum.
Should I set ProtonGE as the global default?
Generally no. Setting ProtonGE globally can break games that have been verified against a specific numbered Proton version. The recommended workflow is to start with the numbered stable Proton version for any given game, check ProtonDB if you encounter issues, and switch to ProtonGE only for titles that benefit from it. Game-specific overrides in Steam Properties let you do this without affecting other titles.
Does GE-Proton auto-update?
No. Unlike Proton Experimental, which updates silently through Steam, GE-Proton must be updated manually. When a new version is released, you open ProtonUp-Qt, add the new version, and optionally remove the old one. Games stay pinned to the GE-Proton version you assigned them until you change it explicitly. This is intentional -- it prevents surprise regressions from automatic updates -- but it means you are responsible for keeping up with new releases if you want the latest fixes.
Can I use GE-Proton for games outside of Steam?
Yes. GE-Proton includes umu-launcher integration, which is a unified launcher project that applies protonfixes to non-Steam games using each game's GOG or IGDB ID as the key. It is the standard recommendation for Windows games run through Heroic Games Launcher, Lutris, and similar front-ends on Linux. Official Proton Experimental does not support this use case out of the box.
Sources and References
Technical details in this guide are drawn from official documentation and verified sources.
- GamingOnLinux: Why are there so many different Proton versions? -- Proton version landscape, Proton Experimental description, GE-Proton feature list
- GloriousEggroll proton-ge-custom GitHub -- GE-Proton README, feature documentation including media foundation, protonfixes, FSR, DLSS, FEX, and umu credits
- GloriousEggroll proton-ge-custom releases -- per-release changelogs including 10-4 (initial FSR4 stub DLL, June 2025), 10-9 (PROTON_FSR4_UPGRADE automated download introduced, July 2025), 10-26 (PROTON_FSR4_RDNA3_UPGRADE/PROTON_DLSS_UPGRADE vars), 10-27 (Wine ALSA path), 10-28 (WINEALSA_SPATIAL), 10-30 (aarch64 compile), 10-33 (VR outside Steam via wineopenvr), 10-34 (PROTON_WAYLAND_MONITOR documented and xrandr auto-detect)
- ProtonUp-Qt GitHub -- ProtonUp-Qt installation and usage documentation
- Valve Proton Versions wiki -- official definitions of Proton Stable, Experimental, Hotfix, and Bleeding Edge flavors
- Valve Proton changelog -- Proton 10.0-5 changes (changelog last edited April 10, 2026)
- Valve Proton releases -- Proton point release notes and component version history
- SteamDeckHQ: Proton GE 10-33 Releases With Fixes For VR Outside Steam -- VR outside Steam (wineopenvr), Planet Crafter, FSR4 fixes; 10-33 introduced VR, not PROTON_WAYLAND_MONITOR
- SteamDeckHQ: Proton GE 10-34 Releases With Fix For God of War Ragnarok -- PROTON_WAYLAND_MONITOR introduced and documented here; xrandr auto-detect; GTA V, Assassin's Creed fixes
- SteamDeckHQ: Proton GE 10-30 Releases With Arknights Endfield Fixes -- aarch64 compile support confirmation
- GamingOnLinux: Valve released Proton 10.0-4 (January 2026) -- Proton 10.0-4 release details and component versions
- GamingOnLinux: GE-Proton 10-9 released with NTSync and FSR4 upgrade support (July 2025) -- introduction of the automated
PROTON_FSR4_UPGRADE=1download mechanism - XDA Developers: 4 reasons to use Proton GE on the Steam Deck -- community analysis of GE-Proton upstream cadence advantage
- ProtonDB -- community compatibility reports by game title and Proton version
- Are We Anti-Cheat Yet? -- anti-cheat Linux compatibility tracking database