Modern games often let you choose between DirectX 12 and Vulkan in their graphics settings. Both are low-level APIs that give developers direct hardware access, but they have real differences in performance, driver overhead, and compatibility. Here’s what you need to know to make the right choice for your system.
What These APIs Actually Do
A graphics API is the layer between a game engine and your GPU. Older APIs like DirectX 11 and OpenGL handled a lot of work automatically — useful for developers but inefficient. DirectX 12 and Vulkan both expose GPU hardware more directly, enabling:
- Multi-threaded rendering: spread draw calls across CPU cores
- Async compute: run compute shader workloads in parallel with graphics
- Explicit memory management: developers control GPU memory allocation
- Reduced driver overhead: less CPU time spent in the driver layer
The result is better CPU utilization and more consistent frame times — but only if the game implements the API well.
DirectX 12
DirectX 12 (DX12) is Microsoft’s API, supported on Windows 10/11 only. It’s the default “modern API” for most AAA games on PC.
Strengths:
- Mature ecosystem — most Windows game developers target it
- DirectX Raytracing (DXR) is the standard for real-time ray tracing
- Mesh Shaders, Sampler Feedback, and VRS (Variable Rate Shading) all use DX12
- DirectStorage (loading game assets directly from NVMe to GPU) requires DX12
Best for: Windows gaming, AAA titles, ray tracing workloads
Vulkan
Vulkan is an open, cross-platform API maintained by the Khronos Group. It runs on Windows, Linux, Android, and macOS (via MoltenVK).
Strengths:
- Cross-platform — the same Vulkan code works on Linux and Windows
- Often has lower driver overhead than DX12 on AMD hardware
- Required for Linux gaming (Steam Deck, Proton translation layer)
- Excellent for games that need fine-grained performance control
Best for: Linux gaming, AMD GPUs in certain titles, emulators (RPCS3, Dolphin), Steam Deck
Performance Comparison by GPU Brand
NVIDIA
DirectX 12 typically performs as well as or better than Vulkan on NVIDIA GPUs. NVIDIA’s DX12 driver is highly optimized, and their ray tracing implementation (DXR) is best-in-class.
Exceptions: some games (Doom Eternal, Quake II RTX) run better under Vulkan on NVIDIA.
AMD
AMD GPUs often show stronger Vulkan performance. AMD’s RDNA architecture has mature Vulkan support, and their driver team invests heavily in Vulkan optimization. In titles like Doom Eternal, Red Dead Redemption 2, and Baldur’s Gate 3, Vulkan often wins by 5–15% on AMD.
Intel Arc
Intel Arc GPUs have historically struggled with DX11 but perform better under DX12 and Vulkan due to their hardware architecture. If you have an Arc GPU, always prefer DX12 or Vulkan.
How to Choose in Specific Games
Doom Eternal
- NVIDIA: DX12 ≈ Vulkan; slight Vulkan edge on older hardware
- AMD: Vulkan typically 10–15% faster
Red Dead Redemption 2
- AMD: Vulkan is noticeably faster
- NVIDIA: DX12 is usually better or equivalent
Cyberpunk 2077
- Use DX12 for ray tracing (full DXR feature set)
- Vulkan available but DX12 has more RT features
Baldur’s Gate 3
- Vulkan generally recommended — smoother frame pacing
Microsoft Flight Simulator 2024
- DX12 required for DirectStorage benefits
Checking for Shader Compilation Stutters
Both DX12 and Vulkan can stutter while shaders compile on first run. This is especially common with:
- DX12 PSO (Pipeline State Object) compilation
- Vulkan pipeline cache building
Solutions:
- In DX12 games: look for a “pre-compile shaders” option and run it before playing
- In Vulkan games: the first play-through builds the pipeline cache; subsequent runs are smoother
- NVIDIA: ReBAR + Shader Cache can reduce compilation stutters
- AMD: Mesa’s ACO compiler on Linux dramatically reduces Vulkan shader stutter
Testing Both APIs
The only reliable method is to benchmark both on your system:
- Open the game’s graphics settings, switch API, restart
- Run the built-in benchmark or use CapFrameX to capture a 2-minute gameplay session
- Compare: average FPS, 1% lows, 0.1% lows, and frame time graph
- Choose whichever has better 1% lows — smoother experience matters more than raw average
The best API for your system depends on your GPU brand, driver version, and the specific game. When in doubt, Vulkan for AMD, DX12 for NVIDIA, and always test both.