Bug 324522 - Kwin crashes when Effects are toggled on (Alt Shift F12) <using egl_wayland>
Summary: Kwin crashes when Effects are toggled on (Alt Shift F12) <using egl_wayland>
Status: RESOLVED INTENTIONAL
Alias: None
Product: kwin
Classification: Plasma
Component: effects-various (show other bugs)
Version: 4.11.0
Platform: Arch Linux Linux
: NOR crash
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-09-05 00:12 UTC by Radek Koníček
Modified: 2013-09-05 06:07 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments
Backtrace of kwin_gles crash after effects were turned on (3.62 KB, text/plain)
2013-09-05 00:19 UTC, Radek Koníček
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Radek Koníček 2013-09-05 00:12:47 UTC
Hello, it is my first bug report. Installed packages and versions are in additional info, here is the problem description. I try to use wayland. It is hard to setup to working it properly.
I am able to run wayland-launch as main compositor (from console login). This is no problem.
I am able to run kwin (or kwin_gles) on plasma desktop only under special CONDITION.

After long research, i found that  kwin and kwin_gles[ with KWIN_OPENGL_INTERFACE=egl_wayland kwin  variable passed! only] CRASH if the effects(*-explained below) are enabled at compositor startup ( General ->  Enable effects at startup) OR they are swiched on by pressing Alt Shift F12.

*:NO MATTER whether ANY effect is checked in the tab All Effects.


IMPORTANT NOTICE: I don't know whether this may affect it, but the X server is running (in the tree:
systemd->sddm->X) . SDDM should be one of login manager supporting wayland. But i dont know how to disable X at startup. I cant simply kill X, beacuse it logs me out.

Here is the output of the starting  kwins:

mat@dell ~ % kwin &             # working                                                                                                                            :(
[1] 15299
mat@dell ~ % QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
mat@dell ~ % QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
mat@dell ~ % QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
OpenGL vendor string:                   nouveau
OpenGL renderer string:                 Gallium 0.4 on NV86
OpenGL version string:                  3.1 (Core Profile) Mesa 9.2.0
OpenGL shading language version string: 1.40
Driver:                                 Nouveau
GPU class:                              G80/G90
OpenGL version:                         3.1
GLSL version:                           1.40
Mesa version:                           9.2
X server version:                       1.14.2
Linux kernel version:                   3.11
Direct rendering:                       yes
Requires strict binding:                yes
GLSL shaders:                           yes
Texture NPOT support:                   yes
Virtual Machine:                        no


mat@dell ~ % kwin_gles &  # work too
[1] 15412
mat@dell ~ % QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread                                                                      
mat@dell ~ % OpenGL vendor string:                   nouveau
OpenGL renderer string:                 Gallium 0.4 on NV86
OpenGL version string:                  OpenGL ES 3.0 Mesa 9.2.0
OpenGL shading language version string: OpenGL ES GLSL ES 3.0
Driver:                                 Nouveau
GPU class:                              G80/G90
OpenGL version:                         3.0
GLSL version:                           3.0
Mesa version:                           9.2
X server version:                       1.14.2
Linux kernel version:                   3.11
Direct rendering:                       yes
Requires strict binding:                no
GLSL shaders:                           yes
Texture NPOT support:                   yes
Virtual Machine:                        no
kwin(15412) KWin::EglOnXBackend::init: Cannot enable v-sync as max. swap interval is 0 
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
kwin(15412): Failed to compile fragment shader: 
"0:2(14): error: no precision specified this scope for type `vec4'
0:4(13): error: no precision specified this scope for type `float'
0:5(13): error: no precision specified this scope for type `float'
0:6(13): error: no precision specified this scope for type `float'
0:7(13): error: no precision specified this scope for type `float'
0:8(13): error: no precision specified this scope for type `float'
0:9(13): error: no precision specified this scope for type `float'
0:10(13): error: no precision specified this scope for type `float'
0:14(7): error: no precision specified this scope for type `vec4'

kwin(15412): Failed to link shader: 
"error: program lacks a fragment shader




