ThisCalculator

Everyday

Steam Proton vs Native Linux: Vulkan Performance

Updated · Standard formula, shown below

Steam Proton vs Native Linux: Vulkan Performance

For most games, Steam Proton with Vulkan delivers performance that is on par with, and sometimes better than, native Linux ports, while native versions often suffer from outdated graphics APIs or poorer optimization. The real answer depends on the specific game, the graphics driver, and the translation layer used, but modern Proton has closed the gap to the point where it is often the recommended choice for Vulkan-based titles.

Background: The Linux Gaming Landscape

Linux gaming has historically been a niche, with a small share of the gaming market. Native Linux ports were often afterthoughts, developed by small teams or outsourced, leading to inconsistent quality and performance. Many ports used OpenGL, which is less efficient than Vulkan on modern hardware, or were not updated as frequently as their Windows counterparts. This created a situation where even when a native version existed, it might not run as well as the Windows version under Wine or Proton.

Valve’s introduction of Proton in 2018, built on top of Wine and DXVK (for Direct3D 9/10/11) and VKD3D-Proton (for Direct3D 12), changed the landscape. Proton allows Windows games to run on Linux with minimal user intervention, and its performance has improved dramatically. For Vulkan-based games, the translation is often a direct pass-through, since Vulkan is a cross-platform API. This means the overhead of translation is minimal, and the game can perform as well as it would on Windows, sometimes better due to Linux’s lower overhead and better scheduling.

How Proton Handles Vulkan

When a game uses Vulkan natively on Windows, Proton does not need to translate the API calls to another graphics API. Instead, it passes them directly to the Linux Vulkan driver. This is a key advantage over Direct3D 11 games, which must be translated to Vulkan via DXVK. For Vulkan games, the main translation work is in the system calls and other Windows-specific APIs, not the graphics rendering.

The result is that a Vulkan game running under Proton can achieve nearly identical frame rates to the same game running on Windows, assuming the same hardware and driver. In some cases, it can even be faster, because the Linux kernel and Mesa drivers have lower CPU overhead than Windows and the proprietary drivers. This is particularly noticeable in CPU-bound scenarios, where the game’s logic or draw calls are the bottleneck.

Native Linux Ports: The Good and the Bad

Native Linux ports can be excellent, especially when the developer has invested time in optimizing for the platform. Examples like Doom (2016), Shadow of the Tomb Raider, and Total War: Warhammer II have received praise for their Linux versions. However, these are the exceptions. Many native ports are simply the Windows version wrapped in a compatibility layer, or they use older graphics APIs like OpenGL, which can result in lower performance than the Windows version.

A common issue is that native ports are not updated as frequently as their Windows counterparts. This means that even if a game launches with good performance, later patches and DLC may not be ported, leaving the Linux version behind. Additionally, some developers have abandoned native Linux support altogether, citing the small user base and the cost of maintaining a separate version.

Comparative Performance: Proton vs Native

In practice, the performance difference between Proton and native Linux for Vulkan games is often negligible. For a game that has a well-optimized native Vulkan port, the native version may be slightly faster, perhaps by a few percent. For a game that uses OpenGL or has a poor port, Proton will almost certainly be faster, because it can use Vulkan through DXVK, which is often more efficient than the native OpenGL implementation.

  • Vulkan-native games: Proton and native are often within 1-5% of each other, with Proton sometimes winning.
  • Direct3D 11 games: Proton with DXVK is usually faster than any native OpenGL port, and often matches the Windows performance.
  • Direct3D 12 games: Proton with VKD3D-Proton is still evolving, but it can match native performance in many titles.

It’s also worth noting that Proton can run games that have no native Linux version at all, which is a huge advantage. The question of performance is moot if the game simply doesn’t exist on Linux otherwise.

Factors That Influence Performance

Several factors can tip the balance between Proton and native. The most important is the graphics driver. On Linux, the open-source Mesa drivers for AMD and Intel are excellent and often outperform the proprietary drivers. For NVIDIA, the proprietary driver is generally recommended, and it works well with both Proton and native games.

  • Driver version: Newer drivers often include optimizations for specific games and APIs.
  • Proton version: Valve and the community regularly update Proton, and newer versions can improve performance.
  • Game engine: Some engines, like Unity and Unreal, have better Linux support than others.
  • System configuration: CPU, RAM, and storage speed can all affect performance, but this is the same for both Proton and native.

Another factor is the use of additional tools like gamemode, which can optimize the system for gaming, and mangohud, which provides an overlay for monitoring performance. These work with both Proton and native games.

Common Problems and Misconceptions

A common misconception is that Proton always adds overhead, making games run slower. While this was true in the early days, it is no longer the case for Vulkan games. The translation layer is thin, and the performance hit is often less than 1%.

Another issue is that some games have anti-cheat systems that do not work under Proton. This is not a performance issue, but it can prevent the game from running at all. Some anti-cheat systems have been updated to work with Proton, but others have not. This is a compatibility issue, not a performance one.

Users may also encounter issues with shader compilation stutter. When a game first runs, it needs to compile shaders, which can cause hitches. Proton uses a shader cache to mitigate this, but the first run may still be stuttery. Native games can also have this issue, but it is often less pronounced because the shaders are pre-compiled.

How to Choose: Proton or Native

When deciding whether to use Proton or a native version, the first step is to check the game’s page on Steam. If there is a native Linux version, it will be listed. If not, you will need to use Proton. If both are available, you can compare performance by running both and measuring the frame rate.

  1. Check the game’s Steam page for a Linux icon.
  2. If a native version exists, try it first. If it runs well, stick with it.
  3. If the native version has problems, or if you want to compare, force Proton by going to the game’s properties and selecting a Proton version.
  4. Use a benchmarking tool or the built-in frame rate counter to compare.
  5. Consider that the native version may not receive updates, so Proton might be a better long-term choice.

In practice, many Linux gamers default to Proton, even for games with native ports, because it offers a more consistent experience and often better performance. The native version is only preferred when it is clearly superior.

Frequently Asked Questions

Is Proton slower than native Linux for Vulkan games?

No, for Vulkan games, Proton is usually on par with native, and sometimes faster. The translation layer is minimal, and the overhead is negligible. The main performance differences come from the game’s engine and the graphics driver, not the translation layer.

Why do some native Linux ports perform worse than Proton?

Many native ports are poorly optimized, using OpenGL instead of Vulkan, or are not updated as frequently. Proton can use Vulkan through DXVK, which is often more efficient than a native OpenGL implementation. This is why a Windows game under Proton can outperform a native Linux port.

Should I always use Proton if a native version is available?

Not necessarily. If the native version runs well and is up-to-date, it may be the better choice. However, if the native version has issues, or if you want the latest patches, Proton is a viable alternative. It’s worth testing both to see which works better for you.

Does Proton work with all Vulkan games?

Proton works with most Vulkan games, but there are exceptions. Some games with anti-cheat systems may not run, and some may have minor graphical glitches. However, the compatibility is generally very good, and Valve continues to improve it.

Can I use Proton for a game that has a native Linux version?

Yes, you can force Proton for any game in your Steam library, even if it has a native version. This is done by going to the game’s properties and selecting a Proton version. This can be useful if the native version has problems or if you want to compare performance.

Related

Method: the standard formula for this calculation, rounded as each result states. See how the calculators work or report an error.