Home | History | Annotate | only in /external/mesa3d/src/gallium/state_trackers/nine
Up to higher level directory
NameDateSize
.editorconfig21-Aug-201847
adapter9.c21-Aug-201846.4K
adapter9.h21-Aug-20185.4K
authenticatedchannel9.c21-Aug-20183K
authenticatedchannel9.h21-Aug-20182.7K
basetexture9.c21-Aug-201822.3K
basetexture9.h21-Aug-20185.2K
buffer9.c21-Aug-201816.1K
buffer9.h21-Aug-20184.5K
cryptosession9.c21-Aug-20184.2K
cryptosession9.h21-Aug-20183.5K
cubetexture9.c21-Aug-201812.2K
cubetexture9.h21-Aug-20183K
device9.c21-Aug-2018142.6K
device9.h21-Aug-201829.8K
device9ex.c21-Aug-201816.8K
device9ex.h21-Aug-20186.8K
device9video.c21-Aug-20182.6K
device9video.h21-Aug-20182.5K
guid.c21-Aug-20184.8K
guid.h21-Aug-20181.4K
indexbuffer9.c21-Aug-20184.3K
indexbuffer9.h21-Aug-20182.7K
iunknown.c21-Aug-20188.3K
iunknown.h21-Aug-20185K
Makefile.am21-Aug-2018265
Makefile.sources21-Aug-20181.4K
nine_buffer_upload.c21-Aug-20189.1K
nine_buffer_upload.h21-Aug-20182.2K
nine_csmt_helper.h21-Aug-201815.9K
nine_debug.c21-Aug-20185.5K
nine_debug.h21-Aug-20184.3K
nine_defines.h21-Aug-20182.7K
nine_dump.c21-Aug-201831.8K
nine_dump.h21-Aug-20181.4K
nine_ff.c21-Aug-201896.9K
nine_ff.h21-Aug-20183.3K
nine_flags.h21-Aug-2018298
nine_helpers.c21-Aug-20183.1K
nine_helpers.h21-Aug-20184.8K
nine_limits.h21-Aug-20188.6K
nine_lock.c21-Aug-2018104.5K
nine_lock.h21-Aug-20182.5K
nine_pdata.h21-Aug-2018822
nine_pipe.c21-Aug-201817K
nine_pipe.h21-Aug-201828.1K
nine_queue.c21-Aug-20187.3K
nine_queue.h21-Aug-20181.7K
nine_quirk.c21-Aug-20181.8K
nine_quirk.h21-Aug-20181.4K
nine_shader.c21-Aug-2018118K
nine_shader.h21-Aug-20186.5K
nine_state.c21-Aug-2018135.6K
nine_state.h21-Aug-201822.9K
nineexoverlayextension.c21-Aug-20182.2K
nineexoverlayextension.h21-Aug-20182.2K
pixelshader9.c21-Aug-20186.5K
pixelshader9.h21-Aug-20184K
query9.c21-Aug-201810.1K
query9.h21-Aug-20182.6K
README21-Aug-20183.1K
resource9.c21-Aug-20185.3K
resource9.h21-Aug-20182.6K
stateblock9.c21-Aug-201821.4K
stateblock9.h21-Aug-20182.2K
surface9.c21-Aug-201829.5K
surface9.h21-Aug-20185.5K
swapchain9.c21-Aug-201840.9K
swapchain9.h21-Aug-20185.1K
swapchain9ex.c21-Aug-20184.3K
swapchain9ex.h21-Aug-20182.4K
texture9.c21-Aug-201814.1K
texture9.h21-Aug-20182.7K
threadpool.c21-Aug-20185.2K
threadpool.h21-Aug-20182.1K
vertexbuffer9.c21-Aug-20183.9K
vertexbuffer9.h21-Aug-20182.6K
vertexdeclaration9.c21-Aug-201819.2K
vertexdeclaration9.h21-Aug-20183.3K
vertexshader9.c21-Aug-20188.5K
vertexshader9.h21-Aug-20184.3K
volume9.c21-Aug-201819.4K
volume9.h21-Aug-20183.6K
volumetexture9.c21-Aug-201810.2K
volumetexture9.h21-Aug-20182.8K

