Valve just announced the release of Photon on GitHub. Photon is a custom version of the WINE translation layer, that has been optimized to better support games, including native support for all of the game controllers that Steam currently supports, as well as a translation layer enabling you to play D3D 11/12 games on Vulkan.
Details from the release announcement:
- Windows games with no Linux version currently available can now be installed and run directly from the Linux Steam client, complete with native Steamworks and OpenVR support.
- DirectX 11 and 12 implementations are now based on Vulkan, resulting in improved game compatibility and reduced performance impact.
- Fullscreen support has been improved: fullscreen games will be seamlessly stretched to the desired display without interfering with the native monitor resolution or requiring the use of a virtual desktop.
- Improved game controller support: games will automatically recognize all controllers supported by Steam. Expect more out-of-the-box controller compatibility than even the original version of the game.
- Performance for multi-threaded games has been greatly improved compared to vanilla Wine.
Proton is built around the following technologies (and more):
- vkd3d[source.winehq.org], the Direct3D 12 implementation based on Vulkan
- The OpenVR and Steamworks native API bridges
- Many wined3d performance and functionality fixes for Direct3D 9 and Direct3D 11
- Overhauled fullscreen and gamepad support
- The “esync[github.com]” patchset, for multi-threaded performance improvements
Although Proton works on Mac, Steam Play is currently only supported on Linux machines. Initially there is only a subset of games supported officially, with the ability to request whitelisting for other games coming soon. Eventually this technology will hopefully enable you to run the majority of your Windows games directly in Linux from the Steam client. It will be interesting to see what this support does to Linux development support in general… is it a good thing, or bad thing, for Linux platform adoption?