Bug 347507 - EGL interface renders taskbar broken on intel SNA
Summary: EGL interface renders taskbar broken on intel SNA
Status: RESOLVED DUPLICATE of bug 338150
Alias: None
Product: kwin
Classification: Plasma
Component: egl (show other bugs)
Version: 5.3.0
Platform: Arch Linux Linux
: NOR major
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-05-10 10:34 UTC by Christian Muehlhaeuser
Modified: 2015-11-10 19:44 UTC (History)
3 users (show)

See Also:
Latest Commit:
Version Fixed In:
thomas.luebking: Intel+


Attachments
KWin support info - EGL (4.27 KB, text/plain)
2015-07-09 03:42 UTC, Peter Hoeg
Details
KWin support info - GLX (4.27 KB, text/plain)
2015-07-09 03:43 UTC, Peter Hoeg
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Christian Muehlhaeuser 2015-05-10 10:34:00 UTC
With EGL as the OpenGL interface, Plasma doesn't update the taskbar anymore.

Reproducible: Always
Comment 1 Thomas Lübking 2015-05-10 10:35:46 UTC
please attach the output of

   qdbus org.kde.KWin /KWin supportInformation

(w/ compositing enabled)
and ideally a screenshot to illustrate the problem.
Comment 2 Christian Muehlhaeuser 2015-05-10 10:44:43 UTC
The taskbar just remains in the state that it was at the time of enabling EGL. It's still responsive, but never updates again. Clicking one of the tasks in the bar now restores an entirely different window.

===

KWin Support Information:
The following information should be used when requesting support on e.g. http://forum.kde.org.
It provides information about the currently running instance, which options are used,
what OpenGL driver and which effects are running.
Please post the information provided underneath this introductory text to a paste bin service
like http://paste.kde.org instead of pasting into support threads.

==========================

Version
=======
KWin version: 5.3.0
Qt Version: 5.4.1
Qt compile version: 5.4.1
XCB compile version: 1.11

Operation Mode: X11 only

Build Options
=============
KWIN_BUILD_DECORATIONS: yes
KWIN_BUILD_TABBOX: yes
KWIN_BUILD_ACTIVITIES: yes
HAVE_WAYLAND: yes
HAVE_WAYLAND_EGL: yes
HAVE_WAYLAND_CURSOR: yes
HAVE_XKB: yes
HAVE_INPUT: yes
HAVE_XCB_CURSOR: yes
HAVE_XCB_SYNC: yes
HAVE_X11_XCB: yes

X11
===
Vendor: The X.Org Foundation
Vendor Release: 11701000
Protocol Version/Revision: 11/0
SHAPE: yes; Version: 0x11
RANDR: yes; Version: 0x14
DAMAGE: yes; Version: 0x11
Composite: yes; Version: 0x4
RENDER: yes; Version: 0xb
XFIXES: yes; Version: 0x50
SYNC: yes; Version: 0x31
GLX: yes; Version: 0x0

