Hi,
today, I tried to build and setup Wayland according to [1].
I am using a Debian/sid i386 host with ATi/AMD Radeon RV250. Furthermore, I have an upstream Linux-Kernel (2.6.36-git14) and radeon DDX from GIT master (up to bf60af5). Both Kernel + DDX have Alex radeon-KMS pageflipping support from [2] built-in.
# lspci -nnvv | grep "VGA compatible controller" 01:00.0 VGA compatible controller [0300]: ATI Technologies Inc Radeon RV250 [Mobility FireGL 9000] [1002:4c66] (rev 02) (prog-if 00 [VGA controller])
# grep flip /var/log/Xorg.0.log [ 82.883] (II) RADEON(0): KMS Pageflipping: enabled
My libdrm is 2.4.22 and xorg-server is 1.9.1-rc2 (both from Debian/experimental repository).
NOTE: Below (see P.S.) I have listed the Wayland-relevant packages with git-log information.
[1] says in section Modesetting:
"At this point, kernel modesetting is upstream for Intel, AMD and nVidia chipsets. Most distributions ship with kernel modesetting enabled by default and will work with Wayland out of the box. The modesetting driver must also support the page flip ioctl, which only the intel driver does at this point."
Thus, I am not sure if the website needs a refresh or radeon-KMS with Alex's patches is not "wayland-ready". Can you please enlighten? Thanks.
Furthermore some points to your "building" website from [1]:
[1] Section libxkbcommon: A hint for "requires kbproto >=1.0.5" would be nice. BTW, git://people.freedesktop.org/xorg/lib/libxkbcommon.git is not clone-able. I checked out from git://anongit.freedesktop.org/xorg/lib/libxkbcommon (see [3]) instead.
[2] Section Wayland (code-snippet): After "git clone git://people.freedesktop.org/~krh/wayland" is missing a "cd wayland"
[3] Section cairo-gl: In the build-log I saw "EGL functions: no (EGL headers not found)", but there are EGL headers installed in /opt/wayland (my $PREFIX, belonging to my user-account).
# ls -l /opt/wayland/include/EGL/ insgesamt 44 -rw-r--r-- 1 sd sd 18024 30. Okt 14:42 eglext.h -rw-r--r-- 1 sd sd 12353 30. Okt 14:42 egl.h -rw-r--r-- 1 sd sd 4216 30. Okt 14:42 eglplatform.h
Thus adding the following exports to all(!) packages (as code-snippets) makes more than sense to me:
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig export PATH=$PREFIX/bin:$PATH export LD_LIBRARY_PATH=$PREFIX/lib
Now, cairo is using EGL:
# grep EGL cairo-gl.log | head -3 checking for cairo's EGL functions feature... checking whether cairo's EGL functions feature could be enabled... yes EGL functions: yes
[4] Section Wayland: WTF (WhereTheF***) is those udev rules file I asked myself?
$ find wayland/ -name 70-wayland.rules wayland/compositor/70-wayland.rules
A code-snippet like that with some text would be helpful:
# cd wayland/ # cp -av compositor/70-wayland.rules /etc/udev/rules.d/
[5] Section Wayland:
Where shall wayland compositor find its libs? So there is a missing ld-config example, something like that would be great:
[ /etc/ld.so.conf.d/wayland.conf ] # wayland lib configuration /opt/wayland/lib
Do not forget to run ldconfig as root to update the linker cache.
# ldconfig
Below (see P.S.) you find a "ldconfig -p | grep wayland" output.
[6] Section Wayland: configure is not created, also there are missing *-sh and other files, why not use autogen.sh? IMHO "aclocal; autoconf;" can also be dropped in your snippet.
$ cd wayland $ ./autogen.sh --prefix=$PREFIX
[7] Missing Debian packages for my system (note to myself):
# apt-get install libffi-dev # apt-get install -t experimental libxcb-dri2-0-dev libxcb-xfixes0-dev # apt-get install libpoppler-glib-dev
[8] Section Wayland: Is that somehow outdated?
$ ./wayland-system-compositor -b my-image.jpg
$ find wayland/ -name compositor wayland/compositor wayland/compositor/compositor wayland/compositor/.libs/compositor
(Full find output below)
So how to test now the Wayland/compositor?
$ cd wayland/compositor $ LC_ALL=C ; LIBGL_DRIVERS_PATH=/opt/wayland/lib/dri ./compositor -b ../../backgrounds/dscn1843.jpg failed to initialize display Segmentation fault
BTW, a test JPG shipped with source would be nice. Must it be JPG, can it be PNG? Not sure.
$ ./compositor --help Usage: lt-compositor [OPTION...]
Help Options: -h, --help Show help options
Application Options: -b, --background Background image -c, --connector KMS connector
Can I force to use radeon-KMS as connector via --connector parameter? If YES, how?
As I already said I am not sure what is exactly wrong.
$ LIBGL_DRIVERS_PATH=/opt/wayland/lib/dri glxgears
# lsof | grep glxgears | grep wayland glxgears 19925 sd cwd DIR 8,3 4096 519169 /home/sd/src/wayland glxgears 19925 sd mem REG 8,5 16644192 260789 /opt/wayland/lib/dri/r200_dri.so
As you can see the mesa-dri driver is loaded from $PREFIX. Use LD_PRELOAD? Any other tricks?
Not sure if my RV250 gfcard is too weak, missing HW or GL requiremnets or radeon-KMS with pageflipping not ready for wayland. (glxinfo.txt attached).
I attached two strace outputs w/ and w/o LIBGL_DRIVERS_PATH:
$ cd wayland/compositor $ LC_ALL=C strace ./compositor -b ../../backgrounds/dscn1843.jpg 2> ../../strace_compositor.log $ LC_ALL=C ; LIBGL_DRIVERS_PATH=/opt/wayland/lib/dri strace ./compositor -b ../../backgrounds/dscn1843.jpg 2> ../../strace_compositor_LIBGL_DRIVERS_PATH.log
Last but not least, I have attached my build-scripts. If there is something wrong/missing, please let me know.
Any feedback and help appreciated.
Hope this helps to see Wayland on radeon-KMS.
Kind Regards, - Sedat -
References: [1] http://wayland.freedesktop.org/building.html [2] http://people.freedesktop.org/~agd5f/pflip/ [3] http://cgit.freedesktop.org/xorg/lib/libxkbcommon/
P.S.:
----- Packages with GIT log information -----
$ cd $HOME/src/wayland $ for i in mesa libxkbcommon cairo wayland ; do BASEDIR=$(pwd) ; echo $i ; cd $i ; git log --pretty=short -1 | cat ; cd $BASEDIR ; done mesa commit 156e955c25ad4acd78d683c4def83769f0bb3ddb Author: Chia-I Wu olv@lunarg.com
autoconf: st/vega requires --enable-openvg. libxkbcommon commit f94a64cc08b47cdbfdfea5b5756340246fc391ed Author: Jon TURNEY jon.turney@dronecode.org.uk
Link with -no-undefined cairo commit 5b2ed2422dffb407d80ec38ac0502ba951368ad2 Author: Uli Schlachter psychon@znc.in
xcb: Do not access flags directly wayland commit 012a00777129cbb84fa88ba1b02e1f3b2dd1b4f8 Author: Kristian Høgsberg krh@bitplanet.net
Add small client for testing shm surfaces
----- ldconfig output ------
# ldconfig -p | grep wayland libxkbcommon.so.0 (libc6) => /opt/wayland/lib/libxkbcommon.so.0 libxkbcommon.so (libc6) => /opt/wayland/lib/libxkbcommon.so libwayland-server.so.0 (libc6) => /opt/wayland/lib/libwayland-server.so.0 libwayland-server.so (libc6) => /opt/wayland/lib/libwayland-server.so libwayland-client.so.0 (libc6) => /opt/wayland/lib/libwayland-client.so.0 libwayland-client.so (libc6) => /opt/wayland/lib/libwayland-client.so libglut.so.3 (libc6) => /opt/wayland/lib/libglut.so.3 libglut.so (libc6) => /opt/wayland/lib/libglut.so libcairo.so.2 (libc6) => /opt/wayland/lib/libcairo.so.2 libcairo.so (libc6) => /opt/wayland/lib/libcairo.so libcairo-script-interpreter.so.2 (libc6) => /opt/wayland/lib/libcairo-script-interpreter.so.2 libcairo-script-interpreter.so (libc6) => /opt/wayland/lib/libcairo-script-interpreter.so libcairo-gobject.so.2 (libc6) => /opt/wayland/lib/libcairo-gobject.so.2 libcairo-gobject.so (libc6) => /opt/wayland/lib/libcairo-gobject.so libGLw.so.1 (libc6) => /opt/wayland/lib/libGLw.so.1 libGLw.so (libc6) => /opt/wayland/lib/libGLw.so libGLU.so.1 (libc6) => /opt/wayland/lib/libGLU.so.1 libGLU.so (libc6) => /opt/wayland/lib/libGLU.so libGLESv2.so.2 (libc6) => /opt/wayland/lib/libGLESv2.so.2 libGLESv2.so (libc6) => /opt/wayland/lib/libGLESv2.so libGLESv1_CM.so.1 (libc6) => /opt/wayland/lib/libGLESv1_CM.so.1 libGLESv1_CM.so (libc6) => /opt/wayland/lib/libGLESv1_CM.so libGL.so.1 (libc6) => /opt/wayland/lib/libGL.so.1 libGL.so (libc6) => /opt/wayland/lib/libGL.so libEGL.so.1 (libc6) => /opt/wayland/lib/libEGL.so.1 libEGL.so (libc6) => /opt/wayland/lib/libEGL.so
$ find wayland/ -name '*compositor*' wayland/compositor wayland/compositor/compositor wayland/compositor/compositor-x11.c wayland/compositor/compositor-x11.o wayland/compositor/.libs/lt-compositor wayland/compositor/.libs/compositor wayland/compositor/compositor-drm.o wayland/compositor/.deps/compositor-drm.Po wayland/compositor/.deps/compositor-x11.Po wayland/compositor/.deps/compositor.Po wayland/compositor/compositor.o wayland/compositor/compositor-drm.c wayland/compositor/compositor.c wayland/compositor/compositor.h
- EOT -
Just as an addendum:
# udevadm trigger --verbose --subsystem-match=drm --subsystem-match=input /sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input6 /sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input6/event6 /sys/devices/LNXSYSTM:00/device:00/PNP0A03:00/device:03/LNXVIDEO:00/input/input4 /sys/devices/LNXSYSTM:00/device:00/PNP0A03:00/device:03/LNXVIDEO:00/input/input4/event4 /sys/devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input3 /sys/devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input3/event3 /sys/devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input5 /sys/devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input5/event5 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-DVI-D-1 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-LVDS-1 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-SVIDEO-1 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/card0/card0-VGA-1 /sys/devices/pci0000:00/0000:00:01.0/0000:01:00.0/drm/controlD64 /sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input1 /sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input1/event1 /sys/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/input/input1/mouse0 /sys/devices/platform/i8042/serio0/input/input0 /sys/devices/platform/i8042/serio0/input/input0/event0 /sys/devices/platform/i8042/serio1/input/input7 /sys/devices/platform/i8042/serio1/input/input7/event7 /sys/devices/platform/i8042/serio1/input/input7/mouse1 /sys/devices/platform/i8042/serio1/serio2/input/input9 /sys/devices/platform/i8042/serio1/serio2/input/input9/event9 /sys/devices/platform/i8042/serio1/serio2/input/input9/mouse2 /sys/devices/platform/pcspkr/input/input2 /sys/devices/platform/pcspkr/input/input2/event2 /sys/devices/platform/thinkpad_acpi/input/input8 /sys/devices/platform/thinkpad_acpi/input/input8/event8 /sys/devices/virtual/drm/ttm /sys/devices/virtual/input/mice
On Sat, Oct 30, 2010 at 4:34 PM, Sedat Dilek sedat.dilek@googlemail.com wrote:
Hi,
today, I tried to build and setup Wayland according to [1].
I am using a Debian/sid i386 host with ATi/AMD Radeon RV250. Furthermore, I have an upstream Linux-Kernel (2.6.36-git14) and radeon DDX from GIT master (up to bf60af5). Both Kernel + DDX have Alex radeon-KMS pageflipping support from [2] built-in.
# lspci -nnvv | grep "VGA compatible controller" 01:00.0 VGA compatible controller [0300]: ATI Technologies Inc Radeon RV250 [Mobility FireGL 9000] [1002:4c66] (rev 02) (prog-if 00 [VGA controller])
# grep flip /var/log/Xorg.0.log [ 82.883] (II) RADEON(0): KMS Pageflipping: enabled
My libdrm is 2.4.22 and xorg-server is 1.9.1-rc2 (both from Debian/experimental repository).
NOTE: Below (see P.S.) I have listed the Wayland-relevant packages with git-log information.
[1] says in section Modesetting:
"At this point, kernel modesetting is upstream for Intel, AMD and nVidia chipsets. Most distributions ship with kernel modesetting enabled by default and will work with Wayland out of the box. The modesetting driver must also support the page flip ioctl, which only the intel driver does at this point."
Thus, I am not sure if the website needs a refresh or radeon-KMS with Alex's patches is not "wayland-ready". Can you please enlighten? Thanks.
Furthermore some points to your "building" website from [1]:
[1] Section libxkbcommon: A hint for "requires kbproto >=1.0.5" would be nice. BTW, git://people.freedesktop.org/xorg/lib/libxkbcommon.git is not clone-able. I checked out from git://anongit.freedesktop.org/xorg/lib/libxkbcommon (see [3]) instead.
[2] Section Wayland (code-snippet): After "git clone git://people.freedesktop.org/~krh/wayland" is missing a "cd wayland"
[3] Section cairo-gl: In the build-log I saw "EGL functions: no (EGL headers not found)", but there are EGL headers installed in /opt/wayland (my $PREFIX, belonging to my user-account).
# ls -l /opt/wayland/include/EGL/ insgesamt 44 -rw-r--r-- 1 sd sd 18024 30. Okt 14:42 eglext.h -rw-r--r-- 1 sd sd 12353 30. Okt 14:42 egl.h -rw-r--r-- 1 sd sd 4216 30. Okt 14:42 eglplatform.h
Thus adding the following exports to all(!) packages (as code-snippets) makes more than sense to me:
export PKG_CONFIG_PATH=$PREFIX/lib/pkgconfig export PATH=$PREFIX/bin:$PATH export LD_LIBRARY_PATH=$PREFIX/lib
Now, cairo is using EGL:
# grep EGL cairo-gl.log | head -3 checking for cairo's EGL functions feature... checking whether cairo's EGL functions feature could be enabled... yes EGL functions: yes
[4] Section Wayland: WTF (WhereTheF***) is those udev rules file I asked myself?
$ find wayland/ -name 70-wayland.rules wayland/compositor/70-wayland.rules
A code-snippet like that with some text would be helpful:
# cd wayland/ # cp -av compositor/70-wayland.rules /etc/udev/rules.d/
[5] Section Wayland:
Where shall wayland compositor find its libs? So there is a missing ld-config example, something like that would be great:
[ /etc/ld.so.conf.d/wayland.conf ] # wayland lib configuration /opt/wayland/lib
Do not forget to run ldconfig as root to update the linker cache.
# ldconfig
Below (see P.S.) you find a "ldconfig -p | grep wayland" output.
[6] Section Wayland: configure is not created, also there are missing *-sh and other files, why not use autogen.sh? IMHO "aclocal; autoconf;" can also be dropped in your snippet.
$ cd wayland $ ./autogen.sh --prefix=$PREFIX
[7] Missing Debian packages for my system (note to myself):
# apt-get install libffi-dev # apt-get install -t experimental libxcb-dri2-0-dev libxcb-xfixes0-dev # apt-get install libpoppler-glib-dev
[8] Section Wayland: Is that somehow outdated?
$ ./wayland-system-compositor -b my-image.jpg
$ find wayland/ -name compositor wayland/compositor wayland/compositor/compositor wayland/compositor/.libs/compositor
(Full find output below)
So how to test now the Wayland/compositor?
$ cd wayland/compositor $ LC_ALL=C ; LIBGL_DRIVERS_PATH=/opt/wayland/lib/dri ./compositor -b ../../backgrounds/dscn1843.jpg failed to initialize display Segmentation fault
BTW, a test JPG shipped with source would be nice. Must it be JPG, can it be PNG? Not sure.
$ ./compositor --help Usage: lt-compositor [OPTION...]
Help Options: -h, --help Show help options
Application Options: -b, --background Background image -c, --connector KMS connector
Can I force to use radeon-KMS as connector via --connector parameter? If YES, how?
As I already said I am not sure what is exactly wrong.
$ LIBGL_DRIVERS_PATH=/opt/wayland/lib/dri glxgears
# lsof | grep glxgears | grep wayland glxgears 19925 sd cwd DIR 8,3 4096 519169 /home/sd/src/wayland glxgears 19925 sd mem REG 8,5 16644192 260789 /opt/wayland/lib/dri/r200_dri.so
As you can see the mesa-dri driver is loaded from $PREFIX. Use LD_PRELOAD? Any other tricks?
Not sure if my RV250 gfcard is too weak, missing HW or GL requiremnets or radeon-KMS with pageflipping not ready for wayland. (glxinfo.txt attached).
I attached two strace outputs w/ and w/o LIBGL_DRIVERS_PATH:
$ cd wayland/compositor $ LC_ALL=C strace ./compositor -b ../../backgrounds/dscn1843.jpg 2> ../../strace_compositor.log $ LC_ALL=C ; LIBGL_DRIVERS_PATH=/opt/wayland/lib/dri strace ./compositor -b ../../backgrounds/dscn1843.jpg 2> ../../strace_compositor_LIBGL_DRIVERS_PATH.log
Last but not least, I have attached my build-scripts. If there is something wrong/missing, please let me know.
Any feedback and help appreciated.
Hope this helps to see Wayland on radeon-KMS.
Kind Regards,
- Sedat -
References: [1] http://wayland.freedesktop.org/building.html [2] http://people.freedesktop.org/~agd5f/pflip/ [3] http://cgit.freedesktop.org/xorg/lib/libxkbcommon/
P.S.:
----- Packages with GIT log information -----
$ cd $HOME/src/wayland $ for i in mesa libxkbcommon cairo wayland ; do BASEDIR=$(pwd) ; echo $i ; cd $i ; git log --pretty=short -1 | cat ; cd $BASEDIR ; done mesa commit 156e955c25ad4acd78d683c4def83769f0bb3ddb Author: Chia-I Wu olv@lunarg.com
autoconf: st/vega requires --enable-openvg. libxkbcommon commit f94a64cc08b47cdbfdfea5b5756340246fc391ed Author: Jon TURNEY jon.turney@dronecode.org.uk
Link with -no-undefined cairo commit 5b2ed2422dffb407d80ec38ac0502ba951368ad2 Author: Uli Schlachter psychon@znc.in
xcb: Do not access flags directly wayland commit 012a00777129cbb84fa88ba1b02e1f3b2dd1b4f8 Author: Kristian Høgsberg krh@bitplanet.net
Add small client for testing shm surfaces
----- ldconfig output ------
# ldconfig -p | grep wayland libxkbcommon.so.0 (libc6) => /opt/wayland/lib/libxkbcommon.so.0 libxkbcommon.so (libc6) => /opt/wayland/lib/libxkbcommon.so libwayland-server.so.0 (libc6) => /opt/wayland/lib/libwayland-server.so.0 libwayland-server.so (libc6) => /opt/wayland/lib/libwayland-server.so libwayland-client.so.0 (libc6) => /opt/wayland/lib/libwayland-client.so.0 libwayland-client.so (libc6) => /opt/wayland/lib/libwayland-client.so libglut.so.3 (libc6) => /opt/wayland/lib/libglut.so.3 libglut.so (libc6) => /opt/wayland/lib/libglut.so libcairo.so.2 (libc6) => /opt/wayland/lib/libcairo.so.2 libcairo.so (libc6) => /opt/wayland/lib/libcairo.so libcairo-script-interpreter.so.2 (libc6) => /opt/wayland/lib/libcairo-script-interpreter.so.2 libcairo-script-interpreter.so (libc6) => /opt/wayland/lib/libcairo-script-interpreter.so libcairo-gobject.so.2 (libc6) => /opt/wayland/lib/libcairo-gobject.so.2 libcairo-gobject.so (libc6) => /opt/wayland/lib/libcairo-gobject.so libGLw.so.1 (libc6) => /opt/wayland/lib/libGLw.so.1 libGLw.so (libc6) => /opt/wayland/lib/libGLw.so libGLU.so.1 (libc6) => /opt/wayland/lib/libGLU.so.1 libGLU.so (libc6) => /opt/wayland/lib/libGLU.so libGLESv2.so.2 (libc6) => /opt/wayland/lib/libGLESv2.so.2 libGLESv2.so (libc6) => /opt/wayland/lib/libGLESv2.so libGLESv1_CM.so.1 (libc6) => /opt/wayland/lib/libGLESv1_CM.so.1 libGLESv1_CM.so (libc6) => /opt/wayland/lib/libGLESv1_CM.so libGL.so.1 (libc6) => /opt/wayland/lib/libGL.so.1 libGL.so (libc6) => /opt/wayland/lib/libGL.so libEGL.so.1 (libc6) => /opt/wayland/lib/libEGL.so.1 libEGL.so (libc6) => /opt/wayland/lib/libEGL.so
$ find wayland/ -name '*compositor*' wayland/compositor wayland/compositor/compositor wayland/compositor/compositor-x11.c wayland/compositor/compositor-x11.o wayland/compositor/.libs/lt-compositor wayland/compositor/.libs/compositor wayland/compositor/compositor-drm.o wayland/compositor/.deps/compositor-drm.Po wayland/compositor/.deps/compositor-x11.Po wayland/compositor/.deps/compositor.Po wayland/compositor/compositor.o wayland/compositor/compositor-drm.c wayland/compositor/compositor.c wayland/compositor/compositor.h
- EOT -
I made a 2nd wayland build:
OK, there is definitely a problem with $DISPLAY, if I use a different one (for example DISPLAY=:1.0), I get "failed to create compositor". If I want to use DISPLAY=:0.0, the error-message is "failed to initialize display" ending with a Segmentation fault.
Having a look into dmesg: [ 61.979227] lt-compositor[1702]: segfault at 30 ip 0804db9e sp bf8d2bd0 error 4 in lt-compositor[8048000+a000]
That's saying not much to me.
How can I dig deeper into the problem?
Use and create packages with debug symbols I guess? For mesa I know there is --debug. Enable debug-build for cairo-gl and wayland?
Any suggestions for Linux kernel-config parameters to better debug Wayland?
- Sedat -
$ echo $DISPLAY :0.0
$ cd $HOME/src/wayland/wayland/compositor
$ LC_ALL=C ; LIBGL_DRIVERS_PATH=/opt/wayland/lib/dri DISPLAY=:1.0 ./compositor -b ../../backgrounds/dscn1843.jpg failed to create compositor
$ LC_ALL=C ; LIBGL_DRIVERS_PATH=/opt/wayland/lib/dri DISPLAY=:0.0 ./compositor -b ../../backgrounds/dscn1843.jpg failed to initialize display Segmentation fault
$ dmesg | tail -10 [ 21.151574] Bluetooth: RFCOMM socket layer initialized [ 21.151577] Bluetooth: RFCOMM ver 1.11 [ 21.156060] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 21.156064] Bluetooth: BNEP filters: protocol multicast [ 21.350328] Bluetooth: SCO (Voice Link) ver 0.6 [ 21.350333] Bluetooth: SCO socket layer initialized [ 29.904036] wlan0: no IPv6 routers present [ 61.979227] lt-compositor[1702]: segfault at 30 ip 0804db9e sp bf8d2bd0 error 4 in lt-compositor[8048000+a000] [ 152.636425] lt-compositor[1768]: segfault at 30 ip 0804db9e sp bf9e7f30 error 4 in lt-compositor[8048000+a000] [ 197.229767] lt-compositor[1803]: segfault at 30 ip 0804db9e sp bffb9330 error 4 in lt-compositor[8048000+a000]
Before I forget, I switched als Window-Manager from KDE4 to Fluxbox to see if the WM has influence on Wayland.
Here is what I see in VT-1 from where I started X via startx command (I always bootup into runlevel-3):
Setting default value Failed to read: session.screen0.tabs.intitlebar Setting default value Failed to read: session.screen0.focusModel Setting default value Failed to read: session.screen0.tabFocusModel Setting default value Failed to read: session.screen0.focusNewWindows Setting default value Failed to read: session.screen0.rowPlacementDirection Setting default value Failed to read: session.screen0.colPlacementDirection Setting default value Failed to read: session.screen0.windowPlacement Setting default value Failed to read: session.screen0.slit.acceptKdeDockapps Setting default value Failed to read: session.screen0.slit.autoHide Setting default value Failed to read: session.screen0.slit.maxOver Setting default value Failed to read: session.screen0.slit.placement Setting default value Failed to read: session.screen0.slit.alpha Setting default value Failed to read: session.screen0.slit.onhead Setting default value Failed to read: session.screen0.slit.layer Setting default value Failed to read: session.screen0.toolbar.autoHide Setting default value Failed to read: session.screen0.toolbar.maxOver Setting default value Failed to read: session.screen0.toolbar.visible Setting default value Failed to read: session.screen0.toolbar.alpha Setting default value Failed to read: session.screen0.toolbar.layer Setting default value Failed to read: session.screen0.toolbar.onhead Setting default value Failed to read: session.screen0.toolbar.placement Setting default value Failed to read: session.screen0.toolbar.height Setting default value Failed to read: session.screen0.iconbar.mode Setting default value Failed to read: session.screen0.iconbar.alignment Setting default value Failed to read: session.screen0.iconbar.iconWidth Setting default value Failed to read: session.screen0.iconbar.iconTextPadding Setting default value Failed to read: session.screen0.iconbar.usePixmap Setting default value QMetaObject::invokeMethod: No such method Konsole::Application::loadCommandLineOptionsForNewInstance() Failed to read: session.screen0.titlebar.left Setting default value Failed to read: session.screen0.titlebar.right Setting default value Connecting to deprecated signal QDBusConnectionInterface::serviceOwnerChanged(QString,QString,QString) QMetaObject::invokeMethod: No such method KUniqueApplication::loadCommandLineOptionsForNewInstance() kbuildsycoca4 running... QMetaObject::invokeMethod: No such method KUniqueApplication::loadCommandLineOptionsForNewInstance()
On Sun, 2010-10-31 at 10:36 +0100, Sedat Dilek wrote:
I made a 2nd wayland build:
OK, there is definitely a problem with $DISPLAY, if I use a different one (for example DISPLAY=:1.0), I get "failed to create compositor". If I want to use DISPLAY=:0.0, the error-message is "failed to initialize display" ending with a Segmentation fault.
Taking a guess, I think this is the same problem I hit. wayland isn't checking and exiting after it fails to successfully initialize EGL / some other resource, and continuing on blindly - hence the segfault.
In my case, it was because mesa was compiled without --disable-gallium
That was REQUIRED for me to get it working.. just deleting the gallium EGL modules to leave the DRI2 ones was not enough. (There might have been GLES drives which picked up gallium of course, as I didn't delete anything there).
I can get the compositor running, but all my clients quit as I've got a problem with xkb maps not being found / compiled properly with my /usr/local installed libxkbcommon.
On Sun, Oct 31, 2010 at 3:21 PM, Peter Clifton pcjc2@cam.ac.uk wrote:
On Sun, 2010-10-31 at 10:36 +0100, Sedat Dilek wrote:
I made a 2nd wayland build:
OK, there is definitely a problem with $DISPLAY, if I use a different one (for example DISPLAY=:1.0), I get "failed to create compositor". If I want to use DISPLAY=:0.0, the error-message is "failed to initialize display" ending with a Segmentation fault.
Taking a guess, I think this is the same problem I hit. wayland isn't checking and exiting after it fails to successfully initialize EGL / some other resource, and continuing on blindly - hence the segfault.
In my case, it was because mesa was compiled without --disable-gallium
That was REQUIRED for me to get it working.. just deleting the gallium EGL modules to leave the DRI2 ones was not enough. (There might have been GLES drives which picked up gallium of course, as I didn't delete anything there).
Which gfxcard is that?
[1] says for Intel gfxcards:
"If you're using an intel chipset, it's best to also pass --disable-gallium to ./configure, since otherwise libEGL will try to load the gallium sw rasterizer before loading the Intel DRI driver."
What does this mean in general? Do NOT build and use swrast?
That's my current autogen line for mesa:
$ grep -A5 "git log" mesa.log + git log --pretty=short -1 commit 52ef148923ef53dfd2192273bcdac39f233da869 Author: Chia-I Wu olv@lunarg.com
targets/egl: Fix a warning with --disable-opengl build. + ./autogen.sh --prefix=/opt/wayland --with-driver=dri --with-dri-driverdir=/opt/wayland/lib/dri --with-dri-drivers=r200,r300,swrast --enable-gallium-radeon --enable-gallium-swrast --with-state-trackers=dri,glx,egl --enable-egl --enable-gles2
Here I am on Radeon RV250 (r200), but I am building for a different system which has Radeon RV515 (r500). Let's see.
--disable-gallium -> EGL tracker: no
According to Chia-I Wu this is needed.
BTW, it is now:
$ egrep -i 'EGL drivers|EGL Gallium STs|checking for XCB_DRI2' mesa.log checking for XCB_DRI2... yes EGL drivers: egl_glx egl_dri2 egl_gallium EGL Gallium STs: $(GL_LIB)
- Sedat -
[1] http://wayland.freedesktop.org/building.html
I can get the compositor running, but all my clients quit as I've got a problem with xkb maps not being found / compiled properly with my /usr/local installed libxkbcommon.
-- Peter Clifton
Electrical Engineering Division, Engineering Department, University of Cambridge, 9, JJ Thomson Avenue, Cambridge CB3 0FA
Tel: +44 (0)7729 980173 - (No signal in the lab!) Tel: +44 (0)1223 748328 - (Shared lab phone, ask for me)
On Sun, 2010-10-31 at 15:32 +0100, Sedat Dilek wrote:
On Sun, Oct 31, 2010 at 3:21 PM, Peter Clifton pcjc2@cam.ac.uk wrote:
On Sun, 2010-10-31 at 10:36 +0100, Sedat Dilek wrote:
I made a 2nd wayland build:
In my case, it was because mesa was compiled without --disable-gallium
That was REQUIRED for me to get it working.. just deleting the gallium EGL modules to leave the DRI2 ones was not enough. (There might have been GLES drives which picked up gallium of course, as I didn't delete anything there).
Which gfxcard is that?
It was intel. Hmm.. you?
[1] says for Intel gfxcards:
"If you're using an intel chipset, it's best to also pass --disable-gallium to ./configure, since otherwise libEGL will try to load the gallium sw rasterizer before loading the Intel DRI driver."
What does this mean in general? Do NOT build and use swrast?
All I read was not to use Gallium, as there is a _specific_ DRI2 EGL driver which Wayland wants to use. IE.. any Gallium is bad. I might be wrong though.
That's my current autogen line for mesa:
$ grep -A5 "git log" mesa.log
- git log --pretty=short -1
commit 52ef148923ef53dfd2192273bcdac39f233da869 Author: Chia-I Wu olv@lunarg.com
targets/egl: Fix a warning with --disable-opengl build.
- ./autogen.sh --prefix=/opt/wayland --with-driver=dri
--with-dri-driverdir=/opt/wayland/lib/dri --with-dri-drivers=r200,r300,swrast --enable-gallium-radeon --enable-gallium-swrast --with-state-trackers=dri,glx,egl --enable-egl --enable-gles2
I've passed --disable-gallium, and scribbed all the other gallium related stuff. I'm not sure how this sits if you want / need to build a gallium driver for your graphics card though..
Perhaps build the EGL drivers separately with --disable-gallium? That said, I've no idea if that has any chance of working.
This was my configure line for building mesa:
(from config.log, so probably missing some "" qouting around args).
./configure --disable-gallium --disable-glu --disable-glut --disable-glw --with-driver=dri --with-dri-drivers=i965 --with-dri-driverdir=/usr/local/lib/dri --with-egl-displays=x11 drm --enable-glx-tls --enable-gles-overlay --enable-gles1 --enable-gles2 --enable-driglx-direct
You might want to try adding -with-egl-displays="x11 drm" to get rid of the gallium bit
dri-devel@lists.freedesktop.org