Bug 318800

Summary: Plasma widget rendering is corrupted when using nouveau and virtualbox
Product: [Plasma] kwin Reporter: eric.erfanian
Component: generalAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: major    
Priority: NOR    
Version: 4.10.2   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Artifacts 1
Artifacts 2
xprop before
xprop after
glxinfo - Nvidia

Description eric.erfanian 2013-04-24 12:49:01 UTC
Not sure what component to file this under. When nouveau drivers are used in conjunction with virtualbox, plasma widgets are corrupted.

Reproducible: Always

Steps to Reproduce:
1. Install and use nouveau drivers.
2. Add the following rule: https://wiki.archlinux.org/index.php/Nouveau#Tear-free_compositing
3. Install virtualbox and start a simple vm
Actual Results:  
Plasma widgets become corrupted (see screenshots).

Expected Results:  
No corruption

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.2
KDE SC version (runtime): 4.10.2
KDE SC version (compile): 4.10.2
Qt Version: 4.8.4

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: false
shadeHoverInterval: 250
separateScreenFocus: false
activeMouseScreen: 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
electricBorders: false
electricBorderDelay: 150
electricBorderCooldown: 350
electricBorderPushbackPixels: 1
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
glVSync: true
colorCorrected: false
xrenderSmoothScale: false
maxFpsInterval: 17
refreshRate: 0
vBlankTime: 6144
glDirect: true
glStrictBinding: true
glStrictBindingFollowsDriver: true
glLegacy: false

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

Compositing
===========
Qt Graphics System: native
Compositing is active
Compositing Type: OpenGL
OpenGL vendor string: nouveau
OpenGL renderer string: Gallium 0.4 on NVC1
OpenGL version string: 3.0 Mesa 9.1.1
Driver: Nouveau
GPU class: Unknown
OpenGL version: 3.0
Mesa version: 9.1.1
X server version: 1.14.1
Linux kernel version: 3.8.8
Direct rendering: yes
Requires strict binding: yes
GLSL shaders:  yes
Texture NPOT support:  yes
Virtual Machine:  no
OpenGL 2 Shaders are used

Loaded Effects:
---------------
kwin4_effect_zoom
kwin4_effect_login
kwin4_effect_slidingpopups
kwin4_effect_screenshot
kwin4_effect_minimizeanimation
kwin4_effect_translucency
kwin4_effect_desktopgrid
kwin4_effect_cubeslide
kwin4_effect_fade
kwin4_effect_maximize
kwin4_effect_dialogparent
kwin4_effect_presentwindows
kwin4_effect_taskbarthumbnail
kwin4_effect_highlightwindow
kwin4_effect_blur
kwin4_effect_logout
kwin4_effect_dashboard
kwin4_effect_outline
kwin4_effect_startupfeedback

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_login:
fadeToBlack: false

kwin4_effect_slidingpopups:
fadeInTime: 50
fadeOutTime: 50

kwin4_effect_screenshot:

kwin4_effect_minimizeanimation:

kwin4_effect_translucency:
decoration: 1
moveResize: 0.8
dialogs: 1
inactive: 1
comboboxPopups: 1
menus: 1
individualMenuConfig: false
dropDownMenus: 1
popupMenus: 1
tornOffMenus: 1

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

kwin4_effect_cubeslide:
rotationDuration: 100
dontSlidePanels: true
dontSlideStickyWindows: false
usePagerLayout: true
useWindowMoving: false

kwin4_effect_fade:

kwin4_effect_maximize:

kwin4_effect_dialogparent:
changeTime: 60

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_taskbarthumbnail:

kwin4_effect_highlightwindow:

kwin4_effect_blur:
blurRadius: 12
cacheTexture: true

kwin4_effect_logout:
useBlur: true

kwin4_effect_dashboard:
brightness: 0.5
saturation: 0.5
blur: false

kwin4_effect_outline:

kwin4_effect_startupfeedback:
Comment 1 eric.erfanian 2013-04-24 12:49:40 UTC
Created attachment 79411 [details]
Artifacts  1
Comment 2 eric.erfanian 2013-04-24 12:50:05 UTC
Created attachment 79412 [details]
Artifacts 2
Comment 3 Thomas Lübking 2013-04-24 13:07:28 UTC
> Qt Graphics System: native
Try "raster", also please attach the output of "xprop -root", ideally before AND after starting VB, thus causing the issue.
Comment 4 eric.erfanian 2013-04-24 13:23:03 UTC
Tried with raster/native options no change.

Attaching before and after.
Comment 5 eric.erfanian 2013-04-24 13:23:44 UTC
Created attachment 79414 [details]
xprop before
Comment 6 eric.erfanian 2013-04-24 13:24:11 UTC
Created attachment 79415 [details]
xprop after
Comment 7 Thomas Lübking 2013-04-24 13:44:38 UTC
I assume it does not go away if you simply toggle the compositor (Shift+Alt+F12, twice) but what if you suspend the compositor, then call

   xprop -root -remove RGB_DEFAULT_MAP