Kill turn off effects. And kill kwin_gles.
 mat@dell ~ % KWIN_OPENGL_INTERFACE=egl_wayland kwin_gles  --replace &                                     :(
[1] 17014
mat@dell ~ % QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.

[2]  - 16960 done       KWIN_OPENGL_INTERFACE=egl_wayland kwin_gles --replace
mat@dell ~ % QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
#
mat@dell ~ % #TOGGLING EFFECTS
mat@dell ~ % Application::crashHandler() called with signal 11; recent crashes: 1
KCrash: Application 'kwin_gles' crashing...
KCrash: Attempting to start /usr/lib/kde4/libexec/drkonqi from kdeinit
sock_file=/home/mat/.kde4/socket-dell/kdeinit4__0
QDBusConnection: session D-Bus connection created before QCoreApplication. Application may misbehave.
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread

[1]  + 17014 suspended (signal)  KWIN_OPENGL_INTERFACE=egl_wayland kwin_gles --replace
mat@dell ~ % 


AND BACKTRACE
Application: KWin (kwin_gles), signal: Segmentation fault
Using host libthread_db library "/usr/lib/libthread_db.so.1".
[Current thread is 1 (Thread 0x7f111b0d67c0 (LWP 16443))]

Thread 3 (Thread 0x7f10fca59700 (LWP 16459)):
#0  0x00007f111a8d5ffd in read () from /usr/lib/libc.so.6
#1  0x00007f110b6393f0 in ?? () from /usr/lib/libglib-2.0.so.0
#2  0x00007f110b5fabac in g_main_context_check () from /usr/lib/libglib-2.0.so.0
#3  0x00007f110b5fb01b in ?? () from /usr/lib/libglib-2.0.so.0
#4  0x00007f110b5fb4ea in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#5  0x00007f1101040346 in ?? () from /usr/lib/libgio-2.0.so.0
#6  0x00007f110b61f085 in ?? () from /usr/lib/libglib-2.0.so.0
#7  0x00007f111491b062 in start_thread () from /usr/lib/libpthread.so.0
#8  0x00007f111a8e2a2d in clone () from /usr/lib/libc.so.6

Thread 2 (Thread 0x7f10f236c700 (LWP 16461)):
#0  0x00007f111491efff in pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib/libpthread.so.0
#1  0x00007f1119ae2fdb in ?? () from /usr/lib/libQtScript.so.4
#2  0x00007f1119ae3019 in ?? () from /usr/lib/libQtScript.so.4
#3  0x00007f111491b062 in start_thread () from /usr/lib/libpthread.so.0
#4  0x00007f111a8e2a2d in clone () from /usr/lib/libc.so.6

Thread 1 (Thread 0x7f111b0d67c0 (LWP 16443)):
[KCrash Handler]
#5  0x00007f111619b560 in wl_proxy_create () from /usr/lib/libwayland-client.so.0
#6  0x00007f111acd2acd in ?? () from /usr/lib/libkdeinit4_kwin_gles.so
#7  0x00007f111acd4407 in ?? () from /usr/lib/libkdeinit4_kwin_gles.so
#8  0x00007f111ac816c1 in ?? () from /usr/lib/libkdeinit4_kwin_gles.so
#9  0x00007f111ac68555 in ?? () from /usr/lib/libkdeinit4_kwin_gles.so
#10 0x00007f111ac68b12 in ?? () from /usr/lib/libkdeinit4_kwin_gles.so
#11 0x00007f111ac02332 in ?? () from /usr/lib/libkdeinit4_kwin_gles.so
#12 0x00007f1114cbfba8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#13 0x00007f1113e2bfd2 in QAction::triggered(bool) () from /usr/lib/libQtGui.so.4
#14 0x00007f1113e2d9a3 in QAction::activate(QAction::ActionEvent) () from /usr/lib/libQtGui.so.4
#15 0x00007f111956d836 in ?? () from /usr/lib/libkdeui.so.5
#16 0x00007f1114cbfba8 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib/libQtCore.so.4
#17 0x00007f111966dbc9 in ?? () from /usr/lib/libkdeui.so.5
#18 0x00007f111966dd6c in ?? () from /usr/lib/libkdeui.so.5
#19 0x00007f111966e215 in ?? () from /usr/lib/libkdeui.so.5
#20 0x00007f1115036246 in ?? () from /usr/lib/libQtDBus.so.4
#21 0x00007f1114cc3f5e in QObject::event(QEvent*) () from /usr/lib/libQtCore.so.4
#22 0x00007f1113e3212c in QApplicationPrivate::notify_helper(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#23 0x00007f1113e386f0 in QApplication::notify(QObject*, QEvent*) () from /usr/lib/libQtGui.so.4
#24 0x00007f111952f72a in KApplication::notify(QObject*, QEvent*) () from /usr/lib/libkdeui.so.5
#25 0x00007f1114cabefd in QCoreApplication::notifyInternal(QObject*, QEvent*) () from /usr/lib/libQtCore.so.4
#26 0x00007f1114caef4f in QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) () from /usr/lib/libQtCore.so.4
#27 0x00007f1113ecfa5c in ?? () from /usr/lib/libQtGui.so.4
#28 0x00007f1114caab5f in QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#29 0x00007f1114caae55 in QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib/libQtCore.so.4
#30 0x00007f1114caff8b in QCoreApplication::exec() () from /usr/lib/libQtCore.so.4
#31 0x00007f111ac21b76 in kdemain () from /usr/lib/libkdeinit4_kwin_gles.so
#32 0x00007f111a81fbc5 in __libc_start_main () from /usr/lib/libc.so.6
#33 0x0000000000400711 in _start ()


Reproducible: Always

Steps to Reproduce:
use nouveau drivers with kms
1.run `KWIN_OPENGL_INTERFACE=egl_wayland kwin --replace &!`
or
`KWIN_OPENGL_INTERFACE=egl_wayland kwin_gles --replace &!` (no difference)
with desktop effects enabled.

OR 
2.have desktop effects disabled. Run it AND toggle effects witchAlt Shift F12

Actual Results:  
1. nothing (just a brief screen blink caused by compositor reload)
2. Desktop effects shall turn on.

Expected Results:  
The desktop is expected switch

Linux  3.11.0-1-MANJARO #1 SMP PREEMPT Tue Aug 20 19:25:29 UTC 2013 x86_64 GNU/Linux
Manjaro Linux (originally 0.8.?)
relevant: packages (uses pacman): (all packages downloaded from manjaro current repo, except: mesa  mesa-libgl nouveau-dri weston wayland , which are from arch repo)
nouveau-dri 9.2.0-1
mesa-libgl 9.2.0-1
mesa 9.2.0-1
lib32-glu 9.0.0-2
glu 9.0.0-2
weston 1.2.2-1
wayland-git 1.2.90.1403.10dcf86-1
kde kde base of 4.11.0-1
qt4 4.8.5-1
qt5-base 5.1.0-1 (qt qt5)
xorg-server 1.14.2-2 (xorg)
llvm 3.3-1


related variables(at begging are fixes to flash overlays or flash videos chroma swap)

export VDPAU_NVIDIA_NO_OVERLAY=1
export __GL_SYNC_TO_VBLANK=1
export __GL_SYNC_DISPLAY_DEVICE=DFP-0
export __VDPAU_NVIDIA_SYNC_DISPLAY_DEVICE=DFP-0

export __GL_YIELD=USLEEP
export EGL_DRIVER=/usr/lib/egl/egl_gallium.so
export QT_SELECT=5
export DISPLAY=:0
export KWIN_DIRECT_GL=1
#export KWIN_OPENGL_INTERFACE=###(changed at example) (THIS IS THE MATTER OF THE PROBLEM)
export EGL_DRIVER=/usr/lib/egl/egl_gallium.so
export XDG_RUNTIME_DIR=/tmp/
Comment 1 Radek Koníček 2013-09-05 00:19:45 UTC
Created attachment 82169 [details]
Backtrace of kwin_gles crash after effects were turned on
Comment 2 Radek Koníček 2013-09-05 00:22:40 UTC
I would attach the backtrace if i knew it was possible in the time of first report writing .

Here is correct version of EXPECTED & ACTUAL:
Actual Results:  
Compositer detects crash, disables opengl (runs without effects) and Kcrash info opens.

Expected Results:  
1.nothing (just a brief screen blink caused by compositor reload)
2. Desktop effects shall turn on.
2. Desktop effects shall turn on.
Comment 3 Martin Flöser 2013-09-05 06:07:19 UTC
sorry, but as the debug output should say: wayland support is highly experimental and we don't accept bug reports for it.

As a matter of fact kwin_gles is not supported at all in Wayland. If you want to give it a try just use the normal kwin.