[Mesa-dev] Mesa build fails with xlib/egl

Lionel Landwerlin llandwerlin at gmail.com
Sat Jul 10 10:18:25 PDT 2010


Le mardi 06 juillet 2010 à 16:00 +0800, Chia-I Wu a écrit :
> On Tue, Jul 6, 2010 at 4:39 AM, Lionel Landwerlin <llandwerlin at gmail.com> wrote:
> > I'm trying to build the last Mesa 7.8.2 on top of an Xlib stack.
> > What I need, is a software implementation of GLES 2.0 with EGL.
> > This is how I configure Mesa :
> >
> > ./configure --disable-glu --disable-glw --disable-glut --with-driver=xlib --with-state-trackers=es,egl --disable-gallium-svga --disable-gallium-intel --disable-gallium-radeon --disable-gallium-nouveau --disable-gallium-swrast --with-demos=no
> >
> > Unfortunaltly the build fails near from the end with this error :
> >
> > ...
> >
> > mklib: Making Linux shared library:  libGLESv2.so.2.0.0
> > mklib: Installing libGLESv2.so.2.0.0 libGLESv2.so.2 libGLESv2.so in ../../../../lib64
> > make[4]: quittant le répertoire « /home/djdeath/tmp/pace-xorg/mesa-7.8.2/src/gallium/state_trackers/es »
> > make[4]: entrant dans le répertoire « /home/djdeath/tmp/pace-xorg/mesa-7.8.2/src/gallium/state_trackers/egl »
> > rm -f depend
> > touch depend
> > /usr/bin/makedepend -fdepend -I/usr/lib/gcc/x86_64-linux-gnu/4.4.4/include -I/usr/lib/gcc/x86_64-linux-gnu/4.4.4/include-fixed -I. -I../../../../src/gallium/include -I../../../../src/gallium/auxiliary -I../../../../src/egl/main -I../../../../include -I../../../../src/gallium/drivers -I../../../../src/glx -I../../../../src/mesa  -I/opt/pace-xorg/include/libdrm   -I/opt/pace-xorg/include/libdrm   common/egl_g3d.c common/egl_g3d_image.c common/egl_st.c x11/glxinit.c x11/native_dri2.c x11/native_x11.c x11/native_ximage.c x11/sw_winsys.c x11/x11_screen.c ../../../../src/glx/dri2.c kms/native_kms.c 2> /dev/null
> > make[4]: quittant le répertoire « /home/djdeath/tmp/pace-xorg/mesa-7.8.2/src/gallium/state_trackers/egl »
> > make[4]: entrant dans le répertoire « /home/djdeath/tmp/pace-xorg/mesa-7.8.2/src/gallium/state_trackers/egl »
> > gcc -c -I. -I../../../../src/gallium/include -I../../../../src/gallium/auxiliary -I../../../../src/egl/main -I../../../../include -I../../../../src/gallium/drivers -I../../../../src/glx -I../../../../src/mesa  -I/opt/pace-xorg/include/libdrm   -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN -DUSE_XSHM -g -O2 -Wall -Wmissing-prototypes -std=c99 -ffast-math -fvisibility=hidden -fno-strict-aliasing  -fPIC  -DUSE_X86_64_ASM -D_GNU_SOURCE -DPTHREADS -DHAVE_POSIX_MEMALIGN -DUSE_XSHM x11/glxinit.c -o x11/glxinit.o
> > x11/glxinit.c:56: warning: no previous prototype for ‘__glXFindDisplay’
> > x11/glxinit.c: In function ‘AllocAndFetchScreenConfigs’:
> > x11/glxinit.c:608: error: ‘__GLXscreenConfigs’ has no member named ‘scr’
> > x11/glxinit.c:609: error: ‘__GLXscreenConfigs’ has no member named ‘dpy’
> > make[4]: *** [x11/glxinit.o] Erreur 1
> > make[4]: quittant le répertoire « /home/djdeath/tmp/pace-xorg/mesa-7.8.2/src/gallium/state_trackers/egl »
> > make[3]: *** [subdirs] Erreur 1
> > make[3]: quittant le répertoire « /home/djdeath/tmp/pace-xorg/mesa-7.8.2/src/gallium/state_trackers »
> > make[2]: *** [default] Erreur 1
> > make[2]: quittant le répertoire « /home/djdeath/tmp/pace-xorg/mesa-7.8.2/src/gallium »
> > make[1]: *** [subdirs] Erreur 1
> > make[1]: quittant le répertoire « /home/djdeath/tmp/pace-xorg/mesa-7.8.2/src »
> > make: *** [default] Erreur 1
> >
> > Maybe all of this is the result of a misconfiguration on my side, so any
> > help on this problem is welcome.
> Thanks for reporting.  The code wrongly expects GLX_DIRECT_RENDERING to be
> always defined.  It should have been fixed in git.
> 
> If you use the tarball, you should be able to workaround the bug by passing
> --with-driver=dri --with-dri-drivers="".  Incidentally, you also need
> --enable-gallium-swrast to enable software rasterizer for OpenGL ES.
> 

Hi Chia,

Thanks for your response, it worked well.

I have another question but first I think I need to give some context.

I'm trying to build an environment on my laptop which mimics what I'm
going to use on an embedded target. What I expect to find on my embedded
target is a closed source libGL (EGL + GLES2.0) which is bound to the
linux frame buffer interface as native system. Hopefully I will have
access to an SDK which permits to "repackage" the GL library so it will
use x11 as native system.
Also I'm planning to use an X11 compositor to render the different
applications which run on the system, and also I expect applications to
use OpenGL for whatever stuff they need.

In this scenario, I understand that everyone (including the xserver)
will use direct rendering (which means to me that no one is going to
forward its GL commands to the xserver, but maybe did I misunderstood
something).

So my question is, how do I build such a system ? To be precise, what
options should I give to the configure script of Mesa ?

Maybe am I wrong about this. Maybe indirect rendering will out perform
direct rendering in such configuration, so anyone comments/advices on
the subject are more than welcome.

Thanks again,

-- 
Lionel Landwerlin



More information about the mesa-dev mailing list