then resume the compositor?
Comment 8 Thomas Lübking 2013-04-24 14:12:19 UTC
it will essentially be bug #262064 (found it ;-)

@Martin
Should we do sth, like monitor that property and whenever set on the root, issue a warning, explanation, "how to fix it" and suspend the compositor as long as it's there?
(No, i don't like that, but it makes KWin appear broken and no user can ever even remotely figure "why")

*** This bug has been marked as a duplicate of bug 262064 ***
Comment 9 Martin Flöser 2013-04-24 15:04:23 UTC
well we could monitor for it and remove it.
Comment 10 Thomas Lübking 2013-04-24 17:35:04 UTC
imo too aggressive - we don't know who set it why (could have been the user, despite apparently unreasonable it's perfectly legal)
also every client started after or at least every window mapped after will remain affected (getting us a bugreport what i want to avoid ;-) and we would "fix" a bug by another one.

We could simply send a notification like when the compositor was suspended externally.
Comment 11 eric.erfanian 2013-04-24 22:19:01 UTC
It does not go away when toggling the compositer, and it does not go away when suspending, executing the command, then resuming.

(In reply to comment #7)
> I assume it does not go away if you simply toggle the compositor
> (Shift+Alt+F12, twice) but what if you suspend the compositor, then call
> 
>    xprop -root -remove RGB_DEFAULT_MAP
> 
> then resume the compositor?
Comment 12 Thomas Lübking 2013-04-24 22:26:34 UTC
restart plasma (or any application that belongs to the "broken" window) after withdrawing the property. Also ensure virtualbox does not just set it back again. (It's not related to kwin, the property breaks the client which then hands out broken pixmaps, my bad - sorry)

As long as that property is there, no 32bit stuff will work (as long as the application supports custom color tables - as do all Qt ones) reasonably.
It simply does not belong there, virtualbox wants to set it on it's own window, not the root. This also has nothing to do with nouveau.
Comment 13 eric.erfanian 2013-04-24 22:32:25 UTC
Thanks for the info. Do you know why this didn't happen with the intel or proprietary nvidia drivers?
Comment 14 eric.erfanian 2013-04-24 22:39:12 UTC
I'm not sure what you mean by restart plasma. Should I log out? I also tried variations of:

1) disable compositor
2) remove RGB_DEFAULT_MAP
3) kwin --replace
4) enable compositor.

Still had artifacts.
Comment 15 Thomas Lübking 2013-04-24 22:47:27 UTC
(In reply to comment #14)
> I'm not sure what you mean by restart plasma.
Supposing the defective item belongs to the desktop (as the popup in the screenshot)

   kquitapp plasma-desktop; sleep 3; plasma-desktop

The other screenshot shows krunner, so:

   kquitapp krunner; sleep 3; krunner

> Still had artifacts.
The bug is not in kwin, restarting it won't do (rather worse)

(In reply to comment #13)
> Thanks for the info. Do you know why this didn't happen with the intel or
> proprietary nvidia drivers?

No idea, same virtualbox version?
Is there the *exact* same (in all fields) property?
Comment 16 eric.erfanian 2013-04-26 00:52:41 UTC
(In reply to comment #15)
> (In reply to comment #14)
> > I'm not sure what you mean by restart plasma.
> Supposing the defective item belongs to the desktop (as the popup in the
> screenshot)
> 
>    kquitapp plasma-desktop; sleep 3; plasma-desktop
> 
> The other screenshot shows krunner, so:
> 
>    kquitapp krunner; sleep 3; krunner
> 
> > Still had artifacts.
> The bug is not in kwin, restarting it won't do (rather worse)
> 
> (In reply to comment #13)
> > Thanks for the info. Do you know why this didn't happen with the intel or
> > proprietary nvidia drivers?
> 
> No idea, same virtualbox version?
> Is there the *exact* same (in all fields) property?

I haven't tried restarting plasma because I switched back to the proprietary nvidia drivers. I can confirm the bug no longer appears, same program versions.
Comment 17 Thomas Lübking 2013-04-26 11:32:33 UTC
do you happen to have a "glxinfo" output of nouveau installation around (so one could inspect the visuals and compare them to current nvidia)

notice that the property nevertheless does not belong there and can cause "weird" results nevertheless (see dupes where the visual chosen by cairo-dock broke smplayer)
Comment 18 eric.erfanian 2013-04-27 12:15:56 UTC
(In reply to comment #17)
> do you happen to have a "glxinfo" output of nouveau installation around (so
> one could inspect the visuals and compare them to current nvidia)
> 
Unfortunately not. I'll attach the nvidia glxinfo now and then when I switch back to nouveau I'll update this ticket.

> notice that the property nevertheless does not belong there and can cause
> "weird" results nevertheless (see dupes where the visual chosen by
> cairo-dock broke smplayer)
Comment 19 eric.erfanian 2013-04-27 12:16:27 UTC
Created attachment 79492 [details]
glxinfo  - Nvidia