This is an old revision of the document!


Gallium D3D9 state tracker know also as gallium-nine or "d3d9 st".

Consist from two parts

  • Mesa libd3dadapter library
  • Wine dlls (d3d9.dll.so, gdi32.dll.so, user32.dll.so, wineps.drv.so and winex11.drv.so)

At this moment, must be compiled both mesa and wine from special repos or has to be patched. Correct way it's build mesa and wine from git repositories, placed here

You should build mesa as usual, only change is passing

--enable-nine

. For wine build, only thing you'll need is already builded mesa with enabled nine.

When you got this working, run

regedit

go to

HKCU->Software->Wine->Direct3D

and create DWORD named UseNative. Set value to 1 for enable, 0 to disable.

As first thing, you may want try run wine/dlls/d3d9/tests and see what pass.

Also if you want see CPU load and FPS, export GALLIUM_HUD=“cpu0+cpu1+cpu2+cpu3;fps” (for 4 core configuration)

Roadmap

  • (1) Pass the tests (dlls/d3d9/tests)
  • (2) have an idea how to handle later d3d10 and d3d11
  • (3) Prove that d3d9 state tracker can be faster than translation d3d9 → opengl.
  • (4) Handle applications that do opengl and d3d on the same window.
  • (5) Have an interface between wine and mesa that allows independent updates of mesa and wine

Also check other wiki pages as: