Steamworks Documentation
Steam Deck and Proton
Proton is the compatibility layer that allows Windows games to run on Linux by using a modified version of Wine and a collection of high-performance graphics API implementations. The team has been working on and improving Proton for a while now, and it has a large amount of coverage. Most APIs are already supported by Proton, and most games work out of the box. We're continuing to improve Proton compatibility, and our goal is to get as close to full coverage as possible.

To test your game’s Proton compatibility, you will need a Linux environment. You can install Linux and Steam on a machine to test, or request a developer kit once they are available (limited quantities). Once you are set up in your Linux environment / developer kit, you will be able to use the provided debugging tools to run game builds through a remote debugger and profile performance. Access to the tools is still a work-in-progress and this page will be updated with more information in the coming days.

Known Proton Issues

Below are a few recommendations around areas that have been known to be Proton compatibility issues and likely to induce delays in Proton fully supporting a given title after it launches on Steam:
  • .NET / WPF: Our recommendation is to use standalone technologies like Qt for launchers instead of OS-dependent frameworks like .NET / WPF. For best results, skip separate launchers altogether and integrate their functionality into the game client UI instead, where controller support is likely better.
  • Media Foundation: To save additional bandwidth and disk use, we recommend using standalone codecs like VP9.
  • Anti-cheat: We recommend using user-space anti-cheat components for best results, as they can typically run in the Wine environment and provide the same level of functionality. Kernel-space solutions are not currently supported and are not recommended. Note: we have been working with most anti-cheat technology providers to provide Proton compatibility. If your solution currently isn't working, please reach out to both your vendor and Valve for support.
  • Anti-tamper / DRM: In general we don't recommend use of such solutions across any PC platforms, as they may impact disk usage and overall performance. Getting them fully functional in the Wine environment can take some time and add significant latency to getting your title supported.

Reporting Issues

If you see any issues with your game on Proton not mentioned above, please report them to the Steamworks Forum, GitHub tracker, or through your Valve contact. We are constantly working on and improving Proton support, and your reports are incredibly helpful.

Setting up a Linux Test Environment

You can test your game on Proton now, by setting up a Linux test environment. It's free--all you need is a PC.

  1. Install Linux
    • You’ll need to create a USB boot disk for Ubuntu (20.04 LTS), which you can learn how to do here.
    • Install Ubuntu (20.04 LTS), steps are here.
  2. Install Steam
    • From the Ubuntu desktop, open a browser and download the steam_latest.deb package from this location.
    • Open the file manager, navigate to the directory containing steam_latest.deb and double-click it. This launches Ubuntu Software Center and installs the package.
    • If you prefer to install from the command-line, use gdebi. Install the gdebi-core package (apt install gdebi-core) and then install the Steam for Linux package (gdebi steam_latest.deb).
  3. Test your game
    • You should see your Steam library once you’ve logged in.
    • To get the latest version of Proton with our latest fixes, go to Steam Settings > Steam Play and choose Proton Experimental from the dropdown.
    • Install your game and run it to test Proton compatibility.