Decoration
==========
Plugin: org.kde.breeze
Theme: 
Blur: 0
onAllDesktopsAvailable: true
alphaChannelSupported: false
closeOnDoubleClickOnMenu: false
decorationButtonsLeft: 0, 2
decorationButtonsRight: 6, 3, 4, 5
borderSize: 3
gridUnit: 12
font: DejaVu Sans,12,-1,5,50,0,0,0,0,0
smallSpacing: 3
largeSpacing: 12

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
placement: 4
focusPolicyIsReasonable: true
borderSnapZone: 4
windowSnapZone: 4
centerSnapZone: 0
snapOnlyWhenOverlapping: false
rollOverDesktops: true
focusStealingPreventionLevel: 1
legacyFullscreenSupport: false
operationTitlebarDblClick: 5000
operationMaxButtonLeftClick: 5000
operationMaxButtonMiddleClick: 5015
operationMaxButtonRightClick: 5014
commandActiveTitlebar1: 0
commandActiveTitlebar2: 30
commandActiveTitlebar3: 2
commandInactiveTitlebar1: 4
commandInactiveTitlebar2: 30
commandInactiveTitlebar3: 2
commandWindow1: 7
commandWindow2: 8
commandWindow3: 8
commandWindowWheel: 31
commandAll1: 10
commandAll2: 3
commandAll3: 14
keyCmdAllModKey: 16777251
showGeometryTip: false
condensedTitle: false
electricBorderMaximize: true
electricBorderTiling: true
electricBorderCornerRatio: 0.25
borderlessMaximizedWindows: false
killPingTimeout: 5000
hideUtilityWindowsForInactive: true
inactiveTabsSkipTaskbar: false
autogroupSimilarWindows: false
autogroupInForeground: true
compositingMode: 1
useCompositing: true
compositingInitialized: true
hiddenPreviews: 1
unredirectFullscreen: false
glSmoothScale: 2
colorCorrected: false
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: false
glStrictBindingFollowsDriver: true
glCoreProfile: false
glPreferBufferSwap: 97
glPlatformInterface: 2

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 1x1
timeThreshold: 150
reActivateThreshold: 350
actionTopLeft: 0
actionTop: 0
actionTopRight: 0
actionRight: 0
actionBottomRight: 0
actionBottom: 0
actionBottomLeft: 0
actionLeft: 0

Screens
=======
Multi-Head: no
Active screen follows mouse:  no
Number of Screens: 2
Screen 0 Geometry: 1920,0,1920x1200
Screen 1 Geometry: 0,0,1920x1080

Compositing
===========
Compositing is not active
Comment 3 Thomas Lübking 2015-05-10 10:55:23 UTC
> Compositing is not active

Because of the other bug: Nvidia does btw. not support EGL at all....
If this is not an nvidia system, please redump the output w/ the problematic compositor running (eg. prepend "sleep 10;" to the qdbus call)
Comment 4 Christian Muehlhaeuser 2015-05-10 11:11:42 UTC
Ok, understood. It was my last resort since all other configurations seem to cause frequent crashes. Why that breaks the taskbar, tho, is anybody's guess.
Comment 5 Thomas Lübking 2015-05-10 11:24:14 UTC
I assume this is unrelated. plasmashell is done on top of QML and largely an OpenGL scene as well and someting around this seems to be pretty much broken on your side.

I'm marking this one invalid because the description is wrong and since your observation was likely done w/o compositing(?) it's not a KWin issue for sure either.

