DXVK extension (aka DirectX to Vulkan) is one of the tools included in the Steam Play feature of Steam.
Es a fantastic tool that can convert Microsoft DirectX 11 and DirectX 10 graphic calls to Vulkan, the open source graphics API that is compatible with Linux. To use DXVK, in addition to Wine and Vulkan, you will obviously need a Vulkan-compatible GPU.
While DXVK is still primarily used on Steam Play, it is not the only place Linux users can take advantage of this fantastic technology.
It also provides the Vulkan-based D3D11 implementation for Linux and Wine, Regarding performance and optimization when running Direct3D 11 games on Wine since they also provide support for Direct3D9.
D3D9 for DXVK should not be confused with the VK9 initiatives for D3D9 support assigned to Vulkan, as this is a separate initiative that is still in development.
D3D9 proposes DXVK support to convert API calls from D3D9 to D3D11, and will then use the D3V11 to Vulkan conversion built into DXVK.
Which is basically the same idea as the DXUP conversion for D3D10 to D3D11, so it can be converted to Vulkan via DXVK.
About the new version 1.0 of DXVK
Recently DXVK has reached version 1.0 which includes performance improvements for several games and a new configuration script.
This latest version adds an option to show supported features (function level) in HUD DXVK.
Also, two new Vulkan extensions (VK_EXT_memory_prioritye VK_EXT_memory_budget) are used with this release, if available.
These extensions improve application behavior when memory is low and signal available VRAM more accurately to applications thereby improving CPU overhead management.
DXVK 1.0 also features game-specific enhancements, including:
- Resident Evil 2: enabled the d3d11.relaxedBarriers option to improve performance by up to 10% in certain scenarios. Enabling this option can cause problems with other games, so be careful when enabling it.
- Overwatch: fix shadow-related issues thanks to the VK_EXT_depth_clip_enable extension.
- Far Cry 3/4 / Primal / Blood Dragon: fix annoying artifacts.
- Final Fantasy XIV
- Heroes of the Storm
- Monster Hunter World
How to add DXVK support to Linux?
As mentioned at the beginning it is important that our GPU is compatible with the Vulkan API. So if you have no idea, you should visit your GPU manufacturer's website to verify compatibility.
It is important to mention that DXVK requires the latest stable version of Wine (also known as Wine Staging) to run. So, if you don't have this installed, you can visit the following link where we show you how to do it.
Now we will only have to download the latest stable package of DXVK, this one we found In the following link. The package can be downloaded with the help of the wget command. In a terminal we are going to type the following command:
After having made the download now we are going to unzip the package just obtained, this can be done with from your desktop environment or from the terminal itself by executing in the following command:
tar -xzvf dxvk-1.0.tar.gz
Then we access the folder with:
And we run the sh command to run the installation script:
sudo sh setup-dxvk.sh install
Thanks to a new Bash script it is possible to use Wine DXGI instead of the implementation provided by DXVK.
To do this, you must give the following command:
setup-dxvk.sh install --without-dxgi
When installing DXVK in a prefix of Wine. The advantage is that Wine vkd3d can be used for D3D12 games and DXVK for D3D11 games.
Also, the new script allows you to install the dll as symbolic links, making it easier to update the DXVK to get more Wine prefixes (you can do this via the –symlink command).
An easier method is to just copy the dlls into the Wine directory. As you know PlayOnLinux like Crossover make use of Wine as well. So for each application or game they usually create a bottle with "drive_c / windows" Here they should review their system a little more thoroughly.
As you can see the DXVK folder contains two others that are the dll for 32 and 64 bits, we are going to place them according to the following paths.
Where "user" you replace it with the username you use in your Linux distribution.
For 64 bits we put them in:
And for 32 bits in:
3 comments, leave yours
Failed to resolve C: \ windows \ system32
It doesn't work for me
You can do it manually as we also indicated in the article. :) Just copy the dlls to the corresponding folders.
He asked me to replace a previous one, okay?