Running the wayland compositor used to give output including: libEGL debug: searching for pipe module nouveau libEGL debug: loaded /home/darxus/install/lib/egl/pipe_nouveau.so But now instead of saying it loaded pipe_nouveau.so, it says: libEGL warning: failed to create DRM screen Git commit 6a102074bb30e44273e999ee8cdd2afbfbc4e333 works (last before problem). Git commit 997f84ff4efb62779a19f6bd0441cbae1b7bad70 has this problem. I tried adding a bunch of prints to nouveau_drm_screen_create() in src/gallium/winsys/nouveau/drm/nouveau_drm_winsys.c, none of them printed.
From git://anongit.freedesktop.org/mesa/mesa
$ lspci | grep -i vga 01:00.0 VGA compatible controller: nVidia Corporation G98 [GeForce 9300 GE] (rev a1) Someone else replicated the problem with a nv94 card.
(In reply to comment #2) > $ lspci | grep -i vga > 01:00.0 VGA compatible controller: nVidia Corporation G98 [GeForce 9300 GE] > (rev a1) > > Someone else replicated the problem with a nv94 card. reproduct and confirm this problem with: 01:00.0 VGA compatible controller: nVidia Corporation G98 [GeForce 9300M GS] (rev a1)
I found, it's in src/gallium/target/egl/egl.c failed to dlopen("pipe_nouveaus.so", ...). Who know why dlopen() failed? Since all so files are there.
Looks like this was fixed in: commit 84ebd8e2d7b13cf43069a2b79168cf7a1df02b71 Author: Vinson Lee <vlee@vmware.com> Date: Thu Jan 6 00:06:38 2011 -0800 nvc0: Fix typo of nvc0_mm.c in SConscript.
I no-longer believe this is fixed. 84ebd8e2d7b13cf43069a2b79168cf7a1df02b71 is giving me the same "failed to create DRM screen" error as I had been getting. Don't know why I thought it was fixed. 6a102074bb30e44273e999ee8cdd2afbfbc4e333 still works. 997f84ff4efb62779a19f6bd0441cbae1b7bad70 still doesn't work. This (and my previous report of it working) is on a different card: $ lspci | grep -i vga 05:00.0 VGA compatible controller: nVidia Corporation G92 [GeForce 8800 GT] (rev a2) (The latest commit is also not working: 6d9ca78ef7bf831b9b63f4bda68623cbae627508 ) Also, strace shows pipe_nouveau.so being opened, it just doesn't get mentioned in the output. Full output: $ ~/wayland/wayland/compositor/compositor libEGL debug: EGL search path is /home/darxus/install/lib/egl libEGL debug: added /home/darxus/install/lib/egl/egl_gallium.so to module array libEGL debug: added /home/darxus/install/lib/egl/egl_dri2.so to module array libEGL debug: added /home/darxus/install/lib/egl/egl_glx.so to module array libEGL debug: dlopen(/home/darxus/install/lib/egl/egl_gallium.so) libEGL info: use DRM for display 0x5 libEGL debug: searching for pipe module nouveau libEGL warning: failed to create DRM screen libEGL debug: EGL user error 0x3001 (EGL_NOT_INITIALIZED) in eglInitialize(no usable display) libEGL debug: dlopen(/home/darxus/install/lib/egl/egl_dri2.so) libEGL debug: EGL user error 0x3003 (EGL_BAD_ALLOC) in DRI2: failed to get driver name libEGL debug: dlopen(/home/darxus/install/lib/egl/egl_glx.so) libEGL debug: EGL user error 0x3001 (EGL_NOT_INITIALIZED) in eglInitialize failed to initialize display failed to create compositor
Created attachment 41737 [details] wayland compositor strace output, failing, commit 6d9ca78ef7bf831b9b63f4bda68623cbae627508 (latest)
if it's still a linking problem running wayland with LD_DEBUG set to "all" might help find the root cause
The wayland compositor is now starting, but shows up as a completely garbled apparently random chunk of video memory. Output: $ ~/wayland/wayland/compositor/compositor libEGL debug: added /usr/lib/egl/egl_gallium.so to module array libEGL debug: added /usr/lib/egl/egl_dri2.so to module array libEGL debug: added /usr/lib/egl/egl_glx.so to module array libEGL debug: dlopen(/usr/lib/egl/egl_gallium.so) libEGL info: use DRM for display 0x5 libEGL debug: searching for pipe module nouveau libEGL debug: loaded /usr/lib/egl/pipe_nouveau.so libEGL debug: Failed to get KMS resources. Disable modeset. libEGL debug: the best driver is Gallium (score 100) libEGL debug: searching for st module GLESv2 libEGL debug: loaded /usr/lib/egl/st_GLESv2.so nv50_screen_get_param:162 - Unknown PIPE_CAP 11 XDG_RUNTIME_DIR not set, falling back to . using socket ./wayland-0 Mesa: User error: GL_INVALID_FRAMEBUFFER_OPERATION in glClear(incomplete framebuffer) Mesa git commit: 6a102074bb30e44273e999ee8cdd2afbfbc4e333
Ignore my last comment, it shows I was loading all the wrong libraries, instead of from ~/install/
Created attachment 41777 [details] Output of "wayland/compositor/compositor > ld_debug.all.txt 2>&1" with LD_DEBUG=all, for mesa commit 90e29afcb62411b69d57dac76fe89c69c9936ed6
/home/darxus/install/lib/egl/pipe_nouveau.so: error: symbol lookup error: undefined symbol: nvc0_screen_create (fatal) These commands should fix it: make distclean ./autogen.sh ./configure ... make
Wiped my entire build and install directories, recloned and built everything, same error. Still getting: 31798: /home/darxus/install/lib/egl/pipe_nouveau.so: error: symbol lookup error: undefined symbol: nvc0_screen_create (fatal)
fixed by commit 69191d41231b95af7565e32393c5487163859d7e "targets/egl: add libnvc0.a to nouveau libs"
Confirmed, works with commit 69191d41231b95af7565e32393c5487163859d7e
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.