Skip to main content
Winlator routes graphics through a layered stack: your Android GPU is exposed to Wine via a Mesa driver, which translates OpenGL or Vulkan calls from Windows applications into commands your hardware can execute.
Three Mesa drivers are available. The default is Turnip (DEFAULT_GRAPHICS_DRIVER = "turnip"), which is the best choice for Qualcomm Adreno devices.

Available drivers

Turnip is the open-source Vulkan driver for Qualcomm Adreno GPUs, developed as part of Mesa. It runs natively on the GPU, bypassing Android’s proprietary graphics stack entirely, and delivers the highest performance of the three options.Best for: Snapdragon devices (Adreno 6xx and later)
Turnip only works on Qualcomm Adreno GPUs. Attempting to use it on Mali, Immortalis, or other GPU families will cause the environment to fail to start.
Winlator automatically detects Adreno 6xx hardware using the GPUInformation.isAdreno6xx() method and defaults to Turnip for those devices. On unrecognised hardware, fall back to VirGL.Key characteristics:
  • Native Vulkan 1.3 support
  • Lowest driver overhead
  • Required for DXVK and VKD3D at full performance
  • Installable versions: turnip-24.1.0, turnip-25.0.0 (available via the in-app component manager)
Useful environment variables for Turnip:

Choosing a driver

Qualcomm Snapdragon

Use Turnip. It provides native Vulkan and delivers the best gaming performance on Adreno GPUs.

ARM Mali / Immortalis

Use VirGL first. If performance is poor and your GPU supports Vulkan, try Zink.

Other / unknown GPU

Start with VirGL for the broadest compatibility. Switch to Zink only if your GPU has Vulkan support.

Legacy / old games

Any driver works. Pair with WineD3D or CNC DDraw and add MESA_EXTENSION_MAX_YEAR=2003 to restrict Mesa extensions to those available before 2003.

Default environment variables

Every new container is created with these environment variables pre-configured (Container.DEFAULT_ENV_VARS):
You can edit these in the container’s Environment variables field. Variables that do not apply to the selected driver are silently ignored by Mesa.
If a game was made before 2004, add MESA_EXTENSION_MAX_YEAR=2003 to the container’s environment variables. This prevents Mesa from advertising extensions that did not exist when the game was written, which can resolve compatibility issues with older OpenGL-based games.

FPS counter

Enable the Show FPS toggle in the container settings to display a real-time frames-per-second overlay while a Windows application is running. This uses the showFPS field on the container object.

Changing the driver

1

Open container settings

Long-press the container on the main screen and select Edit.
2

Select the Graphics driver

Tap the Graphics driver field and choose Turnip, VirGL, or Zink.
3

Adjust environment variables

Review the Environment variables field. Remove driver-specific variables that no longer apply (for example, remove TU_DEBUG when switching away from Turnip).
4

Save and restart

Save the container and relaunch your application. Shader caches may need to be rebuilt, so expect slower first-launch performance after switching drivers.