I'd say we start by figuring your general OpenGL/System issues (frequent crashes, no DrKonqui) and *iff* the issue w/ the taskbar remains, you just open a new bug against plasma/taskbar.
Comment 6 Peter Hoeg 2015-07-09 03:41:58 UTC
(In reply to Thomas Lübking from comment #5)
> I'm marking this one invalid because the description is wrong and since your
> observation was likely done w/o compositing(?) it's not a KWin issue for
> sure either.

I'm taking the liberty to reopen this, as I am seeing the exact same behaviour but using Intel graphics.

I have 2 machines here both running Arch Linux - one with nVidia graphics, one with Intel.

1. The nVidia machine is unaffected as it has always used GLX.
2. The Intel machine used to work (until about a month ago) with EGL.

Observered behaviour with EGL on Intel:

1. Plasma will stop updating
2. I can still switch between desktops, but the plasma bar never updates. It's not just the task switcher, all icons in the try become unresponsive as well.
3. I have tried disabling all effects.
4. Disabling compositing makes plasma work again
5. If I enable GLX instead of EGL, everything works.

Here is the diff of the support information when running with GLX and EGL

[code]
$ diff -u glx.txt egl.txt                                                                                                                                                 09/07/15 10:08:38 SGT
--- glx.txt     2015-07-09 10:08:02.461893565 +0800
+++ egl.txt     2015-07-09 10:08:28.235403769 +0800
@@ -120,11 +120,11 @@
 maxFpsInterval: 16666666
 refreshRate: 0
 vBlankTime: 6000000
-glStrictBinding: true
+glStrictBinding: false
 glStrictBindingFollowsDriver: true
 glCoreProfile: true
 glPreferBufferSwap: 101
-glPlatformInterface: 1
+glPlatformInterface: 2
 
 Screen Edges
 ============
@@ -156,7 +156,7 @@
 OpenGL vendor string: Intel Open Source Technology Center
 OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile 
 OpenGL version string: 3.3 (Core Profile) Mesa 10.6.1
-OpenGL platform interface: GLX
+OpenGL platform interface: EGL
 OpenGL shading language version string: 3.30
 Driver: Intel
 GPU class: Haswell
@@ -165,7 +165,7 @@
 Mesa version: 10.6.1
 X server version: 1.17.2
 Linux kernel version: 4.0.7
-Direct rendering: Requires strict binding: yes
+Direct rendering: Requires strict binding: no
 GLSL shaders:  yes
 Texture NPOT support:  yes
 Virtual Machine:  no
[/code]
Comment 7 Peter Hoeg 2015-07-09 03:42:58 UTC
Created attachment 93533 [details]
KWin support info - EGL
Comment 8 Peter Hoeg 2015-07-09 03:43:22 UTC
Created attachment 93534 [details]
KWin support info - GLX
Comment 9 Thomas Lübking 2015-07-09 04:55:47 UTC
Well, let's try the obvious:

in ~/.config/kwinrc find the "[Compositing]" section and alter (or add) "GLStrictBinding=true"
Save and then run "kwin_x11 --replace &"

=> egl still a problem?
Comment 10 Peter Hoeg 2015-07-09 05:09:54 UTC
(In reply to Thomas Lübking from comment #9)
> "GLStrictBinding=true"
> => egl still a problem?

Yep, still a problem.

Here's the diff between EGL in the past and EGL with GLStrictBinding:

-glStrictBinding: false
-glStrictBindingFollowsDriver: true
+glStrictBinding: true
+glStrictBindingFollowsDriver: false

I tried setting GLStrictBindingFollowsDriver=true in kwinrc as well afterwards but that doesn't seem to take effect.
Comment 11 Kiril Vladimirov 2015-08-11 09:01:12 UTC
I also suffer the same issue on Arch Linux: https://paste.kde.org/pnfxojy5d

This also doesn't solve it for me:
> "GLStrictBinding=true"
Comment 12 Johannes Pfrang 2015-08-24 18:38:20 UTC
Same issue with Fedora 22 KDE.
Comment 13 Johannes Pfrang 2015-08-24 19:04:47 UTC
I can not only get the taskbar to freeze by switching to EGL, but even Firefox freezes after a while or behaves very erratically. Switching back to GLX instantly resumes functionality of both.

Support info - EGL:

https://paste.kde.org/pxaohmxss

mozbz:1197632
Comment 14 Thomas Lübking 2015-08-24 19:36:51 UTC
Please
- set strict binding to true (see above posts)
- disable blur and contrast effects (kcmshell5 kwineffects)
- set the tearing prevention to "none"
- disable the second screen
- set the acceleration to UXA (https://wiki.archlinux.org/index.php/Intel_graphics#SNA_issues)

and check whether the problems remain. If not, (first keep UXA but) start to re-activate the other settings (ie. try returning to SNA last unless you encountered the issue for some setting before)
Comment 15 Johannes Pfrang 2015-08-24 20:20:11 UTC
Only testing taskbar for now, as Firefox always takes at least a couple minutes. Probably have to restore another session that triggered it nearly instantly.

Issue still present after doing steps 1 through 4.
"kwin_x11 --replace &" only done after the first.
Immediately after saving 20-intel.conf with AccelMethod uxa plasmashell crashed (https://paste.kde.org/p0djyhata).
"kwin_x11 --replace &" then added inability to switch/minimize/maximize windows (title bar is gone everywhere) and all menus (right-click menu, options button top right, NoScript Options) ceased to open. Right-click menus on the taskbar still open but ceased at least some functionality (Close/Move/Resize not working).

Should I try to restart cleanly into those settings, or do I have to do sth else than the kwin replace?

Fwiw, I also saw focus issues, e.g. in the "start menu" (is there another KDEish/*nixish word for it?) only every second element gets the focus background, but clicking still works as expected. After the switch to UXA, focus issues are gone (apart from not being able to close the start menu by clicking somewhere else, always have to use the menu button)
Comment 16 Johannes Pfrang 2015-08-24 20:24:19 UTC
/s/all menus/all Firefox menus/

Also, OpenGL interface in System Settings is now an empty dropdown. Expected?
Comment 17 Johannes Pfrang 2015-08-24 20:30:36 UTC
Fwiw Firefox urlbar now automagically does "Select all" on every keypress, effectively overwriting the previously written character unless manually unselecting oO
I have no idea how that could ever be closely related to what I'm doing...
Comment 18 Thomas Lübking 2015-08-24 20:34:18 UTC
The plasma crash is https://bugs.freedesktop.org/show_bug.cgi?id=86281 and that is actually supposed to be *caused* by SNA and *fixed* by UXA.

However:
> Immediately after saving 20-intel.conf with AccelMethod uxa plasmashell
You've to restart the X11 server in order to have this setting impact anything (log out and in should do) - if plasmashell crashed after saving the file, that's just coincidental and has no meaning.

> Also, OpenGL interface in System Settings is now an empty dropdown. Expected?
You mean in the compositor settings? Not if KWin is running, what however is likely no more the case from your explanations on
> "kwin_x11 --replace &" then added inability to switch/minimize/maximize windows

In that case you're currently without window manager and a lot of "strange" things will happen (ie. X11 behave like X11 ;-)

=> log out and back in (in very dout restart the system, X11 can usually be restarted by "Ctrl+Alt+Backspace"
Comment 19 Johannes Pfrang 2015-08-24 21:31:40 UTC
(In reply to Thomas Lübking from comment #18)
> => log out and back in 

done. now even the taskbar is fully functional again :)
worked my way up again (without logout/login) and now everything seems to be working again.
Support info now shows higher OpenGL/GLSL version and glCoreProfile: false->true in comparison to comment 13. Any help?

https://paste.kde.org/pqioyv5ez
Comment 20 Johannes Pfrang 2015-08-24 21:36:25 UTC
Oh, this may be related to unintendedly switching from OpenGL 2.0 to 3.1...
Comment 21 Johannes Pfrang 2015-08-24 21:43:38 UTC
The correct support info paste (with OpenGL 2.0):

https://paste.kde.org/pfnprsvja
Comment 22 Johannes Pfrang 2015-08-24 21:51:03 UTC
(In reply to Thomas Lübking from comment #14)
> (ie. try returning to SNA last unless you
> encountered the issue for some setting before)

Returning to SNA, the taskbar issue immediately reappeared (and plasmashell crashed again).
Comment 23 Martin Flöser 2015-08-25 06:02:29 UTC
Random rambling: maybe the true issue is that KWin uses EGL while QtQuick uses GLX? Maybe this is just not properly supported and causes things to go wrong?

Are the problems visible from the start or maybe only when e.g. using Alt+Tab which renders QtQuick windows?
Comment 24 Thomas Lübking 2015-08-25 06:12:18 UTC
It's notably that EGL + GLX is broken in SNA - or just a bug in SNA (i wonder whether this is just an early indication of the bug that ultimately crashes QtQuick on GL/sna)
Comment 25 Johannes Pfrang 2015-08-25 08:02:32 UTC
(In reply to Martin Gräßlin from comment #23)
> Are the problems visible from the start or maybe only when e.g. using
> Alt+Tab which renders QtQuick windows?

The problem with the taskbar immediately appears after switching from GLX to EGL in System Settings. One of my Firefox sessions is able to trigger the freeze for a single Firefox window almost instantly, while other windows continue to be fully functional. If it helps, I may be able to narrow down the offending websites and settings that cause Firefox to trigger the issue later today.
Comment 26 Kiril Vladimirov 2015-08-25 12:45:16 UTC
(In reply to Thomas Lübking from comment #14)
> Please
> - set strict binding to true (see above posts)
> - disable blur and contrast effects (kcmshell5 kwineffects)
> - set the tearing prevention to "none"
> - disable the second screen
> - set the acceleration to UXA
> (https://wiki.archlinux.org/index.php/Intel_graphics#SNA_issues)

None of them are fixing the taskbar issues for me except when setting the acceleration to UXA (even after restart). However UXA performs quite poorly on i7-5600U's integrated video card. So, I'm going to stick with SNA and GLX until this one is fixed.

(In reply to Martin Gräßlin from comment #23)
> Random rambling: maybe the true issue is that KWin uses EGL while QtQuick
> uses GLX? Maybe this is just not properly supported and causes things to go
> wrong?
> 
> Are the problems visible from the start or maybe only when e.g. using
> Alt+Tab which renders QtQuick windows?

Almost exactly from the start. I've activated the "Show seconds" option in my digital clock widget (on the taskbar) and after I switch to GLX (or boot with it) I see the seconds updated two up-to three times (most of them skipping one second) and then it freezes for good. During that time I'm not alt+tabbing nor actually doing anything at all.

(In reply to Johannes Pfrang from comment #20)
> Oh, this may be related to unintendedly switching from OpenGL 2.0 to 3.1...

I have this issue with both 2.0 and 3.1, though (I assume you mean the "Rendering backend" option in the "Composite settings").
Comment 27 Johannes Pfrang 2015-08-25 18:27:40 UTC
(In reply to Kiril Vladimiroff from comment #26)
> Almost exactly from the start. I've activated the "Show seconds" option in
> my digital clock widget (on the taskbar) and after I switch to GLX (or boot
> with it) I see the seconds updated two up-to three times (most of them
> skipping one second) and then it freezes for good. During that time I'm not
> alt+tabbing nor actually doing anything at all.
I can confirm the same behavior here.

> I have this issue with both 2.0 and 3.1, though (I assume you mean the
> "Rendering backend" option in the "Composite settings").
That comment was a correction of my previous comment that originated from my confusion about OpenGL 2.0 being 3.0 and OpenGL 3.1 being 3.3 in System Settings vs Support Information.
Comment 28 Thomas Lübking 2015-08-25 19:27:14 UTC
Bottom line is that SNA is faster but not perfect - at least it seems (aside the brw_meta_fast_clear bug) have to trouble with GLX clients in an EGL compositor.
Comment 29 Kiril Vladimirov 2015-10-30 14:19:37 UTC
FYI not long ago I found that having this in xorg.conf completely solved that issue for me:

Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"    "sna"
   Option      "DRI"            "3"
   Option      "TearFree"       "true"
EndSection
Comment 30 Thomas Lübking 2015-10-30 15:32:09 UTC
What did you get otherwise? glamor acceleration? (rest afair should be the defaults anyway)
Comment 31 Johannes Pfrang 2015-11-10 19:22:30 UTC
I can confirm comment 29. Enabling DRI3 completely solved the issue for me.
TearFree was not necessary for me though.

(And judging from my mesa version (11.0.4) I don't even have the new and awesome DRI3 patches: https://www.phoronix.com/scan.php?page=news_item&px=Mesa-DRI3-EGL-Support-V3)
Comment 32 Thomas Lübking 2015-11-10 19:44:12 UTC

*** This bug has been marked as a duplicate of bug 338150 ***