Created attachment 49679 [details] GDB backtrace Mesa crashes for me always with the same backtrace when I try to run a gles app. Tested with KWin 4.7.0 and glmark2-es2. I'm using an Intel Sandy Bridge GPU. Software: - Linux kernel 3.0.0 - Mesa 7.12-devel (git-0aed27e), using dri/i965 - xf86-video-intel git master 1b9e82b, no SNA - libdrm git master ce317a6 Attaching a backtrace.
The backtrace shows that you are using gbm. Did you intentionally configure Mesa with --enable-gbm? Please post the options you passed to autoconf. I am unsure if i965 currently supports gbm, so I'm CC'ing gbm's author, benjaminfranzke@googlemail.com.
I am compiling Mesa through Gentoo Portage that automates the process. But I don't see anything looking like enabling gbm in its scripts. Here are the options: ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --disable-option-checking --with-driver=dri --disable-glut --without-demos --enable-xcb --enable-debug --disable-g3dvl --disable-glw --disable-motif --enable-glx-tls --enable-asm --enable-shared-dricore --enable-shared-glapi --disable-vdpau --disable-xvmc --with-dri-drivers=,swrast,i965 --with-gallium-drivers= --enable-texture-float --enable-gles1 --enable-gles2 --enable-egl --disable-openvg --with-egl-platforms=drm,x11 --disable-gallium-egl
*** Bug 39649 has been marked as a duplicate of this bug. ***
Same problem here. Here's my configure options along with the output from it: ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib64 --disable-option-checking --with-driver=dri --disable-glut --without-demos --enable-xcb --disable-debug --enable-g3dvl --disable-glw --disable-motif --enable-glx-tls --enable-asm --disable-shared-dricore --enable-shared-glapi --enable-vdpau --enable-xvmc --with-dri-drivers=,swrast,r600 --with-gallium-drivers=,swrast,r600 --enable-texture-float --enable-gles1 --enable-gles2 --enable-egl --disable-openvg --with-egl-platforms=drm,x11 --enable-gallium-egl --with-state-trackers=glx,dri,egl --enable-gallium-llvm checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... none needed checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E checking for x86_64-pc-linux-gnu-gcc... (cached) x86_64-pc-linux-gnu-gcc checking whether we are using the GNU C compiler... (cached) yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... (cached) yes checking for x86_64-pc-linux-gnu-gcc option to accept ISO C89... (cached) none needed checking for x86_64-pc-linux-gnu-g++... x86_64-pc-linux-gnu-g++ checking whether we are using the GNU C++ compiler... yes checking whether x86_64-pc-linux-gnu-g++ accepts -g... yes checking for gmake... gmake checking for python2... python2 checking for makedepend... /usr/bin/makedepend checking for sed... /bin/sed checking for flex... /usr/bin/flex checking for bison... /usr/bin/bison checking for a BSD-compatible install... /usr/bin/install -c checking if compiling with clang... no checking whether gcc version is sufficient... yes checking for x86_64-pc-linux-gnu-pkg-config... no checking for pkg-config... /usr/bin/pkg-config checking pkg-config is at least version 0.9.0... yes checking whether x86_64-pc-linux-gnu-gcc supports -fvisibility=hidden... yes checking whether x86_64-pc-linux-gnu-g++ supports -fvisibility=hidden... yes configure: WARNING: Floating-point textures enabled. configure: WARNING: Please consult docs/patents.txt with your lawyer before building Mesa. checking whether to enable assembly... yes, x86_64 checking for x86_64-pc-linux-gnu-gcc option to produce PIC... -fPIC checking for dlopen... no checking for dlopen in -ldl... yes checking for posix_memalign... yes checking for LIBDRM... yes checking pkg-config files for X11 are available... yes checking for X11... yes checking for GLPROTO... yes checking for DRI2PROTO... yes checking for XF86VIDMODE... yes checking for DRIGL... yes checking expat.h usability... yes checking expat.h presence... yes checking for expat.h... yes checking for XML_ParserCreate in -lexpat... yes checking for LIBDRM_RADEON... yes checking for LIBUDEV... yes checking for LIBUDEV... yes checking for XCB_DRI2... yes checking for xcb_dri2_connect_alignment_pad in -lxcb-dri2... no checking for XVMC... yes checking for VDPAU... yes checking for llvm-config... /usr/bin/llvm-config configure: creating ./config.status config.status: creating configs/autoconf config.status: executing configs commands prefix: /usr exec_prefix: ${prefix} libdir: /usr/lib64 includedir: ${prefix}/include OpenGL: yes (ES1: yes ES2: yes) OpenVG: no OSMesa: no DRI drivers: swrast r600 DRI driver dir: ${libdir}/dri Shared dricore: no GLX: DRI-based Use XCB: yes GLU: yes GLw: no (Motif: no) EGL: yes EGL platforms: drm x11 EGL drivers: builtin:egl_glx builtin:egl_dri2 egl_gallium EGL Gallium STs: $(GL_LIB) llvm: yes llvm-config: /usr/bin/llvm-config llvm-version: 2.9 Gallium: yes Gallium dirs: auxiliary drivers state_trackers Target dirs: dri-r600 dri-swrast egl-static gbm vdpau-r600 vdpau-softpipe xvmc-r600 xvmc-softpipe Winsys dirs: g3dvl/dri r600/drm sw sw/dri sw/xlib Driver dirs: failover galahad identity llvmpipe noop r600 rbug softpipe trace Trackers dirs: dri egl gbm vdpau xorg/xvmc Shared libs: yes Static libs: no CFLAGS: -pipe -mssse3 -mtune=native -march=native -O2 -g -ffast-math -Wall -Wmissing-prototypes -std=c99 -ffast-math -fno-strict-aliasing -pipe -mssse3 -mtune=native -march=native -O2 -g -ffast-math -fPIC CXXFLAGS: -pipe -mssse3 -mtune=native -march=native -O2 -g -ffast-math -Wall -fno-strict-aliasing -pipe -mssse3 -mtune=native -march=native -O2 -g -ffast-math -fPIC Macros: -D_GNU_SOURCE -DPTHREADS -DTEXTURE_FLOAT_ENABLED -DHAVE_POSIX_MEMALIGN -DUSE_XCB -DGLX_INDIRECT_RENDERING -DGLX_DIRECT_RENDERING -DGLX_USE_TLS -DPTHREADS -DUSE_EXTERNAL_DXTN_LIB=1 -DIN_DRI_DRIVER -DHAVE_ALIAS -DHAVE_LIBUDEV -DHAVE_XCB_DRI2 -DXCB_DRI2_CONNECT_DEVICE_NAME_BROKEN -D__STDC_CONSTANT_MACROS -DUSE_X86_64_ASM PYTHON2: python2 Run 'gmake' to build Mesa
You may be using the classic driver. Try removing --with-dri-drivers=,swrast,r600 from your configure list to build only the gallium driver.
(In reply to comment #5) > You may be using the classic driver. Try removing > --with-dri-drivers=,swrast,r600 from your configure list to build only the > gallium driver. glxinfo | grep renderer OpenGL renderer string: Gallium 0.4 on AMD RV770
The bug only occurs with drm platform. With x11 everything should work fine. A workaround would be a) Setting EGL_PLATFORM=x11 b) Don't build drm platform, so that x11 is chosen by default. (--with-egl-platforms=x11 instead of --with-egl-platforms=drm,x11)
(In reply to comment #7) > The bug only occurs with drm platform. With x11 everything should work fine. > A workaround would be > a) Setting EGL_PLATFORM=x11 > b) Don't build drm platform, so that x11 is chosen by default. > (--with-egl-platforms=x11 instead of --with-egl-platforms=drm,x11) EGL_PLATFORM=x11 gets rid of the crash. Is is just me, or does this result in slow performance? Everything seems more sluggish now, even though KWin with GLES is supposed to be faster than with normal GL.
As mentioned before, this is a configuration problem. Currently we cannot automatically decide which egl backend should be used from of a EGLNativeDisplay (this is abit broken in egl), so we have to default to sth. We use the first entry in --with-egl-platforms=, or EGL_PLATFORM environment variable, to decide which backend to use. Today everyone will want x11 as the default, so use --with-egl-platforms=x11,drm instead (where drm is only really useful for wayland anyway). To answer some questions: - gbm is autoenabled when drm egl platform is choosen - i965 works with gbm, when an gbm_device is used as EGLNativeDisplay (not an x11 Display like here) Closing since this is not really a bug.
(In reply to comment #9) > As mentioned before, this is a configuration problem. > > Currently we cannot automatically decide which egl backend should be used from > of a EGLNativeDisplay (this is abit broken in egl), so we have to default to > sth. > We use the first entry in --with-egl-platforms=, or EGL_PLATFORM environment > variable, to decide which backend to use. Would it be possible to key the choice on existing environment variables? I thought Wayland had something that was the moral equivalent of X's DISPLAY. If DISPLAY is set, but the Wayland variable is not, then the EGL platform choice should default to X. Just a thought... If something isn't done, we'll have to continue spending time fielding these bug reports. That doesn't sound like a good use of anyone's time.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.