Bug 340876 - kwin_x11 does not draw any window with openGL (intel driver, Qt 5.4)
Summary: kwin_x11 does not draw any window with openGL (intel driver, Qt 5.4)
Status: RESOLVED UPSTREAM
Alias: None
Product: kwin
Classification: Plasma
Component: scene-opengl (show other bugs)
Version: git master
Platform: Other Linux
: NOR grave
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-11-12 06:44 UTC by Luca Beltrame
Modified: 2014-12-31 04:30 UTC (History)
1 user (show)

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


Attachments
Supporting information under EGL (4.09 KB, text/plain)
2014-11-12 09:58 UTC, Luca Beltrame
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Luca Beltrame 2014-11-12 06:44:01 UTC
With Qt 5.4, KWin shows a peculiar behavior. When starting up, it will "freeze" the display on whatever it is shown at the moment (e.g., the splash when logging in) and then it will not display any window. Notice that the applications are actually working, e.g. I can slide down Yakuake and see the pointer turning into a caret.  But what's displayed does not change.

It's like having a "blind" screen.

This occurs only with openGL, and I've tried a different combinations of kernels (3.17 and latest 3.18rc4) and Mesa (latest stable, current git), with no success. Relatedly, the compositing KCM does not show if we're using GLX or GLES (combobox greyed out).

I'll post supporting information and KWin output as comments.

Reproducible: Always

Steps to Reproduce:
1. Log in from the display manager / run kwin_x11 --replace


Actual Results:  
Screen is frozen, applications run but they are not displayed (save for the mouse pointer).

Expected Results:  
Display works as intended.

kwin 4.x has no issues.
Comment 1 Luca Beltrame 2014-11-12 06:44:20 UTC
Output from kwin_x11:

Trying to load decoration plugin "Oxygen"
Constructing a KPluginInfo object from old style JSON. Please use kcoreaddons_desktop_to_json() instead of kservice_desktop_to_json() in your CMake code.
Constructing a KPluginInfo object from old style JSON. Please use kcoreaddons_desktop_to_json() instead of kservice_desktop_to_json() in your CMake code.
screens:  1 desktops:  1
Done.
User timestamp, ASN: 174260
User timestamp, final: 'ID: 23068693 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Desktop — Plasma" ' : 174260
Activation: No client active, allowing
screens:  1 desktops:  1
Done.
User timestamp, ASN: 164164
User timestamp, final: 'ID: 23068708 ;WMCLASS: "plasmashell" : "plasmashell" ;Caption: "Plasma" ' : 164164
Activation: No client active, allowing
screens:  1 desktops:  1
Done.
User timestamp, ASN: 541931
User timestamp, final: 'ID: 58720262 ;WMCLASS: "yakuake" : "yakuake" ;Caption: "Yakuake" ' : 541931
Activation: No client active, allowing
screens:  1 desktops:  1
Done.
screens:  1 desktops:  1
Done.
KWin::Client(0x1cbbf70) true false false
PERMITTED 'ID: 58720262 ;WMCLASS: "yakuake" : "yakuake" ;Caption: "Yakuake" ' true
KWin::Client(0x1cbbf70) true false false
PERMITTED 'ID: 58720262 ;WMCLASS: "yakuake" : "yakuake" ;Caption: "Yakuake" ' true
screens:  1 desktops:  1
Done.
Initializing OpenGL compositing
Buffer visual (depth  24 ): 0x "86"
OpenGL vendor string:                   Intel Open Source Technology Center
OpenGL renderer string:                 Mesa DRI Intel(R) Sandybridge Mobile 
OpenGL version string:                  3.3 (Core Profile) Mesa 10.4.0-devel
OpenGL shading language version string: 3.30
Driver:                                 Intel
GPU class:                              SandyBridge
OpenGL version:                         3.3
GLSL version:                           3.30
Mesa version:                           10.4
X server version:                       1.16.1
Linux kernel version:                   3.18
Requires strict binding:                yes
GLSL shaders:                           yes
Texture NPOT support:                   yes
Virtual Machine:                        no
Direct rendering: true 

