Bug 322156

Summary: EGLONX: unplugging display creates corrupted screen content
Product: [Plasma] kwin Reporter: Michi <woskimi>
Component: scene-openglAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED UNMAINTAINED    
Severity: normal CC: dvratil
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: shows the screen after unplugging second display

Description Michi 2013-07-09 13:27:57 UTC
I see this problem when I use the kded module to automatically handle dual screen setups.
Initially, when I plug in my second display kscreen sets up the workspace as I intent to (2nd display is rightOf primary display). But, when I unplug that second screen at runtime the following happens:

- mouse area gets properly readjusted to the primary screen
- graphical content from primary display gets squeezed into the left half of the screen
- the right half shows some graphic artifacts

To me it seems that the drawable screen area is not being reset.

this is the xrandr output when both displays are enabled:

Screen 0: minimum 320 x 200, current 3600 x 1200, maximum 32767 x 32767
LVDS1 connected primary 1920x1200+0+0 (normal left inverted right x axis y axis) 331mm x 207mm
   1920x1200      60.0*+   40.0
   1600x1200      60.0
   1400x1050      60.0
   1280x1024      60.0
   1280x960       60.0
   1024x768       60.0
   800x600        60.3     56.2
   640x480        59.9
VGA1 disconnected (normal left inverted right x axis y axis)
HDMI1 connected 1680x1050+1920+0 (normal left inverted right x axis y axis) 433mm x 271mm
   1680x1050      60.0*+   59.9
   1600x1200      60.0
   1280x1024      75.0     60.0
   1440x900       75.0     59.9
   1280x800       74.9     59.9
   1280x720       60.0     50.0
   1024x768       75.1     60.0
   800x600        75.0     60.3
   720x576        50.0
   720x480        59.9
   640x480        75.0     60.0     59.9
   720x400        70.1



Reproducible: Always
Comment 1 Michi 2013-07-09 13:29:02 UTC
Created attachment 81021 [details]
shows the screen after unplugging second display
Comment 2 Michi 2013-07-09 13:30:53 UTC
version is some recent git snapshot (not the latest, but problem exists for some time now)
Comment 3 Alex Fiestas 2013-07-25 20:02:54 UTC
Setting bug to KWin.

Can you provide the output of:
qdbus org.kde.kwin /KWin org.kde.KWin.supportInformation

