====== Gallium Direct3D state tracker (gallium nine)====== **[[d3d9_faq|FAQ]] | [[d3d9_tutorial|Tutorials]] | [[d3d9_debugging|Debugging]] | [[d3d9_team|Team]] | [[d3d9_demos|Demos]] | [[https://gitlab.freedesktop.org/mesa/mesa/-/issues/?sort=created_date&state=opened&label_name[]=nine|Issues]] | [[https://github.com/iXit/Mesa-3D/issues|Issues (old)]] | [[d3d9_docs|Various docs]]** ==== News ==== //11/07/2022// beware that this documentation is for archive purpose mostly, see documentation on [[https://docs.mesa3d.org/gallium-nine.html|Mesa3D docs]] and [[https://github.com/iXit/wine-nine-standalone|Wine Nine Standalone]] //09/03/2019// new Intel cards are now supported by Gallium Nine **[[https://www.phoronix.com/scan.php?page=news_item&px=Intel-Iris-Working-Gallium-Nine|read more]]** //07/12/2016// Axel Davy presented improved internal multithreading for Nine! **[[https://lists.freedesktop.org/archives/mesa-dev/2016-December/137643.html|read more]]** //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 [[https://fosdem.org/2015/schedule/event/d3d9/attachments/slides/722/export/events/attachments/d3d9/slides/722/GalliumNineStatus.pdf|slides]]\\ //18/11/2014// **Nine/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!** {{ :gallium-nine.png?nolink|}} ==== 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 [[https://www.youtube.com/results?sp=EgIIBQ%253D%253D&q=gallium+nine|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 || {{ :chartgo.png?nolink&200|}} Generally also works better in CPU limited scenarios. If you want to watch development and talk about Direct3D, join us on [[irc://chat.freenode.net/d3d9|#d3d9]] on freenode.net. Channel logs are available [[http://people.freedesktop.org/~cbrill/dri-log/?channel=d3d9|here]]. The whole package needed to use native Direct3D 9 in wine consists of: * Mesa-3D library //(d3dadapter)// * Wine //(d3d9.dll.so, gdi32.dll.so, user32.dll.so, wineps.drv.so, winex11.drv.so and winecfg.exe.so)// ==== Usage ==== First, you need to allow native Direct3D 9 in wine! - Run **winecfg** - Select the **Staging** tab - 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 [[http://www.phoronix.com/scan.php?page=news_item&px=MTMzNTI|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) {{ :screen.png?nolink |}} ==== How can I help? ==== {{ :nine_code.png?nolink|}} This project is completly open source and **everyone can help** at least a little. Currently, we looking for * **Programmers with knowledge of: ** * the [[http://www.cprogramming.com/tutorial/c/lesson1.html|C language]], * [[http://legalizeadulthood.wordpress.com/the-direct3d-graphics-pipeline/|Direct3D]], or * Mesa-3D and/or [[http://gallium.readthedocs.org/en/latest/|Gallium]] * **Game testers** with: * The ability to write detailed bug reports, * Common Linux knowledge, and * Basic debugging skills * **Distribution packagers** * **Help desk / support** who can: * Provide a friendly approach to helping newbies * Motivate newbies to participate What we can offer? * A good feeling from improving code used by you and many others * Personal growth and improving your Linux knowledge * A friendly community (check out our IRC!) * Participating in interesting project * A good reference into your resume/CV