Color correction: false
OpenGL 2 compositing successfully initialized
Vertical Refresh rate  60 Hz
Trying to open ksycoca from "/home/einar/.cache/ksycoca5"
Using FBConfig 0x6e for visual 0x61
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1304, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1305, resource id: 0, major code: 14 (GetGeometry), minor code: 0
QXcbConnection: XCB error: 9 (BadDrawable), sequence: 1316, resource id: 0, major code: 14 (GetGeometry), minor code: 0
Trying to open ksycoca from "/home/einar/.cache/ksycoca5"
Successfully loaded built-in effect:  "blur"
Successfully loaded built-in effect:  "contrast"
Session path: "/org/freedesktop/login1/session/_34"
Successfully loaded built-in effect:  "dashboard"
Successfully loaded scripted effect:  "kwin4_effect_fade"
Successfully loaded built-in effect:  "desktopgrid"
Successfully loaded scripted effect:  "kwin4_effect_login"
Successfully loaded built-in effect:  "highlightwindow"
Successfully loaded scripted effect:  "kwin4_effect_dialogparent"
Successfully loaded built-in effect:  "kscreen"
Successfully loaded scripted effect:  "kwin4_effect_translucency"
Successfully loaded built-in effect:  "logout"
Successfully loaded scripted effect:  "kwin4_effect_maximize"
Successfully loaded built-in effect:  "minimizeanimation"
Successfully loaded built-in effect:  "presentwindows"
Successfully loaded built-in effect:  "screenedge"
Successfully loaded built-in effect:  "screenshot"
Successfully loaded built-in effect:  "slide"
Successfully loaded built-in effect:  "slidingpopups"
Comment 2 Luca Beltrame 2014-11-12 06:50:58 UTC
Informazioni per il supporto di KWin:
Le seguenti informazioni dovrebbero essere usate quando si richiede supporto su (ad esempio) http://forum.kde.org.
Forniscono i dettagli sull'istanza attualmente in eseuzione, le opzioni usate,
il driver OpenGL e gli effetti in uso.
Metti le informazioni indicate sotto questo testo introduttivo su un servizio paste bin
come http://paste.kde.org invece di incollarlo nella conversazione di supporto.

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

Version
=======
KWin version: 5.1.90
Qt Version: 5.4.0

Operation Mode: X11 only

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
placement: 4
focusPolicyIsReasonable: true
borderSnapZone: 10
windowSnapZone: 10
centerSnapZone: 0
snapOnlyWhenOverlapping: false
showDesktopIsMinimizeAll: false
rollOverDesktops: true
focusStealingPreventionLevel: 1
legacyFullscreenSupport: false
operationTitlebarDblClick: 
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: 1
colorCorrected: false
xrenderSmoothScale: false
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glStrictBinding: true
glStrictBindingFollowsDriver: true
glCoreProfile: true
glPreferBufferSwap: 101
glPlatformInterface: 

Screen Edges
============
desktopSwitching: false
desktopSwitchingMovingClients: false
cursorPushBackDistance: 
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: 1
Screen 0 Geometry: 0,0,1366x768

Decoration
==========
Current Plugin: Oxygen
Shadows: yes
Alpha: yes
Announces Alpha: yes
Tabbing: yes
Frame Overlap: no
Blur Behind: no

Compositing
===========
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Intel(R) Sandybridge Mobile 
OpenGL version string: 3.3 (Core Profile) Mesa 10.4.0-devel
OpenGL platform interface: GLX
OpenGL shading language version string: 3.30
Driver: Intel
GPU class: SandyBridge
OpenGL version: 3.3
GLSL version: 3.30
Mesa version: 10.4
X server version: 1.16.1
Linux kernel version: 3.18
Direct rendering: Requires strict binding: yes
GLSL shaders:  yes
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used
Painting blocks for vertical retrace:  no

Loaded Effects:
---------------
zoom
slidingpopups
kwin4_effect_login
slide
screenshot
minimizeanimation
kwin4_effect_translucency
desktopgrid
kwin4_effect_maximize
kwin4_effect_fade
presentwindows
kwin4_effect_dialogparent
highlightwindow
blur
contrast
logout
dashboard
startupfeedback
screenedge
kscreen

Currently Active Effects:
-------------------------
blur
contrast

Effect Settings:
----------------
zoom:
zoomFactor: 1.2
mousePointer: 0
mouseTracking: 0
enableFocusTracking: false
followFocus: true
focusDelay: 350
moveFactor: 20
targetZoom: 1

slidingpopups:
fadeInTime: 150
fadeOutTime: 250

kwin4_effect_login:

slide:

screenshot:

minimizeanimation:

kwin4_effect_translucency:

desktopgrid:
zoomDuration: 300
border: 10
desktopNameAlignment: 0
layoutMode: 0
customLayoutRows: 2
usePresentWindows: true

kwin4_effect_maximize:

kwin4_effect_fade:

presentwindows:
layoutMode: 0
showCaptions: true
showIcons: true
doNotCloseWindows: false
ignoreMinimized: false
accuracy: 20
fillGaps: true
fadeDuration: 150
showPanel: false
leftButtonWindow: 1
rightButtonWindow: 2
middleButtonWindow: 0
leftButtonDesktop: 2
middleButtonDesktop: 0
rightButtonDesktop: 0

kwin4_effect_dialogparent:

highlightwindow:

blur:
blurRadius: 12
cacheTexture: true

contrast:

logout:
useBlur: true

dashboard:
brightness: 0.5
saturation: 0.5
blur: false

startupfeedback:
type: 1

screenedge:

kscreen:
Comment 3 Luca Beltrame 2014-11-12 06:52:33 UTC
Forgot to say: with XRender there is no problem.
Comment 4 Martin Flöser 2014-11-12 07:09:27 UTC
> Forgot to say: with XRender there is no problem.

