# doitsujin/dxvk

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/doitsujin-dxvk).**

16,602 stars · 1,069 forks · C++ · zlib

## Links

- GitHub: https://github.com/doitsujin/dxvk
- awesome-repositories: https://awesome-repositories.com/repository/doitsujin-dxvk.md

## Topics

`d3d11` `d3d9` `dxbc` `gaming` `linux` `spir-v` `vulkan` `wine`

## Description

DXVK is a graphics compatibility layer that enables Windows-based applications to run on non-Windows operating systems by translating legacy Direct3D instructions into the modern Vulkan API. It functions as a translation library that maps high-level rendering commands to low-level hardware-accelerated primitives, allowing for high-fidelity graphics output across different hardware environments.

The project distinguishes itself through a suite of performance optimization strategies designed to maintain frame consistency and reduce latency. By utilizing background shader compilation and multithreaded command processing, it prevents runtime stuttering and minimizes CPU overhead. Additionally, it incorporates advanced memory management and synchronization techniques, such as waitable swap chains and resource paging, to ensure stable frame pacing and efficient utilization of video memory.

Beyond its core translation capabilities, the project provides diagnostic tools for graphics rendering debugging. It includes functionality for intercepting and tracing command sequences, which allows for the identification of rendering errors and the analysis of performance bottlenecks. The software also supports advanced rendering features, including tiled resources and conservative rasterization, to ensure compatibility with complex visual applications.

## Tags

### Operating Systems & Systems Programming

- [Windows Compatibility Layers](https://awesome-repositories.com/f/operating-systems-systems-programming/windows-compatibility-layers.md) — Runs legacy Windows games on Linux systems by translating Direct3D graphics instructions into modern Vulkan commands.
- [GPU Memory Allocators](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/gpu-memory-allocators.md) — Monitors and balances resource allocation across video memory to prevent performance degradation from oversubscription. ([source](https://github.com/doitsujin/dxvk/wiki/Developer-guidelines))
- [Resource Paging](https://awesome-repositories.com/f/operating-systems-systems-programming/kernel-core-internals/process-and-memory-management/memory-management/allocation-strategies/dynamic-memory-allocation/gpu-memory-allocators/resource-paging.md) — Manages allocation and movement of textures and buffers between system and video memory.

### Graphics & Multimedia

- [Graphics API Translators](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-apis-bindings/graphics-rendering-apis/graphics-api-translators.md) — Translates legacy Direct3D instructions into modern Vulkan API calls for cross-platform compatibility.
- [Legacy Compatibility Layers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/vector-rendering-pipelines/vector-graphics-renderers/legacy-compatibility-layers.md) — Enables Windows-based graphics applications to run on non-Windows operating systems by mapping legacy instructions to modern hardware.
- [Cross-Platform Graphics Tooling](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/rendering/graphics-apis-bindings/cross-platform-graphics-tooling.md) — Enables high-fidelity graphics applications to run on alternative operating systems by mapping specialized hardware features.
- [Cross-Platform Shader Compilers](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/shaders/cross-platform-shader-compilers.md) — Compiles graphics shaders in the background using worker threads to prevent runtime stuttering. ([source](https://github.com/doitsujin/dxvk/wiki/Developer-guidelines))
- [Asynchronous Compilation](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering/shaders/shader-cross-compilation-pipelines/asynchronous-compilation.md) — Compiles graphics shaders in background threads to prevent runtime stuttering.
- [Multithreaded Rendering Engines](https://awesome-repositories.com/f/graphics-multimedia/multithreaded-rendering-engines.md) — Processes deferred graphics command lists across multiple threads to reduce CPU bottlenecks and minimize render latency. ([source](https://github.com/doitsujin/dxvk/wiki/Developer-guidelines))
- [Graphics Engines and Rendering](https://awesome-repositories.com/f/graphics-multimedia/graphics-engines-rendering.md) — Traces and logs graphics API calls to identify rendering errors and analyze performance bottlenecks.

### User Interface & Experience

- [Vulkan](https://awesome-repositories.com/f/user-interface-experience/performance-optimizers/vulkan.md) — Improves frame consistency and reduces stuttering through multithreaded shader compilation and efficient video memory management.
- [Graphics Performance Optimizations](https://awesome-repositories.com/f/user-interface-experience/performance-optimizers/graphics-performance-optimizations.md) — Applies specialized hardware extensions to reduce shader compilation stutter and improve frame latency. ([source](https://github.com/doitsujin/dxvk/wiki/Driver-support))
- [Frame Execution and Synchronization](https://awesome-repositories.com/f/user-interface-experience/animation-and-motion-systems/configuration-utility-helpers/animation-configuration/frame-execution-synchronization.md) — Synchronizes display presentation using waitable swap chains to ensure consistent frame timing. ([source](https://github.com/doitsujin/dxvk/wiki/Developer-guidelines))
- [Waitable Swap Chains](https://awesome-repositories.com/f/user-interface-experience/animation-and-motion-systems/configuration-utility-helpers/animation-configuration/frame-execution-synchronization/waitable-swap-chains.md) — Coordinates frame presentation between application and display hardware to ensure consistent timing.

### Game Development

- [Deferred Command Encoders](https://awesome-repositories.com/f/game-development/engine-architecture/command-buffers/deferred-command-encoders.md) — Buffers graphics commands across multiple threads to improve rendering throughput.

### Software Engineering & Architecture

- [Graphics Call Interceptors](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/dynamic-library-loaders/graphics-call-interceptors.md) — Hooks into runtime execution to capture and log command sequences for debugging rendering errors.

### System Administration & Monitoring

- [Graphics API Tracing](https://awesome-repositories.com/f/system-administration-monitoring/graphics-hardware-monitors/graphics-call-profilers/graphics-api-tracing.md) — Records sequences of graphics commands by intercepting execution calls to generate detailed logs. ([source](https://github.com/doitsujin/dxvk/wiki/Using-Apitrace))
