Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Since you mention games; I still don't fully understand the relation between wine and proton. It's mostly described as a wine fork optimized for games. But is it otherwise identical to wine wrt usage? Or is it integrated into steam? If it's standalone, should I even still bother trying games on wine? Does code from proton end up back in wine? Could I run other Windows apps with proton instead of wine and benefit, eg CAD software?


It is meant to be integrated into Steam, so building and using it without Steam might be a little less straightforward than pure Wine, but you can definitely do it. The launched script expects environment variables and other stuff from Steam, so it won't work without Steam. On the other hand, no other launching script is provided, but if you call the wine executable with the correct options and environment variables, it should just work.

On average I don't expect specific merits using Proton vs using vanilla Wine for non-game applications. As far as I know, Proton-specific patches are usually hacks targeted either generally at games or at specific titles. Actually, using Proton could be worse than vanilla Wine, because Proton is based on a past version of Wine which only gets updated every now and then (last Proton is based on Wine 5.13), so you are missing some development (on the other hand, sometimes developing features breaks stuff, so this could also go the other way around).

Ideally, we always want as many patches as possible to go into vanilla Wine instead of Proton or CrossOver; first because we love free software and second because maintaining forked versions is time-consuming like mad. However Wine rightly has strict code quality requirements, and sometimes developing a proper fix for some bug is either impossible or too long; those cases are handled with patches in Proton (perhaps shared with Wine Staging or CrossOver).

Disclosure: I work for CodeWeavers on Proton. Opinions my own.


I'm surprised to learn that people from CodeWeavers work on Proton. Did Valve hire your company to develop it/help out? Are you using it as a base for CrossOver or the other way around?


Yes, see for example https://www.forbes.com/sites/jasonevangelho/2019/09/19/fine-....

CrossOver and Proton are rather independent as codebases, except they're both constantly rebased on Wine. Of course patches can flow in both directions (and from either to vanilla Wine, which is the best), but AFAIK none is systematically based on the other.


Does proton use game specific forks?

I’ve always been curious, I stopped playing games shortly before steam on Linux, back then it was a mess of using various wine versions and configs on various games (or maybe I just sucked, I had far less luck getting stuff to work than others on Wine DB).


Not forks. The whole code for Proton is in https://github.com/ValveSoftware/Proton and its submodules. There are many game-specific patches, i.e., patches that were more or less explicitly included to make one specific game (or a few games) work better.

There are also some instances of game-specific behaviour: Proton detects at runtime which game is running and decides whether to enable or not some code. This is done for the most filthy hacks that are required to run something, but risk to spoil some other program. Search the code for instances of getenv("SteamAppId") or getenv("SteamGameId").


no it does not


It is basically:

- wine with some additional patches (written by Codewavers themselves so they will make it to wine proper)

- DXVK and its DX12 counterpart for better direct X compat (these work fine with wine, but they are not part of wine)

- Some bridging layer to let wine programs talk with native Steam (previously you would have had to run Steam itself under wine)

You can run other programs under proton by adding them to Steam, but probably not worth it for non games.


From what I understand Proton is a steam-integrated bundle of several technologies with wine being one of them. Proton patches do seem to get upstreamed into wine[0]

[0] https://www.gamingonlinux.com/articles/codeweavers-on-how-pr...


Proton is Valve's Wine integrated into Steam, it's essentially vanilla Wine plus some extra patches (that will eventually work their way upstream) and libraries to make your life easier. You enable windows compatibility for a non-native game and it will run in its own prefix. If you are using Steam for games there is no real reason to use a different build of Wine although you can definitely do so. In fact different custom builds are out in the wild that can plug into Steam and be used alongside the official Valve builds.

I can't see why a third-party program cannot be used with Proton. You can just add it as an external program and enable windows compatibility as you would with a steam game.


AFAICT, Proton is a modified Wine together with Python scripts to run it, enabling hacks and features known to work well with certain games. So it's not identical from a usage standpoint to upstream Wine, but the underlying technology is the same.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: