Post updated, the new question is now on my "own" answer down here.
I think about playing Team Fortress 2 on Kali Linux (a Debian Wheezy stable distribution with customized Debian Sid kernel) since a long time now, but couldn't because of the following graphical glitches:
- Bad dark textures
- Very low FPS
- Low brightness
- Green texture on training video
The solution after a lot of research was to compile a newer version of Mesa over 8.0.5. As today I found a very promising guide that was planned for Fedora, but someone managed to make it so in Debian:
http://dri.freedesktop.org/wiki/Building/ -> Official Guide
https://lists.debian.org/debian-x/2013/03/msg00014.html -> Wheezy way
But I'm now stuck at the make process, because no nouveau.h could be found on the system. So the question is:
Did anyone managed to overcome this nouveau.h missing file problem, then complete the full building or installation process ?
I have the same problem than: https://stackoverflow.com/questions/20827233/installing-mesa-10-on-debian, but since I use Mesa 9.0.3, I meet that problem instead of the libdrm-intel's one.
I have tried:
- Checking the missing file with updatedb + locate
- Checking if the file exists in any dependencies or packages in the repository
- Compile with Mesa 10.2.8, 10.1.6, 10.0.5, 9.2.5, 9.1.7 and 9.0.3
PS: It would be much better to have the latest Mesa 10.2.8, but I really don't want to compile any other intel, radeon or nouveau driver to make it work. If there is a way to make it so, I would switch to 10.2.8 immediately, knowing that it supports OpenGL 3.3 ! :D
Here's my computer:
- Core I5 with HD 3000 and GT 540M
- Kali Linux 1.0.9 updated
- Kernel 3.14 i686-pae with nvidia 331.67 kernel modules
- bumblebee-nvidia installed through wheezy-backports repository
My steps:
> # export CFLAGS="-m32"
> # export CXXFLAGS="-m32"
> # ./autogen.sh --enable-driglx-direct --enable-gles-overlay --enable-gles1 --enable-gles2 --enable-glx-tls --with-driver=dri --with-dri-driverdir=/usr/lib/dri --with-egl-platforms='drm x11' --with-state-trackers=egl,glx,dri,vega --with-dri-drivers=i965 --enable-32-bit --disable-64-bit --enable-gallium-llvm=disabled --enable-gallium-gbm=disabled --enable-gallium-egl=disabled --with-gallium-drivers= --build=i686-pc-linux-gnu
> # ./configure --prefix=/usr
> # make
And the make bug report:
Making all in nouveau
make[6]: Entering directory `/home/user/Data/Mesa-9.0.3/src/mesa/drivers/dri/nouveau'
CC nouveau_screen.lo
In file included from nouveau_screen.c:27:0:
nouveau_driver.h:41:28: fatal error: libdrm/nouveau.h: No such file or directory
compilation terminated.
make[6]: *** [nouveau_screen.lo] Error 1
make[6]: Leaving directory `/home/user/Data/Mesa-9.0.3/src/mesa/drivers/dri/nouveau'
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory `/home/user/Data/Mesa-9.0.3/src/mesa/drivers/dri'
make[4]: *** [all-recursive] Error 1
make[4]: Leaving directory `/home/user/Data/Mesa-9.0.3/src/mesa/drivers'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/home/user/Data/Mesa-9.0.3/src/mesa'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/user/Data/Mesa-9.0.3/src/mesa'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/user/Data/Mesa-9.0.3/src'
make: *** [all-recursive] Error 1
I gave up using Debian's libdrm implementation since it behaves differently than the official one's sources. Hence I still prefer using the previous way for Mesa 10.0.5 or newer since I won't have to compile a newer libdrm and keep more guaranteed stability.
I am facing now a new problem, the Mesa 10.0.5 I managed to compile -with libdrm 2.4.58- seems to not be in use while running glxheads since the it shows me:
GL_VERSION: 1.4 (2.1 Mesa 8.0.5)
Which is the Debian's stable own Mesa. I also found out that some people are also stuck on this problem: http://forums.linuxmint.com/viewtopic.php?f=190&p=696973
The question is: how to correctly compile libdrm and Mesa from the sources with the correct flags, exports and packages installation/uninstallation ?
It would really help if a related Debian maintainer could answer.
Here's my steps:
Common, installed packages and their implied dependencies by using Synaptic:
checkinstall
automake
bison
flex
libdrm-dev
libx11-xcb-dev
libxcb-glx0-dev
libxcb-xfixes0-dev
llvm
x11proto-dri2-dev
x11proto-gl-dev
xutils-dev
pkg-config
libltdl-dev
libxdamage-dev
libexpat1-dev
libpciaccess-dev
gettext
Common, manually installed packages:
For libdrm, from this package: http://dri.freedesktop.org/libdrm/libdrm-2.4.58.tar.gz:
# ./configure
# make
# checkinstall
For Mesa, from this package: ftp://ftp.freedesktop.org/pub/mesa/older-versions/10.x/10.0.5/MesaLib-10.0.5.zip:
# ./autogen.sh
# make
# checkinstall
# aptitude install mesa-utils
then as standard user:
$ export LD_PRELOAD=/usr/local/lib/libGL.so.1
$ export LIBGL_DRIVERS_PATH=/lib/dri
$ glxheads
Here's the two followed guides:
http://dri.freedesktop.org/wiki/Building/
http://verahill.blogspot.fr/2012/11/mesa-901-64-bit-on-debian-wheezy.html
I managed to go further this time, and almost using for good Mesa 10.0.5.
Now my steps for the Mesa 10.0.5 sources are:
# autoreconf -vfi
# ./configure --prefix=/usr --enable-driglx-direct --enable-gles1 --enable-gles2 --enable-glx-tls --with-dri-driverdir=/usr/lib/dri --with-egl-platforms='drm x11' --with-dri-drivers=i965
# make
# checkinstall
# export LIBGL_DRIVERS_PATH=/usr/lib/dri
# export LD_LIBRARY_PATH=/usr/lib
# export EGL_DRIVERS_PATH=/usr/lib
But the problem is that when I am using glxheads, it shows me that I am using Mesa 10.0.5, but that I only use OpenGL 2.1 instead of OpenGL 3.3. Furthermore, it's still very slow on Team Fortress 2, and every textures have an ugly grain effect, but no more green texture on training video.
The question is: How can I correctly make OpenGL 3.3 available for Mesa 10.0.5 and avoid the ugly-grain texture problem ?
Before:
GL_VERSION: 3.0 Mesa 8.0.5
GL_VENDOR: Tungsten Graphics, Inc
GL_RENDERER: Mesa DRI Intel(R) Sandybridge Mobile x86/MMX/SSE2
Now:
GL_VERSION: 2.1 Mesa 10.0.5
GL_VENDOR: VMware, Inc.
GL_RENDERER: Gallium 0.4 on llvmpipe (LLVM 3.0, 128 bits)
Despite the GL_VENDOR shows that it's VMware, I am doing everything bare-metal and not on a virtual machine.
Note that this time, I still naively compiled libdrm-2.4.58 like as said on the README file. And then compiled Mesa 10.0.5 without x11proto-dri3-dev, x11-proto-present-dev and inxi now.
Here's the guide I used in order to compile Mesa and, so far the best one: http://x.debian.net/howto/build-mesa.html