what about OpenGL 2 instead of 3? EGL instead of GLX?
Comment 5 Luca Beltrame 2014-11-12 07:14:35 UTC
Il 12 novembre 2014 08:09:27 CET, "Martin Gräßlin " <mgraesslin@kde.org> ha scritto:

>what about OpenGL 2 instead of 3? EGL instead of GLX?

OpenGL 2/3: no difference. What is the config key for egl? As written I cannot use the kcm.
Comment 6 Martin Flöser 2014-11-12 07:22:44 UTC
On Wednesday 12 November 2014 07:14:35 you wrote:
> https://bugs.kde.org/show_bug.cgi?id=340876
> 
> --- Comment #5 from Luca Beltrame <lbeltrame@kde.org> ---
> Il 12 novembre 2014 08:09:27 CET, "Martin Gräßlin " <mgraesslin@kde.org> ha
> 
> scritto:
> >what about OpenGL 2 instead of 3? EGL instead of GLX?
> 
> OpenGL 2/3: no difference. What is the config key for egl? As written I
> cannot use the kcm.

[Compositing]
GLPlatformInterface=egl
Comment 7 Luca Beltrame 2014-11-12 08:36:04 UTC
Works with EGL.
Comment 8 Martin Flöser 2014-11-12 09:52:46 UTC
could you please post the debug information when running on EGL?
Comment 9 Luca Beltrame 2014-11-12 09:58:48 UTC
Created attachment 89549 [details]
Supporting information under EGL
Comment 10 Martin Flöser 2014-11-12 10:03:08 UTC
Ok that looks good. My current summary is: either driver broken or we have a bad, bad problem when using Qt 5.4.
Comment 11 Luca Beltrame 2014-11-12 10:05:56 UTC
For completeness' sake: this occurred also with Qt 5.3 but it was occasional - it occurred randomly and a KWin restart was all it was needed to get it back into shape. At the time I blamed the drivers as I'm running mostly off Mesa git.

However it became 100% reproducible when I switched to Qt 5.4. I guess I could try with Intel driver options, but I'm not too familiar with those which could impact KWin.
Comment 12 Luca Beltrame 2014-11-12 10:09:33 UTC
I have to say it's not perfect though: there's still some breakage (partial rendering) when locking screen and getting back. That may be the driver/kernel combination though (IOW, not sure if it's related, I'll try to investigate).
Comment 13 Thomas Lübking 2014-11-12 10:31:19 UTC
wild shot (for glx):
export KWIN_USE_BUFFER_AGE=0
Comment 14 Luca Beltrame 2014-11-12 12:26:48 UTC
In data mercoledì 12 novembre 2014 10:31:19, hai scritto:

> export KWIN_USE_BUFFER_AGE=0

Seems to fix the glitches in EGL mode too.
Comment 15 Martin Flöser 2014-11-12 13:30:34 UTC
> > export KWIN_USE_BUFFER_AGE=0
> 
> Seems to fix the glitches in EGL mode too.

and on GLX?
Comment 16 Luca Beltrame 2014-11-12 13:36:22 UTC
In data mercoledì 12 novembre 2014 13:30:34, hai scritto:

> and on GLX?

No improvements, just tested.
Comment 17 Thomas Lübking 2014-11-12 14:10:05 UTC
Hello bisect =)
(Well, somehow)

- Fall back to OpenGL 2.0 (just to rule additional GL3 issues out)
- Disable *all* effect plugins and see whether the issue (on GLX) remains.
- If not (ie. things work as expected), try re-activating them one-by-one - start with "contrast" and "blur"
Comment 18 Luca Beltrame 2014-11-12 23:28:43 UTC
In data mercoledì 12 novembre 2014 14:10:05, hai scritto:

> - Fall back to OpenGL 2.0 (just to rule additional GL3 issues out)
> - Disable *all* effect plugins and see whether the issue (on GLX) remains.

Issue persists even with all effect plugins disabled.
Comment 19 Luca Beltrame 2014-11-12 23:50:00 UTC
FYI, I've tried all sorts of driver options but with openGL the issue 
persists.
Comment 20 Luca Beltrame 2014-11-13 12:40:57 UTC
I realized I hadn't fully downgraded the stack. When going back to latest Mesa 
+ latest intel driver, it works. So it's a regression (and a big one) in the 
intel driver.

Can you flag this resolved upstream? I don't have my bugzilla password here.
Comment 21 Thomas Lübking 2014-11-13 12:41:56 UTC
glamor issue?
Comment 22 Luca Beltrame 2014-11-13 12:47:51 UTC
In data giovedì 13 novembre 2014 12:41:56, hai scritto:

> glamor issue?

Might be. Is there some documentation on how to tweak GLAMOR?
Comment 23 Thomas Lübking 2014-11-13 12:49:17 UTC
i'd start by setting the accel method to sna ;-)


/etc/X11/xorg.conf.d/20-intel.conf
Section "Device"
   Identifier  "Intel Graphics"
   Driver      "intel"
   Option      "AccelMethod"  "sna"
EndSection