Bug 317427 - >=mesa-9.1 + OpenGL 2 Shaders = jerky present windows
Summary: >=mesa-9.1 + OpenGL 2 Shaders = jerky present windows
Status: RESOLVED DUPLICATE of bug 313613
Alias: None
Product: kwin
Classification: Plasma
Component: effects-window-management (show other bugs)
Version: 4.10.1
Platform: Gentoo Packages Linux
: NOR normal
Target Milestone: ---
Assignee: KWin default assignee
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-03-27 09:49 UTC by Franz Trischberger
Modified: 2013-03-27 10:53 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:
Sentry Crash Report:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Franz Trischberger 2013-03-27 09:49:17 UTC
Disabling Shaders or downgrading to mesa-9.0.x helps.
When entering PW it seems like there is a lag of ~1second, the first hover animation comes delayed. Further interaction is not as smooth, sometimes animations get skipped, mouse hangs (cursor does not move).

Reproducible: Always
Comment 1 Martin Flöser 2013-03-27 09:58:55 UTC
Are you 100 % sure to run 4.10.1 and not 4.10.0?

please run: qdbus org.kde.kwin /KWin supportInformation
Comment 2 Franz Trischberger 2013-03-27 10:06:07 UTC
Of course I am sure about the kwin version :)
I also noticed that Task Switcher "Grid" and "Present Windows Clonse" are slow, too (invoking + leaving lags quite noticable), but "Cover switch" and "Flip Switch" are fast as ever.

$ qdbus org.kde.kwin /KWin supportInformation
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.1
KDE SC version (runtime): 4.10.1
KDE SC version (compile): 4.10.1
Qt Version: 4.8.4

Options
=======
focusPolicy: 0
nextFocusPrefersMouse: false
clickRaise: true
autoRaise: false
autoRaiseInterval: 0
delayFocusInterval: 0
shadeHover: true
shadeHoverInterval: 300
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: true
maxFpsInterval: 17
refreshRate: 0
vBlankTime: 6144
glDirect: true
glStrictBinding: false
glStrictBindingFollowsDriver: true
glLegacy: false

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

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 Desktop 
OpenGL version string: 3.0 Mesa 9.1.1
Driver: Intel
GPU class: SandyBridge
OpenGL version: 3.0
Mesa version: 9.1.1
X server version: 1.13.1
Linux kernel version: 3.8.3
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_login
kwin4_effect_slidingpopups
kwin4_effect_wobblywindows
kwin4_effect_coverswitch
kwin4_effect_minimizeanimation
kwin4_effect_translucency
kwin4_effect_screenshot
kwin4_effect_slide
kwin4_effect_desktopgrid
kwin4_effect_flipswitch
kwin4_effect_maximize
kwin4_effect_fade
kwin4_effect_dialogparent
kwin4_effect_highlightwindow
kwin4_effect_taskbarthumbnail
kwin4_effect_presentwindows
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: 250
fadeOutTime: 250

kwin4_effect_wobblywindows:
stiffness: 0.03
drag: 0.92
moveFactor: 0.2
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: 200
animateSwitch: true
animateStart: true
animateStop: true
reflection: true
windowTitle: true
zPosition: 900
dynamicThumbnails: true
thumbnailWindows: 8
primaryTabBox: false
secondaryTabBox: false

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

kwin4_effect_slide:

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

kwin4_effect_flipswitch:
tabBox: false
tabBoxAlternative: false
duration: 200
angle: 30
xPosition: 0.330000013113022
yPosition: 1
windowTitle: true

kwin4_effect_maximize:

kwin4_effect_fade:

kwin4_effect_dialogparent:
changeTime: 300

kwin4_effect_highlightwindow:

kwin4_effect_taskbarthumbnail:

kwin4_effect_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
dragToClose: false

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 3 Martin Flöser 2013-03-27 10:23:44 UTC
I had to ask :-) There is a performance regression in Mesa 9.1 which we worked around in 4.10.1. Looking at the data it makes sense. So far we only knew about performance regressions with IvyBridge but not with SandyBridge (tested on my own system, running Mesa 9.2), that's why the workaround only goes for IvyBridge.

Anyway to get rid of the problem change "Scale method" from "Accurate" to  "Smooth".

Setting to duplicate of the IvyBridge report.

*** This bug has been marked as a duplicate of bug 313613 ***
Comment 4 Franz Trischberger 2013-03-27 10:53:20 UTC
OK, thx.
I applied this patch

diff --git a/kwin/lanczosfilter.cpp b/kwin/lanczosfilter.cpp
index b0f85e2..c4b8b14 100644
--- a/kwin/lanczosfilter.cpp
+++ b/kwin/lanczosfilter.cpp
@@ -68,7 +68,7 @@ void LanczosFilter::init()
     if (!force && gl->driver() == Driver_Intel && gl->chipClass() < SandyBridge)
         return;
     // Broken on IvyBridge with Mesa 9.1 - BUG 313613
-    if (!force && gl->driver() == Driver_Intel && gl->chipClass() == IvyBridge && gl->mesaVersion() >= kVersionNumber(9, 1))
+    if (!force && gl->driver() == Driver_Intel && (gl->chipClass() == IvyBridge || gl->chipClass() == SandyBridge) && gl->mesaVersion() >= kVersionNumber(9, 1))
         return;
     // With fglrx the ARB Shader crashes KWin (see Bug #270818 and #286795)
     if (!force && gl->driver() == Driver_Catalyst && effects->compositingType() == OpenGL1Compositing) {

And everything is fine :)
">= SandyBridge" would have worked, too, but probably haswell (that's the next gen, AFAIR) is not affected.