Skip to main content
Windows games communicate with the GPU through Microsoft’s Direct3D API (part of DirectX). Android hardware has no native Direct3D support, so Winlator uses translation libraries — called DirectX wrappers — to convert those API calls into Vulkan or OpenGL commands that Mesa drivers can execute.
Windows game
    ↓  Direct3D 8 / 9 / 10 / 11 / 12 calls
DX wrapper (DXVK / VKD3D / WineD3D / D8VK / CNC DDraw)
    ↓  Vulkan or OpenGL
Mesa driver (Turnip / VirGL / Zink)

Android GPU
The wrapper is selected per container. The default is DXVK (DEFAULT_DXWRAPPER = "dxvk").

Available wrappers

DXVK translates Direct3D 9, 10, and 11 to Vulkan. It is the best-performing wrapper for the majority of modern and semi-modern Windows games.Supported DirectX versions: D3D9, D3D10, D3D11 Backend: Vulkan Available versions: 0.96, 1.4.2, 1.7.2, 2.2, 2.3.1, 2.5.2, 2.6.1
DXVK requires a Vulkan-capable driver. Use it with Turnip on Adreno devices, or with Zink on other Vulkan-capable GPUs.
DXVK has its own configuration system. Tap the DXVK config button in the container settings (backed by DXVKConfigDialog) to set options such as:
  • Frame rate limiter (dxvk.maxFrameRate)
  • HUD overlay elements (dxvk.hud)
  • Async shader compilation (dxvk.enableAsync)
  • State cache behaviour
The configuration is stored in the container’s dxwrapperConfig field as a key-value string.

Comparison table

WrapperDirectX versionsBackendPerformanceBest use case
DXVKD3D9, D3D10, D3D11VulkanHighMost modern and mid-era games
VKD3DD3D12VulkanMedium–HighDX12 games
WineD3DD3D8–D3D11OpenGLLow–MediumCompatibility fallback
D8VKD3D8VulkanHighEarly-2000s 3D games
CNC DDrawDirectDraw, D3D1–7OpenGLMedium1990s RTS and 2D games

Choosing a wrapper

Use DXVK. Most games from this era target D3D9 or D3D11. DXVK’s Vulkan backend delivers the best frame rates with Turnip on Adreno devices.
Use VKD3D. Select the latest available version (2.14.1) and pair with Turnip 25.0.0 on Adreno hardware.
Use D8VK. D8VK covers the DX8 API that DXVK does not handle.
Use CNC DDraw. It correctly handles the blitting and palette operations that DirectDraw games rely on.
Try WineD3D as a fallback. While slower, it has broader per-game compatibility because it goes through Wine’s software implementation rather than a Vulkan translation layer.
Use WineD3D (backed by OpenGL via VirGL) if your GPU does not support Vulkan. CNC DDraw is also available for legacy titles.

Installable components

DXVK, VKD3D, WineD3D, Box64, and Turnip can be installed as optional components from the Winlator in-app component manager. The available packages are stored in the installable_components/ directory:
installable_components/
├── dxvk/
│   ├── dxvk-0.96.tzst
│   ├── dxvk-1.4.2.tzst
│   ├── dxvk-1.7.2.tzst
│   ├── dxvk-2.2.tzst
│   ├── dxvk-2.3.1.tzst
│   ├── dxvk-2.5.2.tzst
│   └── dxvk-2.6.1.tzst
├── vkd3d/
│   ├── vkd3d-2.12.tzst
│   └── vkd3d-2.14.1.tzst
├── wined3d/
│   ├── wined3d-4.21.tzst
│   ├── wined3d-7.8.tzst
│   └── wined3d-10.0.tzst
├── box64/
│   ├── box64-0.3.3.tzst
│   ├── box64-0.3.5.tzst
│   └── box64-0.3.7.tzst
└── turnip/
    ├── turnip-24.1.0.tzst
    └── turnip-25.0.0.tzst
Older DXVK versions (0.96, 1.4.2, 1.7.2) can improve compatibility with games that have issues on newer DXVK builds. Box64 and Turnip installable components let you update or downgrade these layers independently of the main app.

Configuring DXVK

1

Open container settings

Long-press the container and select Edit.
2

Select DXVK as the wrapper

Set DX wrapper to DXVK.
3

Open the DXVK config dialog

Tap the DXVK config button to open the configuration editor. Settings are stored in the container’s dxwrapperConfig field.
4

Adjust settings for your game

Common adjustments include enabling async shader compilation to reduce stutter, or setting a frame-rate cap.
Changing the DX wrapper after installing a game may require you to reinstall or reconfigure the game. DirectX runtime DLLs are written into the Wine prefix when the game is installed; switching wrappers may leave stale DLLs in place. If you encounter issues after switching, consider re-running the game’s installer.

Build docs developers (and LLMs) love