Hi,
I am here on Ubuntu/precise AMD64.
With the attached scripts I can't use a i965_dri.so for example from gles3 GIT tree.
First, I have built libdrm-2.4.41, installed and ldconfig-ed it before building mesa.
I have chosen a classic XORG prefix!
[ /etc/ld.so.conf.d/xorg.conf ]
# Xorg lib configuration /opt/xorg/lib
For the build of mesa I have suppressed generating any GALLIUM driver as there exists AFAICS none for the Intel sandy-bridge GPU. But I am building the i965 classic MESA/DRI driver!
[ build_mesa.sh ] ... DRI_DRIVERS="i965" GALLIUM_DRIVERS="" ... DRI_CFG_OPTS="--with-dri-drivers=$DRI_DRIVERS" GALLIUM_CFG_OPTS="--with-gallium-drivers=$GALLIUM_DRIVERS" ... [ /build_mesa.sh ]
For the build of mesa I have these EXPORTS (Thanks Peter [1]):
### Set prefix for XORG installation PREFIX="/opt/xorg"
### Export some useful XORG settings export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig" export LD_LIBRARY_PATH="$PREFIX/lib" export LDFLAGS="-L$PREFIX/lib" export PATH="$PREFIX/bin:$PATH"
NOTE: I have thrown away any development packages like libdrm-dev which could have caused PKGCONFIG troubles.
When I am checking the OPENGL version, I get this:
$ LIBGL_DEBUG=verbose LIBGL_DRIVERS_PATH=/opt/xorg/lib/dri glxinfo | grep -i opengl libGL: OpenDriver: trying /opt/xorg/lib/dri/tls/i965_dri.so libGL: OpenDriver: trying /opt/xorg/lib/dri/i965_dri.so libGL error: dlopen /opt/xorg/lib/dri/i965_dri.so failed (/opt/xorg/lib/dri/i965_dri.so: undefined symbol: drm_intel_gem_context_create) <--- THIS IS DEFINED IN NEW LIBDRM! libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL: OpenDriver: trying /opt/xorg/lib/dri/tls/swrast_dri.so libGL: OpenDriver: trying /opt/xorg/lib/dri/swrast_dri.so libGL error: dlopen /opt/xorg/lib/dri/swrast_dri.so failed (/opt/xorg/lib/dri/swrast_dri.so: cannot open shared object file: No such file or directory) libGL error: unable to load driver: swrast_dri.so libGL error: reverting to indirect rendering OpenGL vendor string: Tungsten Graphics, Inc OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile OpenGL version string: 1.4 (3.0 Mesa 8.0.4) <--- FALLBACK TO UBUNTUS ORIGINAL MESA! OpenGL extensions:
Investigating deeper with LDD:
$ sudo ldd /opt/xorg/lib/dri/i965_dri.so | egrep 'libdri|libdrm|libkm' libdricore9.0.1.so.1 => /opt/xorg/lib/libdricore9.0.1.so.1 (0x00007fe4a2f37000) libdrm_intel.so.1 => /usr/lib/x86_64-linux-gnu/libdrm_intel.so.1 (0x00007fe4a26ce000) libdrm.so.2 => /usr/lib/x86_64-linux-gnu/libdrm.so.2 (0x00007fe4a24c2000)
Investigating harder with nm:
$ nm /opt/xorg/lib/libdrm_intel.so | grep drm_intel_gem_context_create 0000000000009ab0 T drm_intel_gem_context_create
OK, so my NEW i965_dri.so was not built against NEW libdrm. But why the hell it is not?
Do I need to build a new DDX (xf86-video-intel), too? Or is other software missing?
/me -> CONFUSED as building mesa-8.0.5 with cherry-picked LLVM patches from upstream [2] worked here!
As a sidenote: I am building here with LLVM/CLANG v3.2 if this matters.
Any help appreciated!
Regards, - Sedat -
P.S.: When I am building swrast (llvmpipe) GALLIUM driver that works.
[1] http://who-t.blogspot.de/2009/04/my-workflow.html [2] http://lists.freedesktop.org/archives/dri-devel/2013-January/033614.html