Gallium Direct3D state tracker (gallium nine)

News

05/04/2015 xf86-video-ati upstream now has full DRI3 and Present support! We recommend radeon users to use this.01/02/2015 Talk at FOSDEM on Nine status slides

18/11/2014Nine/st got into upstream Mesa-3D! I'd like to thank everyone for their hard work on coding, buildsystem, testing and helping new users! Thank you guys!

Project Information

Why exist Gallium Nine project? Because we want see happy Linux users which can enjoy games designed for Windows DX9 at full resolution and details getting maximum performance, which can hardware provide!

How we achieve this goal? By skipping all bottlenecks on way, not doing expensive rewrite native D3D9 calls into OpenGL (which classic wine does), but directly feeding your graphic card (GPU) with D3D9 calls without ugly conversion to OpenGL!

What can you get by installing Gallium Nine enabled Wine? The answer is simple - best performance (feel free to check youtube to watch our happy users gameplays).

We build our technology a top of the Gallium framework which is part of the Mesa-3D library. It allows us to expose Direct3D 9 support!

Faster than Windows?

Game

Portal

cpu: Intel i5-3210M @ 2.50GHz; gpu: AMD HD 7730M

60 fps

Ubuntu 14.10 - Native

63 fps

Arch Linux* - wine

85 fps

Windows 7

89 fps

Arch Linux* - wine with Nine support

* Arch Linux with llvm SI scheduler + dma copy enabling patch

Generally also works better in CPU limited scenarios.

If you want to watch development and talk about Direct3D, join us on #d3d9 on freenode.net. Channel logs are available here.

The whole package needed to use native Direct3D 9 in wine consists of:

Usage

In the Staging Settings group select Enable Gallium Nine for better D3D9 performance

If the Staging tab or Staging Settings group is missing, you do not have the patched Wine!

Now you may want to try your favorite game!

If you want see CPU load and FPS, use Gallium HUD.
It provides part of Fraps' functionality, known from Windows. (for 4 core configurations)

export GALLIUM_HUD="cpu0+cpu1+cpu2+cpu3;fps"

Installation troubleshooting

Try to run a simple DX9 application from terminal and check the logs. You should see something very similiar to this image below. If you see:

Native Direct3D 9 is active.(green), then everything should be fine,

Native Direct3D 9 is disabled.(orange), enabling D3D9 acceleration is described in Usage section

Native Direct3D 9 will be unavailable.(red) - read the error printed above this message. Probably your Mesa is miscompiled or different error occurred.

Wine source code has been compiled without native Direct3D 9 support.(red) means that you didn't have Mesa with Nine support at wine compilation time and you forgot to pass –enable-d3dadapter9 to the wine configuration (re-read Build section)

How can I help?

This project is completly open source and everyone can help at least a little.
Currently, we looking for