A Vulkan-based translation layer for Direct3D 8/9/10/11 which allows running 3D applications on Linux using Wine.
For the current status of the project, please refer to the project wiki.
The most recent development builds can be found here.
Release builds can be found here.
In order to install a DXVK package obtained from the release page into a given wine prefix, copy or symlink the DLLs into the following directories as follows, then open winecfg
and manually add DLL overrides for d3d8
, d3d9
, d3d10core
, d3d11
and dxgi
.
In a default Wine prefix that would be as follows:
export WINEPREFIX=/path/to/wineprefix
cp x64/*.dll $WINEPREFIX/drive_c/windows/system32
cp x32/*.dll $WINEPREFIX/drive_c/windows/syswow64
winecfg
For a pure 32-bit Wine prefix (non default) the 32-bit DLLs instead go to the system32
directory:
export WINEPREFIX=/path/to/wineprefix
cp x32/*.dll $WINEPREFIX/drive_c/windows/system32
winecfg
Verify that your application uses DXVK instead of wined3d by enabling the HUD (see notes below).
In order to remove DXVK from a prefix, remove the DLLs and DLL overrides, and run wineboot -u
to restore the original DLL files.
Tools such as Steam Play, Lutris, Bottles, Heroic Launcher, etc will automatically handle setup of dxvk on their own when enabled.
Listed below are the DLL requirements for using DXVK with any single API.
d3d8.dll
and d3d9.dll
d3d9.dll
d3d10core.dll
, d3d11.dll
and dxgi.dll
d3d11.dll
and dxgi.dll
Before reporting an issue, please check the Wiki page on the current driver status and make sure you run a recent enough driver version for your hardware.
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.
The DXVK_HUD
environment variable controls a HUD which can display the framerate and some stat counters. It accepts a comma-separated list of the following options:
devinfo
: Displays the name of the GPU and the driver version.fps
: Shows the current frame rate.frametimes
: Shows a frame time graph.submissions
: Shows the number of command buffers submitted per frame.drawcalls
: Shows the number of draw calls and render passes per frame.pipelines
: Shows the total number of graphics and compute pipelines.descriptors
: Shows the number of descriptor pools and descriptor sets.memory
: Shows the amount of device memory allocated and used.gpuload
: Shows estimated GPU load. May be inaccurate.version
: Shows DXVK version.api
: Shows the D3D feature level used by the application.cs
: Shows worker thread statistics.compiler
: Shows shader compiler activitysamplers
: Shows the current number of sampler pairs used [D3D9 Only]scale=x
: Scales the HUD by a factor of x
(e.g. 1.5
)opacity=y
: Adjusts the HUD opacity by a factor of y
(e.g. 0.5
, 1.0
being fully opaque).Additionally, DXVK_HUD=1
has the same effect as DXVK_HUD=devinfo,fps
, and DXVK_HUD=full
enables all available HUD elements.
When used with Wine, DXVK will print log messages to stderr
. Additionally, standalone log files can optionally be generated by setting the DXVK_LOG_PATH
variable, where log files in the given directory will be called app_d3d11.log
, app_dxgi.log
etc., where app
is the name of the game executable.
On Windows, log files will be created in the game's working directory by default, which is usually next to the game executable.
The DXVK_FRAME_RATE
environment variable can be used to limit the frame rate. A value of 0
uncaps the frame rate, while any positive value will limit rendering to the given number of frames per second. Alternatively, the configuration file can be used.
Some applications do not provide a method to select a different GPU. In that case, DXVK can be forced to use a given device:
DXVK_FILTER_DEVICE_NAME="Device Name"
Selects devices with a matching Vulkan device name, which can be retrieved with tools such as vulkaninfo
. Matches on substrings, so "VEGA" or "AMD RADV VEGA10" is supported if the full device name is "AMD RADV VEGA10 (LLVM 9.0.0)", for example. If the substring matches more than one device, the first device matched will be used.Note: If the device filter is configured incorrectly, it may filter out all devices and applications will be unable to create a D3D device.
The following environment variables can be used for debugging purposes.
VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation
Enables Vulkan debug layers. Highly recommended for troubleshooting rendering issues and driver crashes. Requires the Vulkan SDK to be installed on the host system.DXVK_LOG_LEVEL=none|error|warn|info|debug
Controls message logging.DXVK_LOG_PATH=/some/directory
Changes path where log files are stored. Set to none
to disable log file creation entirely, without disabling logging.DXVK_DEBUG=markers|validation
Enables use of the VK_EXT_debug_utils
extension for translating performance event markers, or to enable Vulkan validation, respecticely.DXVK_CONFIG_FILE=/xxx/dxvk.conf
Sets path to the configuration file.DXVK_CONFIG="dxgi.hideAmdGpu = True; dxgi.syncInterval = 0"
Can be used to set config variables through the environment instead of a configuration file using the same syntax. ;
is used as a seperator.On drivers which support VK_EXT_graphics_pipeline_library
Vulkan shaders will be compiled at the time the game loads its D3D shaders, rather than at draw time. This reduces or eliminates shader compile stutter in many games when compared to the previous system.
In games that load their shaders during loading screens or in the menu, this can lead to prolonged periods of very high CPU utilization, especially on weaker CPUs. For affected games it is recommended to wait for shader compilation to finish before starting the game to avoid stutter and low performance. Shader compiler activity can be monitored with DXVK_HUD=compiler
.
This feature largely replaces the state cache.
Note: Games which only load their D3D shaders at draw time (e.g. most Unreal Engine games) will still exhibit some stutter, although it should still be less severe than without this feature.
DXVK caches pipeline state by default, so that shaders can be recompiled ahead of time on subsequent runs of an application, even if the driver's own shader cache got invalidated in the meantime. This cache is enabled by default, and generally reduces stuttering.
The following environment variables can be used to control the cache:
DXVK_STATE_CACHE
: Controls the state cache. The following values are supported:
disable
: Disables the cache entirely.reset
: Clears the cache file.DXVK_STATE_CACHE_PATH=/some/directory
Specifies a directory where to put the cache files. Defaults to the current working directory of the application.This feature is mostly only relevant on systems without support for VK_EXT_graphics_pipeline_library
In order to pull in all submodules that are needed for building, clone the repository using the following command:
git clone --recursive https://github.com/doitsujin/dxvk.git
Inside the DXVK directory, run:
./package-release.sh master /your/target/directory --no-package
This will create a folder dxvk-master
in /your/target/directory
, which contains both 32-bit and 64-bit versions of DXVK, which can be set up in the same way as the release versions as noted above.
In order to preserve the build directories for development, pass --dev-build
to the script. This option implies --no-package
. After making changes to the source code, you can then do the following to rebuild DXVK:
# change to build.32 for 32-bit
cd /your/target/directory/build.64
ninja install
# 64-bit build. For 32-bit builds, replace
# build-win64.txt with build-win32.txt
meson setup --cross-file build-win64.txt --buildtype release --prefix /your/dxvk/directory build.w64
cd build.w64
ninja install
The D3D8, D3D9, D3D10, D3D11 and DXGI DLLs will be located in /your/dxvk/directory/bin
.
DXVK requires threading support from your mingw-w64 build environment. If you are missing this, you may see "error: ‘std::cv_status’ has not been declared" or similar threading related errors.
On Debian and Ubuntu, this can be resolved by using the posix alternate, which supports threading. For example, choose the posix alternate from these commands:
update-alternatives --config x86_64-w64-mingw32-gcc
update-alternatives --config x86_64-w64-mingw32-g++
update-alternatives --config i686-w64-mingw32-gcc
update-alternatives --config i686-w64-mingw32-g++
For non debian based distros, make sure that your mingw-w64-gcc cross compiler
does have --enable-threads=posix
enabled during configure. If your distro does
ship its mingw-w64-gcc binary with --enable-threads=win32
you might have to
recompile locally or open a bug at your distro's bugtracker to ask for it.
DXVK Native is a version of DXVK which allows it to be used natively without Wine.
This is primarily useful for game and application ports to either avoid having to write another rendering backend, or to help with port bringup during development.
Release builds are built using the Steam Runtime.
DXVK Native replaces certain Windows-isms with a platform and framework-agnostic replacement, for example, HWND
s can become SDL_Window*
s, etc.
All it takes to do that is to add another WSI backend.
Note: DXVK Native requires a backend to be explicitly set via the DXVK_WSI_DRIVER
environment variable. The current built-in options are SDL2
and GLFW
.
DXVK Native comes with a slim set of Windows header definitions required for D3D9/11 and the MinGW headers for D3D9/11. In most cases, it will end up being plug and play with your renderer, but there may be certain teething issues such as:
__uuidof(type)
is supported, but __uuidof(variable)
is not supported. Use __uuidof_var(variable)
instead.字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。