(git master 73b46136b0ba20f7f84abdadad895111a4c37166) I've built Mesa with the following configuration: ./autogen.sh --enable-gles2 --disable-glx --with-dri-drivers= --enable-gallium-egl --with-egl-platforms=drm --with-gallium-drivers=i915 With this configuration, both a DRI driver and a Gallium driver get built, despite the --with-dri-drivers= configure option (bug or intended?). Then I've built the 'es2gears' demo as follows: gcc -g -O0 -DMESA_EGL_NO_X11_HEADERS -o es2gears es2gears.c ../eglut/eglut_screen.c ../eglut/eglut.c -I../eglut -lGLESv2 -lEGL -lm When I tried to run it on an IBM T60 notebook (Debian testing), at first bug 75335 triggered. Now that this bug has been resolved, the following error occured: ----- EGL_VERSION = 1.4 (DRI2) EGLUT: failed to choose a config ----- When I deleted the DRI driver, the following error occured: ----- gbm: failed to open any driver (search paths /usr/local/lib/dri)failed to load driver: i915 gbm: failed to open any driver (search paths /usr/local/lib/dri)failed to load driver: i915 gbm: failed to open any driver (search paths /usr/local/lib/dri)failed to load driver: i915 EGLUT: failed to initialize EGL display ----- Apparently, the Gallium driver was not usable, too. Since bug 75335 got triggered by the missing DRM pipe loader, I tried to enable it with the following modification of configure.ac: ----- index ba158e8..feb025f 100644 --- a/configure.ac +++ b/configure.ac @@ -1748,6 +1748,7 @@ if test "x$with_gallium_drivers" != x; then xi915) HAVE_GALLIUM_I915=yes PKG_CHECK_MODULES([INTEL], [libdrm_intel >= $LIBDRM_INTEL_REQUIRED]) + gallium_require_drm_loader GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS i915 softpipe" if test "x$MESA_LLVM" = x1; then GALLIUM_DRIVERS_DIRS="$GALLIUM_DRIVERS_DIRS llvmpipe" ----- With that, the demo finally worked: ----- EGL_VERSION = 1.4 (Gallium) Found 6 modes: 0: 1400 x 1050 1: 1400 x 1050 2: 1280 x 1024 3: 1024 x 768 4: 800 x 600 5: 640 x 480 Will use screen size: 1400 x 1050 vertex shader info: fragment shader info: info: 724 frames in 5.0 seconds = 144.713 FPS ----- So it seems that the DRM pipe loader should get enabled by default for the i915/DRM Gallium configuration, but I'm not sure if the modification I made would break some other configuration.
Two distinct things happening here - I've assumed that string as "" is considered of length zero, thus an empty dri megadriver is built. - gallium_require_drm_loader is missing for the i915, r300 and possibly svga gallium drivers. Will send patches for both shortly
* Correction: a white space only, including an empty string ("") is considered as of both zero and non zero size according test ...
Ah, that's interesting. Actually, the "DRI driver" I meant was the 'i915_dri.so' file, which got created from these components: - libdricommon.a - libmesagallium.a - libgallium.a - libdridrm.a - libi915drm.a - libwsw.a - libsoftpipe.a - libgalahad.a - libtrace.a - librbug.a - libi915.a The Makefile for this library is located in src/gallium/targets/dri-i915. But you're right, there also apppeared a 'mesa_dri_drivers.so' in the build log, which doesn't appear anymore with your four patches applied. I also remember having seen an 'i915_dri.so' file linked to 'mesa_dri_drivers.so' with another configuration. So, there appear to be two ways to get this 'i915_dri.so' file built and one of them is actually a Gallium driver? I'm confused now.
(In reply to comment #3) > Ah, that's interesting. Actually, the "DRI driver" I meant was the > 'i915_dri.so' file, which got created from these components: > Classic mesa can produce only DRI drivers, whereas gallium can do alot more - dri, vdpau, xvmc, omx, opencl... > - libdricommon.a > - libmesagallium.a > - libgallium.a > - libdridrm.a > - libi915drm.a > - libwsw.a > - libsoftpipe.a > - libgalahad.a > - libtrace.a > - librbug.a > - libi915.a > > The Makefile for this library is located in src/gallium/targets/dri-i915. > > But you're right, there also apppeared a 'mesa_dri_drivers.so' in the build > log, which doesn't appear anymore with your four patches applied. I also > remember having seen an 'i915_dri.so' file linked to 'mesa_dri_drivers.so' > with another configuration. > Currently only classic dri drivers build into megadriver (mesa_dri_drivers.so) > So, there appear to be two ways to get this 'i915_dri.so' file built and one > of them is actually a Gallium driver? I'm confused now. Same hardware, different drivers developed via different infrastructure by different teams. Is it that confusing :P Named in the same way so that people can simply make install, and things just work(tm). If you're building both, then you need to keep an eye open to install the one you want. Simples :-) FWIW the build should be fine now, thanks for the report. commit 4687b0a1a7280a7f19e349aa6b00ee1c0f634b21 Author: Emil Velikov <emil.l.velikov@gmail.com> Date: Mon Feb 24 22:58:13 2014 +0000 configure: enable the drm pipe-loader for non swrast drivers All hardware drivers including the virtual vmwgfx require the drm pipe-loader in order to be properly loaded by xa, gbm and opencl. Note this does _not_ add support for the above three it only allows the pipe driver to be loaded by the library. Eg. GBM will now properly open the pipe-i915 driver, should one be working on the such hardware.
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.