I don’t want to start that extremely old flame war of native VS jit code but…
Proton is not an emulation, it is a translation to native code, and while it has some drawbacks (more memory usage, more time at start up to compile things) it can unlocks a lot of potential when the hw support new capabilities, this is the reason that some dx10 games run faster on Linux…
I might be wrong, but I don’t think proton is either? It’s running x86 instructions either way, wine just provides a way to load it from the windows executable and library formats, and together with proton they provide implementations of windows libraries for those executables to use.
As far as I know for the new Vulkans layers and dx12 implementation there is a “translation layer” from the old dx implementation to the most updated one. This is the main reason why old games runs faster on Proton than in w7 for the same hw. Even if they were designed for w7 specifically.
Last time I checked this was done during the booting of the game, but i have to admit this was time ago and it could have been changed.
Ummmm sure?
I don’t want to start that extremely old flame war of native VS jit code but…
Proton is not an emulation, it is a translation to native code, and while it has some drawbacks (more memory usage, more time at start up to compile things) it can unlocks a lot of potential when the hw support new capabilities, this is the reason that some dx10 games run faster on Linux…
I might be wrong, but I don’t think proton is either? It’s running x86 instructions either way, wine just provides a way to load it from the windows executable and library formats, and together with proton they provide implementations of windows libraries for those executables to use.
As far as I know for the new Vulkans layers and dx12 implementation there is a “translation layer” from the old dx implementation to the most updated one. This is the main reason why old games runs faster on Proton than in w7 for the same hw. Even if they were designed for w7 specifically.
Last time I checked this was done during the booting of the game, but i have to admit this was time ago and it could have been changed.
I guess most of the process is just using a wrapper to translate the call to a Windows library to the equivalent call to a Linux library.