Difference between revisions of "Windows Compatibility"
(Created page with "So you can't find a Linux version of that software you want to install? Our last step is to try [https://appdb.winehq.org/ Wine]. Wine is a compatibility layer that tries to translate Window Binaries (.exe) calls into Linux calls. Sometimes this works really well, and other times nothing happens at all. For Steam games you can just use Steam. For games that are not on Steam, use Lutris. For other programs, Bottles might be good option. Check [https://www.pro...") |
m (Aragorn moved page Windows Compatiblity to Windows Compatibility) |
(No difference)
|
Revision as of 10:13, 23 March 2022
So you can't find a Linux version of that software you want to install? Our last step is to try Wine. Wine is a compatibility layer that tries to translate Window Binaries (.exe) calls into Linux calls. Sometimes this works really well, and other times nothing happens at all.
For Steam games you can just use Steam. For games that are not on Steam, use Lutris. For other programs, Bottles might be good option. Check www.protondb.com for Steam games, and lutris.net for compatibility with all other games.
You can find all kinds of programs (including games that are not on protondb or lutris) in the wine AppDB. Here's an in-depth guide of wine stuff but again, google and find how stuff works and it works. If you don't understand, please ask! The community is usually happy to help!
There are also other programs that try to help you with Wine, like PlayOnLinux.
Manually running wine
You typically would not want to do this, this is just for educational purpose.
First, let's install Wine.
sudo apt install wine
On some systems, installing Wine allows you to double click an .exe and it will try to run just like in Windows, but if not, you would open a terminal and type (credit to /u/whyhahm for suggesting cd
to directory before running):
cd /path/to/program; wine file.exe
DXVK/D9VK/Gallium Nine/VKD3D
What are DXVK/D9VK/VK9/Gallium Nine? I'll let the projects explain themselves:
DXVK: Vulkan-based D3D11, D3D10, and now D3D9, implementation for Linux / Wine
D9VK: Used to be separate from DXVK, but now they are one project. Kept separate on this page for searching.
Gallium Nine: Gallium Nine allows to run any Direct3D 9 application with nearly no CPU overhead, which provides a smoother gaming experience and increased FPS. Gallium Nine requires you to be using the Mesa3D driver though, so Nvidia users are out of luck. (Thanks to /u/MicroToast for the clarification)
VKD3D (and its currently more active -proton fork): Translates D3D12 to Vulkan. Still in its early stages, but is already capable of running most games.
Okay, but what does that mean?
Direct3D (the graphical part of the DirectX API) is what most Windows game built after ~2000 use. You don't really need to know any technically details about it other than the fact that it's a Windows' only API. For the longest time, one of the biggest bottle necks for gaming on Linux was translating the Direct3D calls to OpenGL (a cross platform graphical API that works on Linux/most other OSes).
All of these projects attempt to translate Direct3D calls to something that Linux understands. As far as I'm aware, the most used one is DXVK.
Proton and Lutris both have support for automatically using these technologies, so you don't have to worry about what to do in order to take advantage of them.
Using these technologies you can get very good performance, sometimes even better than on Windows! Cyberpunk 2077 for example gets 40% more FPS in this video. Note, that this is not true for all games, though. Some games still run with less FPS, in general you can expect about the same performance. Also note, that this is not the default experience, but a heavily optimized Linux install. Your default experience will be worse.