2017-11-17 11:34:38 +01:00
# DXVK
2018-01-19 13:10:35 +01:00
A Vulkan-based compatibility layer for Direct3D 11 which allows running 3D applications on Linux using Wine.
2017-11-17 11:34:38 +01:00
For the current status of the project, please refer to the [project wiki ](https://github.com/doitsujin/dxvk/wiki ).
2018-01-19 10:15:54 +01:00
For binary releases, see the [releases ](https://github.com/doitsujin/dxvk/releases ) page.
2017-11-17 11:34:38 +01:00
## Build instructions
### Requirements:
2017-12-05 13:27:36 +01:00
- [wine-staging ](https://wine-staging.com/ ) for Vulkan support
2017-11-17 11:34:38 +01:00
- [Meson ](http://mesonbuild.com/ ) build system
- [MinGW64 ](http://mingw-w64.org/ ) compiler and headers
2018-01-13 17:59:39 +01:00
- [glslang ](https://github.com/KhronosGroup/glslang ) front end and validator
2017-11-17 11:34:38 +01:00
### Building DLLs
Inside the dxvk directory, run:
```
2017-12-12 12:54:49 +01:00
# 64-bit build. For 32-bit builds, replace
# build-win64.txt with build-win32.txt
2017-11-17 11:34:38 +01:00
meson --cross-file build-win64.txt build.w64
cd build.w64
2018-01-21 11:38:19 +01:00
meson configure -Dprefix=/your/dxvk/directory/
2018-01-17 21:18:41 +01:00
# for an optimized release build:
meson configure -Dbuildtype=release
2017-11-17 11:34:38 +01:00
ninja
ninja install
```
2018-01-21 11:38:19 +01:00
The two libraries `dxgi_vk.dll` and `d3d11_vk.dll` as well as some demo executables will be located in `/your/dxvk/directory/bin` .
2017-11-17 11:34:38 +01:00
## How to use
2018-01-21 11:38:19 +01:00
In order to set up a wine prefix to use DXVK instead of wined3d globally, run:
```
cd /your/dxvk/directory/bin
WINEPREFIX=/your/wineprefix bash dlls_setup.sh
```
2017-11-17 11:34:38 +01:00
2018-01-21 11:38:19 +01:00
Verify that your application uses DXVK instead of wined3d by checking for the presence of the log files `d3d11.log` and `dxgi.log` in the application's directory, or by enabling the HUD (see notes below).
2018-01-19 13:10:35 +01:00
2018-01-21 14:46:45 +01:00
### Notes on Vulkan drivers
Before reporting an issue, please check the [Wiki ](https://github.com/doitsujin/dxvk/wiki/Driver-support ) page on the current driver status.
2018-01-19 13:10:35 +01:00
### Online multi-player games
Manipulation of Direct3D libraries in multi-player games may be considered cheating and can get your account **banned** . This may also apply to single-player games with an embedded or dedicated multiplayer portion. **Use at your own risk.**
2017-12-07 15:20:12 +01:00
### Environment variables
The behaviour of DXVK can be modified with environment variables.
2017-12-08 11:19:12 +01:00
- `DXVK_DEBUG_LAYERS=1` Enables Vulkan debug layers. Highly recommended for troubleshooting and debugging purposes.
2018-01-19 13:10:35 +01:00
- `DXVK_SHADER_DUMP_PATH=directory` Writes all DXBC and SPIR-V shaders to the given directory
2018-01-21 11:38:19 +01:00
- `DXVK_SHADER_READ_PATH=directory` Reads SPIR-V shaders from the given directory rather than using the shader compiler.
2018-01-19 13:10:35 +01:00
- `DXVK_LOG_LEVEL=error|warn|info|debug|trace` Controls message logging.
2018-01-13 03:53:33 +01:00
- `DXVK_HUD=1` Enables the HUD
2017-12-08 11:19:12 +01:00
## Samples and executables
In addition to the DLLs, the following standalone programs are included in the project:
2017-12-28 19:07:52 +01:00
- `d3d11-compute` : Runs a simple compute shader demo. Requires native `d3dcompiler_47.dll` .
- `d3d11-triangle` : Renders a bunch of triangles using D3D11. Requires native `d3dcompiler_47.dll` .
2017-12-08 11:19:12 +01:00
- `dxgi-factory` : Enumerates DXGI adapters and outputs for debugging purposes.
2017-12-28 19:07:52 +01:00
- `dxbc-compiler` : Compiles a DXBC shader to SPIR-V.
2017-12-08 11:19:12 +01:00
- `dxbc-disasm` : Disassembles a DXBC shader. Requires native `d3dcompiler_47.dll` .
2018-01-13 17:59:39 +01:00
- `hlsl-compiler` : Compiles a HLSL shader to DXBC. Requires native `d3dcompiler_47.dll` .