README

      1 Quickstart Guide
      2 
      3 *** Configure and build mesa
      4 CFLAGS="-m32" CXXFLAGS="-m32" ./autogen.sh --prefix=/usr \
      5  --with-gallium-drivers=nouveau,r600,swrast --enable-nine \
      6  --with-gallium-driver-dir="`pwd`/src/gallium/targets/pipe-loader/.libs" \
      7  --enable-debug --enable-texture-float --with-dri-drivers= --disable-dri \
      8  --disable-opengl --disable-egl --disable-vdpau --disable-xvmc --disable-gbm \
      9  --disable-gallium-llvm
     10 make
     11 
     12 *** Then we create some symlinks to mesa:
     13 ln -s "`pwd`/lib/gallium/libd3dadapter9.so.0.0.0" /usr/lib/
     14 ln -s "`pwd`/lib/gallium/libd3dadapter9.so.0" /usr/lib/
     15 ln -s "`pwd`/lib/gallium/libd3dadapter9.so" /usr/lib/
     16 ln -s "`pwd`/include/d3dadapter" /usr/include/
     17 
     18 *** Clone and build a patched wine
     19 git clone git (a] github.com:iXit/wine.git
     20 ./configure
     21 make
     22 
     23 *** And finally we create some symlinks to our patched wine files:
     24 for f in d3d9.dll gdi32.dll user32.dll wineps.drv winex11.drv;
     25 do
     26     mv /usr/lib/wine/$f.so /usr/lib/wine/$f.so.old
     27     ln -s "`pwd`/dlls/`basename -s .dll $f`/$f.so" /usr/lib/wine/
     28 done
     29 
     30 *** Activating it within wine
     31 regedit
     32 Navigate to HKCU\Software\Wine\Direct3D
     33 If it's not there, create it
     34 Create a new DWORD value called UseNative
     35 Set its value to 1
     36 
     37 Every Direct3D9 program will now try using nine before wined3d
     38 
     39 If you want to selectively enable it per-exe instead, use the key:
     40 HKCU\Software\Wine\AppDefaults\app.exe\Direct3D\UseNative
     41 where app.exe is the name of your .exe file
     42 
     43 
     44 *** HOW IT WORKS ***
     45 
     46 Nine implements the full IDirect3DDevice9 COM interface and a custom COM
     47 interface called ID3DAdapter9 which is used to implement a final IDirect3D9Ex
     48 COM interface.
     49 ID3DAdapter9 is completely devoid of window system code, meaning this can be
     50 provided by wine, Xlib, Wayland, etc. It's inadvisible to write a non-Windows
     51 backend though, as we don't want to encourage linux developers to use this API.
     52 
     53 The state tracker is compiled, along with pipe-loader, into a library called
     54 libd3dadapter9.so. This library loads pipe_[driver].so drivers on demand and
     55 exports a single symbol for getting a subsystem driver. Currently only DRM is
     56 supported.
     57 This library is then linked to the library implementing the IDirect3D9[Ex]
     58 interface and the actual Direct3D9 entry points (Direct3DCreate9[Ex])
     59 
     60 The implementation of IDirect3D9[Ex] lies within wine and coexists with
     61 wined3d. It's loaded on demand and so if it's not there, it doesn't have any
     62 drivers or something else is wrong, d3d9.dll will automatically revert to using
     63 wined3d.
     64 Whether or not it's even tried is determined by 2 DWORD registry keys.
     65 > HKCU\Software\Wine\Direct3D\UseNative
     66 > HKCU\Software\Wine\AppDefaults\app.exe\Direct3D\UseNative
     67 The former is the global on-switch. The latter is per-exe.
     68 
     69 The driver search path can be set at configure time with
     70 --with-gallium-driver-dir and overridden at runtime with D3D9_DRIVERS_PATH.
     71 Debugging information can be gotten with the WINEDEBUG channels d3d9 and
     72 d3dadapter, and state_tracker debug information can be gotten with NINE_DEBUG.
     73 Help on NINE_DEBUG is shown through NINE_DEBUG=help
     74 
     75 Finally, the ID3DPresent[Group] and ID3DAdapter9 interfaces are not set in
     76 stone, so feel free to hack on those as well as st/nine.
     77 
     78 Happy Hacking!
     79