I have had similar issues with i965.
Comment 4 Michi 2013-07-25 20:20:55 UTC
(In reply to comment #3)
> Setting bug to KWin.
> 
> Can you provide the output of:
> qdbus org.kde.kwin /KWin org.kde.KWin.supportInformation
> 
> I have had similar issues with i965.
indeed, I use the i965 driver.

$ qdbus org.kde.kwin /KWin org.kde.KWin.supportInformation                                                                                               
Unable to load library icui18n "Cannot load library icui18n: (icui18n: cannot open shared object file: No such file or directory)"                       
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: 4.10.95                                                                                                                                    
KDE SC version (runtime): 4.10.95 "release 11"                                                                                                           
KDE SC version (compile): 4.10.95 "release 11"                                                                                                           
Qt Version: 4.8.5                                                                                                                                        
                                                                                                                                                         
Options                                                                                                                                                  
=======                                                                                                                                                  
focusPolicy: 0                                                                                                                                           
nextFocusPrefersMouse: true                                                                                                                              
clickRaise: true                                                                                                                                         
autoRaise: false                                                                                                                                         
autoRaiseInterval: 0                                                                                                                                     
delayFocusInterval: 0                                                                                                                                    
shadeHover: false                                                                                                                                        
shadeHoverInterval: 250                                                                                                                                  
separateScreenFocus: true                                                                                                                                
placement: 6                                                                                                                                             
focusPolicyIsReasonable: true                                                                                                                            
borderSnapZone: 10                                                                                                                                       
windowSnapZone: 10                                                                                                                                       
centerSnapZone: 0                                                                                                                                        
snapOnlyWhenOverlapping: false                                                                                                                           
showDesktopIsMinimizeAll: false                                                                                                                          
rollOverDesktops: true                                                                                                                                   
focusStealingPreventionLevel: 2
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: false
inactiveTabsSkipTaskbar: false
autogroupSimilarWindows: false
autogroupInForeground: true
compositingMode: 1
useCompositing: true
compositingInitialized: true
hiddenPreviews: 2
unredirectFullscreen: false
glSmoothScale: 2
colorCorrected: false
xrenderSmoothScale: true
maxFpsInterval: 16666666
refreshRate: 0
vBlankTime: 6000000
glDirect: true
glStrictBinding: false
glStrictBindingFollowsDriver: true
glLegacy: false
glCoreProfile: true
glPreferBufferSwap: 0

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

Screens
=======
Multi-Head: no
Number of Screens: 1
Screen 0 Geometry: 0,0,1920x1200

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

Compositing
===========
Qt Graphics System: raster
Compositing is active
Compositing Type: OpenGL ES 2.0
OpenGL vendor string: Intel Open Source Technology Center
OpenGL renderer string: Mesa DRI Mobile Intel® GM45 Express Chipset 
OpenGL version string: OpenGL ES 2.0 Mesa 9.2.0-devel
OpenGL shading language version string: OpenGL ES GLSL ES 1.0.16
Driver: Intel
GPU class: i965
OpenGL version: 2.0
GLSL version: 1.0.16
Mesa version: 9.2
X server version: 1.14.2
Linux kernel version: 3.10
Direct rendering: yes
Requires strict binding: no
GLSL shaders:  yes
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used

Loaded Effects:
---------------
kwin4_effect_zoom
kwin4_effect_dimscreen
kwin4_effect_mouseclick
kwin4_effect_slidingpopups
kwin4_effect_login
kwin4_effect_wobblywindows
kwin4_effect_coverswitch
kwin4_effect_screenshot
kwin4_effect_desktopgrid
kwin4_effect_flipswitch
kwin4_effect_translucency
kwin4_effect_magiclamp
kwin4_effect_fadedesktop
kwin4_effect_maximize
kwin4_effect_zoomdesktop
kwin4_effect_fade
kwin4_effect_highlightwindow
kwin4_effect_taskbarthumbnail
kwin4_effect_presentwindows
kwin4_effect_blur
kwin4_effect_logout
kwin4_effect_dashboard
kwin4_effect_screenedge
kwin4_effect_startupfeedback
kwin4_effect_kscreen

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

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

kwin4_effect_dimscreen:

kwin4_effect_mouseclick:
color1: #ff0000
color2: #00ff00
color3: #0000ff
lineWidth: 1
ringLife: 350
ringSize: 25
ringCount: 3
showText: false
font: Dosis,9,-1,5,50,0,0,0,0,0
enabled: false

kwin4_effect_slidingpopups:
fadeInTime: 500
fadeOutTime: 500

kwin4_effect_login:

kwin4_effect_wobblywindows:
stiffness: 0.1
drag: 0.85
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_coverswitch:
animationDuration: 400
animateSwitch: true
animateStart: true
animateStop: true
reflection: true
windowTitle: true
zPosition: 400
primaryTabBox: true
secondaryTabBox: true

kwin4_effect_screenshot:

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

kwin4_effect_flipswitch:
tabBox: false
tabBoxAlternative: false
duration: 400
angle: 30
xPosition: 0.330000013113022
yPosition: 0.800000011920929
windowTitle: true

kwin4_effect_translucency:

kwin4_effect_magiclamp:
animationDuration: 500

kwin4_effect_fadedesktop:

kwin4_effect_maximize:

kwin4_effect_zoomdesktop:

kwin4_effect_fade:

kwin4_effect_highlightwindow:

kwin4_effect_taskbarthumbnail:

kwin4_effect_presentwindows:
layoutMode: 0
showCaptions: true
showIcons: true
doNotCloseWindows: false
ignoreMinimized: false
accuracy: 20
fillGaps: true
fadeDuration: 300
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_logout:
useBlur: true

kwin4_effect_dashboard:
brightness: 0.5
saturation: 0.5
blur: true

kwin4_effect_screenedge:

kwin4_effect_startupfeedback:

kwin4_effect_kscreen:
Comment 5 Thomas Lübking 2013-07-25 20:28:09 UTC
> Compositing Type: OpenGL ES 2.0
Does it also happen with GLX compositing?
Comment 6 Michi 2013-07-25 20:32:44 UTC
(In reply to comment #5)
> > Compositing Type: OpenGL ES 2.0
> Does it also happen with GLX compositing?

sorry, I can only test that next monday
Comment 7 Michi 2013-07-29 07:15:41 UTC
(In reply to comment #5)
> > Compositing Type: OpenGL ES 2.0
> Does it also happen with GLX compositing?

no, works perfectly.
Comment 8 Thomas Lübking 2013-07-29 10:20:47 UTC
Thanks for the update.
Comment 9 Thomas Lübking 2013-07-31 11:17:47 UTC
This is probably the same as bug #322970, you might want to try https://git.reviewboard.kde.org/r/111811/
Comment 10 Thomas Lübking 2013-08-06 08:28:51 UTC
Git commit b0dbf3b49adf26753805cd59576dd3db61b86328 by Thomas Lübking.
Committed on 31/07/2013 at 10:55.
Pushed by luebking into branch 'KDE/4.11'.

validate screens w/o direct update

largely reverts b164e9912c9b5f9c9ae619bbd79355d317174115
which prevented the crash but due to early screen updating
causes issues with scene/overlay update on at least intel chips
Related: bug 322970
FIXED-IN: 4.11
REVIEW: https://git.reviewboard.kde.org/r/111811/

M  +5    -16   kwin/screens.cpp
M  +3    -20   kwin/screens.h

http://commits.kde.org/kde-workspace/b0dbf3b49adf26753805cd59576dd3db61b86328
Comment 11 Thomas Lübking 2015-07-06 20:27:28 UTC
Likely fixed by http://commits.kde.org/kde-workspace/b0dbf3b49adf26753805cd59576dd3db61b86328 but since it's been kwin_gles, this is now unmaintained.