Prerequisites
You can prevent weird errors and glitches caused by unfinished wine libs by installing the original d3dcompiler_43.dll and d3dx9_24.dll - d3dx9_43.dll
Requirements
- xorg-server >= 1.16
- libxcb & xcb-proto >= 1.11 (only exception is Debian, where is 1.10 enough)
- To use the DRI3 backend, xf86-video-nouveau >= 1.0.11 (for nVidia cards), xf86-video-ati >= 7.6.0 (for AMD Radeon cards), xf86-video-intel >= 2.99.916 (for Intel cards, recently disabled DRI3 in development git, must be reenabled)
- To use the DRI2 fallback (slower but avoid DRI3 potential issues with GL): mesa compiled with –egl-platforms=drm,x11
- mesa >= 10.4 with parameter –enable-nine
Why is DRI3 recommended?
The Direct3D 9 architecture matches closer to the DRI3/Present model, thus why we choosed to base on it for our implementation. However we implemented a DRI2/Present fallback, which emulates DRI3 with a buffer copy, to be used when DRI3 is unavailable (due to bugs in DRI3 GL stack, DRI2 is preferred by distributions).
Build
- http://cgit.freedesktop.org/mesa/mesa (master or any branch above 10.4)
- https://github.com/iXit/Mesa-3D/ (staging & testing branches)
- master branch (follow Mesa-3D master branch)
- hacks branch (follow iXit master branch, including various hacks [mostly nouveau])
Currently, wine must be compiled from special repository or must be patched.
- https://github.com/iXit/wine (master branch)
Some patches can be found at http://download.ixit.cz/d3d9/ (not necessarily up-to-date)
Here: https://github.com/sarnex/wine-d3d9-patches is also maintained a patch to apply to the last version of wine
You should build mesa as usual, only add
./configure --enable-nine
For the wine build, you'll need to have Mesa with Nine already. Then, simply pass
./configure --with-d3dadapter
Note: If you are cross-compiling, you will need to set PKG_CONFIG_PATH to point to the correct-architecture d3d.pc
You do not need to specify if you are going to use the DRI3 backend or the DRI2 fallback. At runtime it'll detect the one available (with a preference for DRI3).
Prepared packages
LiveCD:
maintainer: pontostroy
Ubuntu/Kubuntu/Mint:
- wine (dri3 and dri2) https://launchpad.net/~commendsarnex/+archive/ubuntu/winedri3
- Mesa-3D (dri3) and DDX https://launchpad.net/~oibaf/+archive/ubuntu/graphics-drivers
maintainers: oibaf (Mesa-3D), sarnex (wine)
Arch Linux:
- Mesa is available in [extra] and development versions are available in the AUR under mesa-git.
- wine-staging-d3dadapter is available in the AUR.
- PlayOnLinux also has up-to-date versions of wine with –d3dadapter.
- More info available at https://wiki.archlinux.org/index.php/Unofficial_user_repositories#mesa-git
openSUSE:
- Mesa-3D (git), Wine (iXit), LLVM, libdrm http://download.opensuse.org/repositories/home:/pontostroy:/X11/
- Mesa-3D Debug (iXit), Wine Debug (iXit) http://download.opensuse.org/repositories/home:/pontostroy:/gallium-nine/
- Mesa-3D (stable) http://download.opensuse.org/repositories/X11:/XOrg/
maintainer: pontostroy
Gentoo:
- xorg-server and other deps are in ::x11 overlay
- Mesa-3D with +d3d9
- Wine with +d3d9
maintainer: okias (Mesa-3D), NP-Hardass/Sarnex (wine)
Is your favorite distribution missing? Prepare packages and let us know on IRC! We'll add it to the list!