Bug 331444 - Black windows after updating the kernel w/o reinstalling MESA (only GLX)
Summary: Black windows after updating the kernel w/o reinstalling MESA (only GLX)
Status: RESOLVED DOWNSTREAM
Alias: None
Product: kwin
Classification: Plasma
Component: scene-opengl (show other bugs)
Version: 4.11.6
Platform: Ubuntu Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-02-23 23:23 UTC by avlas
Modified: 2014-04-15 14:00 UTC (History)
2 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description avlas 2014-02-23 23:23:26 UTC
Bug initially filled in Launchpad (https://bugs.launchpad.net/ubuntu/+source/kde-workspace/+bug/1283820) and redirected from there to here:

When I start a session all my windows appear in black as well as my desktop if using kwin. This behavior is not entirely deterministic, it occurs about 75% of the times. I have an intel graphic card, and same thing happens no matter sna or uxa is used.

This doesn't happen if using kwin_gles instead (but I don't use it because then the blur effect doesn't work).

If I then disable the desktop effects, windows and desktop appear normally. If I then reenable the desktop effects, the same buggy behavior happens.

Reproducible: Sometimes
Comment 1 Thomas Lübking 2014-02-23 23:40:29 UTC
Please provide (with active compositing, the issue does *not* have to be present) the output of
   qdbus org.kde.kwin /KWin supportInformation
("qdbus" might be "qdbus-qt4")

Also, this maybe /is/ in the blur effect, so please try to deactivate it and see whether the bug still occurs.

Last, this might be bug #330986, being https://bugs.freedesktop.org/show_bug.cgi?id=74316

try
   MESA_DEBUG=1 and LIBGL_DEBUG=1 kwin --replace &
and watch for errors when windows turn black (if this only occurs on session start or not at all, that's gonna be more complicated and we'll check the other information first ;-)
Comment 2 avlas 2014-02-23 23:47:44 UTC
Output of "qdbus org.kde.kwin /KWin supportInformation" :

Version
=======
KWin version: 4.11.6
KDE SC version (runtime): 4.12.2
KDE SC version (compile): 4.12.2
Qt Version: 4.8.6

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: 0
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
glDirect: true
glStrictBinding: false
glStrictBindingFollowsDriver: true
glLegacy: false
glCoreProfile: true
glPreferBufferSwap: 101

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

Screens
=======
Multi-Head: no
Active screen follows mouse:  no
Number of Screens: 1
Screen 0 Geometry: 0,0,1600x900

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

Compositing
===========
Qt Graphics System: raster
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.1 (Core Profile) Mesa 10.1.0-rc1
OpenGL shading language version string: 1.40
Driver: Intel
GPU class: SandyBridge
OpenGL version: 3.1
GLSL version: 1.40
Mesa version: 10.1
X server version: 1.15
Linux kernel version: 3.13
Direct rendering: yes
Requires strict binding: no
GLSL shaders:  yes
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used
Painting blocks for vertical retrace:  no

Loaded Effects:
---------------
kwin4_effect_maximize
kwin4_effect_thumbnailaside
kwin4_effect_dimscreen
kwin4_effect_slidingpopups
kwin4_effect_login
kwin4_effect_wobblywindows
kwin4_effect_magiclamp
kwin4_effect_slideback
kwin4_effect_fadedesktop
kwin4_effect_scalein
kwin4_effect_desktopgrid
kwin4_effect_fade
kwin4_effect_taskbarthumbnail
kwin4_effect_presentwindows
kwin4_effect_blur
kwin4_effect_dashboard
kwin4_effect_logout
kwin4_effect_screenedge
kwin4_effect_kscreen

Currently Active Effects:
-------------------------
kwin4_effect_blur

Effect Settings:
----------------
kwin4_effect_maximize:

kwin4_effect_thumbnailaside:
maxWidth: 200
spacing: 10
opacity: 0.5
screen: -1

kwin4_effect_dimscreen:

kwin4_effect_slidingpopups:
fadeInTime: 50
fadeOutTime: 50

kwin4_effect_login:

kwin4_effect_wobblywindows:
stiffness: 0.15
drag: 0.8
moveFactor: 0.1
xTesselation: 20
yTesselation: 20
minVelocity: 0
maxVelocity: 1000
stopVelocity: 0.5
minAcceleration: 0
maxAcceleration: 1000
stopAcceleration: 0.5
moveEffectEnabled: true
openEffectEnabled: false
closeEffectEnabled: false
moveWobble: true
resizeWobble: true

kwin4_effect_magiclamp:
animationDuration: 50

kwin4_effect_slideback:

kwin4_effect_fadedesktop:

kwin4_effect_scalein:

kwin4_effect_desktopgrid:
zoomDuration: 60
border: 10
desktopNameAlignment: 0
layoutMode: 0
customLayoutRows: 2
usePresentWindows: true

kwin4_effect_fade:

kwin4_effect_taskbarthumbnail:

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

kwin4_effect_blur:
blurRadius: 7
cacheTexture: true

kwin4_effect_dashboard:
brightness: 0.4
saturation: 1
blur: true

kwin4_effect_logout:
useBlur: true

kwin4_effect_screenedge:

kwin4_effect_kscreen:
Comment 3 Thomas Lübking 2014-02-23 23:51:31 UTC
> glCoreProfile: true
run "kcmshell4 kwincompositing" and in the third tab set "Compositing Type" to "OpenGL 2", reboot (yes) and see whether it still happens.
Comment 4 avlas 2014-02-24 04:22:43 UTC
Disabling Blur doesn't fix the issue, neither it does using OpenGL 2 instead of 3.1 :(

I'm going to try this now and let you know:
MESA_DEBUG=1 and LIBGL_DEBUG=1 kwin --replace &
Comment 5 avlas 2014-02-24 04:42:11 UTC
This is what I got with
MESA_DEBUG=1
LIBGL_DEBUG=1
kwin --replace &

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
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
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:                   Intel Open Source Technology Center
OpenGL renderer string:                 Mesa DRI Intel(R) Sandybridge Mobile 
OpenGL version string:                  3.1 (Core Profile) Mesa 10.1.0-rc1
OpenGL shading language version string: 1.40
Driver:                                 Intel
GPU class:                              SandyBridge
OpenGL version:                         3.1
GLSL version:                           1.40
Mesa version:                           10.1
X server version:                       1.15
Linux kernel version:                   3.13
Direct rendering:                       yes
Requires strict binding:                no
GLSL shaders:                           yes
Texture NPOT support:                   yes
Virtual Machine:                        no
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Comment 6 avlas 2014-02-24 04:49:44 UTC
Forgot to say that buggy behavior is 100% reproducible to me when I restart a session. On first start after a system reboot, while most of the times it happens, sometimes it doesn't.
Comment 7 Thomas Lübking 2014-02-24 05:54:04 UTC
(In reply to comment #5)
> This is what I got with
> MESA_DEBUG=1
> LIBGL_DEBUG=1
> kwin --replace &

if you typed that in three rows (commands), the statements had no effect. would be:
export MESA_DEBUG=1
export LIBGL_DEBUG=1
kwin --replace &

as a wild shot, you also may try to
export   KWIN_USE_BUFFER_AGE=0

- does opengl 1 work?
- is the screen entirely black or can you see the blue glow around the active window? eventually try the mousemark or mouseclick effects?
- can you try downgrading to the latest stable MESA?
Comment 8 avlas 2014-02-24 06:03:49 UTC
Ok, with all exports:

Ok, sorry. Then:

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
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
QCoreApplication::sendPostedEvents: Cannot send posted events for objects in another thread
libGL: Can't open configuration file /home/jsardid/.drirc: No such file or directory.
libGL: Can't open configuration file /home/jsardid/.drirc: No such file or directory.
libGL: Can't open configuration file /home/jsardid/.drirc: El fitxer o directori no existeix.
libGL: Can't open configuration file /home/jsardid/.drirc: El fitxer o directori no existeix.
OpenGL vendor string:                   Intel Open Source Technology Center
OpenGL renderer string:                 Mesa DRI Intel(R) Sandybridge Mobile 
OpenGL version string:                  3.1 (Core Profile) Mesa 10.1.0-rc1
OpenGL shading language version string: 1.40
Driver:                                 Intel
GPU class:                              SandyBridge
OpenGL version:                         3.1
GLSL version:                           1.40
Mesa version:                           10.1
X server version:                       1.15
Linux kernel version:                   3.13
Direct rendering:                       yes
Requires strict binding:                no
GLSL shaders:                           yes
Texture NPOT support:                   yes
Virtual Machine:                        no
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Object::connect: No such slot KCommonDecorationButton::slotAppMenuHidden()
Comment 9 avlas 2014-02-24 06:10:49 UTC
Downgrading mesa is difficult, sorry, I just use what is in Kubuntu 14.04 (I'll try to see whether there is a way though...)

Glow is working, but I cannot see anything related to the mouse.

No OpenGL option works, only XRender
Comment 10 avlas 2014-03-01 12:49:04 UTC
I could not downgrade but I could upgrade to git version and then downgrade again to same 10.1 version using ppa in trusty.

This solved the problem for a while, but now it just happened again. Could this be linked to how linux packages manage to interact with mesa packages? I just got an update on the kernel, but this could be just a coincidence. I'll reinstall mesa to see if it fixes this, and then be watching if this is reproducible in next kernel update... In that case this would most surely be a problem in K-/Ubuntu

Also, in kwin_gles it works fine but I get this error, I guess related to why the blur effect is not activated:

libEGL warning: failed to create a pipe screen for i965
OpenGL vendor string:                   Intel Open Source Technology Center
OpenGL renderer string:                 Mesa DRI Intel(R) Sandybridge Mobile 
OpenGL version string:                  OpenGL ES 3.0 Mesa 10.1.0-rc1
OpenGL shading language version string: OpenGL ES GLSL ES 3.0
Driver:                                 Intel
GPU class:                              SandyBridge
OpenGL version:                         3.0
GLSL version:                           3.0
Mesa version:                           10.1
X server version:                       1.15
Linux kernel version:                   3.13
Direct rendering:                       yes
Requires strict binding:                no
GLSL shaders:                           yes
Texture NPOT support:                   yes
Virtual Machine:                        no
kwin(3355): 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:11(7): error: no precision specified this scope for type `vec4'

kwin(3355): Failed to link shader: 
"error: program lacks a fragment shader
Comment 11 avlas 2014-03-07 20:32:01 UTC
Although very weird, this seems to be confirmed by experience. If linux packages are updated, I need to manually reinstall the mesa packages to have a working kwin in next session (surely manually reconfiguring mesa would be enough too, but I didn't try). If I don't do that my plasma desktop and application windows appear in black.
Comment 12 Thomas Lübking 2014-03-07 20:35:14 UTC
Ubuntu -> ppa or stock packages? 64 or 32 bit?
Comment 13 avlas 2014-03-07 20:37:55 UTC
This is Kubuntu Trusty 64 bits (currently in beta) and mesa 10.1.0~rc1 and same for 10.1.0~rc2 (it has been an update to mesa 10.1.0~rc3 recently, but I didn't reboot my system yet)
Comment 14 Thomas Lübking 2014-03-07 20:52:55 UTC
I cannot find the "linux" package on packages.ubuntu.com
However:
any chance you got fglrx or nvidia installed (which should be updated with the kernel and may override libGLX)?
Comment 15 avlas 2014-03-07 21:10:30 UTC
- by linux I referred to the kernel, which is split in the following packages:
ii  linux-generic                         3.13.0.16.20                                      amd64        Complete Generic Linux kernel and headers
ii  linux-headers-3.13.0-16               3.13.0-16.36                                      all          Header files related to Linux kernel version 3.13.0
ii  linux-headers-3.13.0-16-generic       3.13.0-16.36                                      amd64        Linux kernel headers for version 3.13.0 on 64 bit x86 SMP
ii  linux-headers-generic                 3.13.0.16.20                                      amd64        Generic Linux kernel headers
ii  linux-image-3.13.0-16-generic         3.13.0-16.36                                      amd64        Linux kernel image for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-extra-3.13.0-16-generic   3.13.0-16.36                                      amd64        Linux kernel extra modules for version 3.13.0 on 64 bit x86 SMP
ii  linux-image-generic                   3.13.0.16.20                                      amd64        Generic Linux kernel image
ii  linux-libc-dev:amd64                  3.13.0-16.36                                      amd64        Linux Kernel Headers for development

- no nvidia neither fglrx here, I have an intel graphic card, perhaps intel packages or nouveau packages do that as well? not that I use nouveau but it's installed by default and cannot be easily uninstalled without uninstalling kwin, mesa, and more...
Comment 16 Thomas Lübking 2014-03-07 22:41:10 UTC
nouveau and intel both use libGL from MESA (just fglrx and nvidia have incompatible GL libraries) - though it's irritating that nouveau should be mandatory in any way (just eg. libdrm would be, so libs that nouveau and intel both rely on)

Unless your pattern breaks, this would be a downstream issue.
You could stat the mesa files before and after a kernel update to see whether they've been compromised.

Just to rule that out: "updated linux" includes a reboot, yesno?
Comment 17 avlas 2014-03-07 23:26:24 UTC
I'll try to check that on next kernel update...

I'm sure this happened after a reboot, not so sure whether restarting a session triggered it too
Comment 18 avlas 2014-03-14 03:19:04 UTC
I think this was fixed on mesa 10.1 rc3
Comment 19 avlas 2014-03-18 16:21:51 UTC
I confirm I was again bitten by the bug since I updated mesa to 10.1.0-1ubuntu1 packages
Comment 20 Thomas Lübking 2014-03-18 20:32:45 UTC
iow it was NOT fixed by 10.1 rc3?
Comment 21 avlas 2014-03-18 20:36:24 UTC
true, it might have happened that it was not fixed with mesa 10.1 rc3 and I transiently didn't suffer the bug, as it doesn't seem to be 100% reproducible