Registered Member
|
I'm using KF5 with Plasma on Arch. I'm using proprietary nvidia drivers (I have an Nvidia GT440). I've noticed that whenever I resize a window that is drawing with OpenGL, the contents of the window jump around / stutter / flicker.
The easiest example is glxgears, but I've tried a bunch of other things including example GLFW applications (ie very basic render a triangle to the screen stuff). I've also tried messing with vsync settings in the application, and while this changes the nature of the stuttering it still occurs and is very obvious. This also occurs with a simple QML application thats just drawing a rectangle (though the effect is less 'intense' for whatever reason). This stackoverflow question has an animation that resembles what I'm seeing very closely http://stackoverflow.com/questions/3081 ... ve-flicker Has anyone else experienced this? Is there anything I can try to fix this issue? |
|
Resizing a GL context is an expensive operation - and confirmably slow on at least the nvidia blob - browsers are usually even worse (because of complex relayouts)
There isn't much one could do since this is a client problem. KWin syncs to the client (stalls resizes when the client cannot keep the pace), but that leads to "jumpy" resizing if the client is really slow (I think we cap at 4 fps and then just resize the window, no matter whether the client can keep up or not) - the alternative problem are "flashes" of undefined content when the window is resized faster than the client can do. Alternatively you can enable the resize effect ("kcmshell[4|5] kwineffects") which - while compositing is enabled - only resizes the window texture and tells the window to update only *once* when the resize operation is done (and then crossfades between resized old and actual new window) |
Registered Member
|
Thanks for the reply. Something that strikes me as strange is that normal KDE applications (say Dolphin) don't seem to exhibit this behaviour (don't they use QML and render using OpenGL as well?)
I made a couple of webms to show the effect http://webms.org/w/wFhNyW4E/ http://webms.org/w/qc1bNAjz/ |
|
> don't they use QML and render using OpenGL as well
As for dolphin: "No" - at least I don't think so. It uses a QGraphicsView, but that operates on the raster engine by default (you can switch it to OpenGL, but I doubt dolphin does so - too trouble-prone) Plasmashell uses quite some QML, but those windows are usually not resized (this way) To mitigate this, one has to use swap control (vsync), double buffering and a smart resize strategy in the client (ie. don't create a new context for every minor update) How does this resize for you? http://qt-apps.org/content/show.php/piQ ... ent=100609 ensure ~/.config/piQtureGLide.conf has
I frankly don't remember whether I enabled it by default. |
Registered users: bartoloni, Bing [Bot], Evergrowing, Google [Bot], ourcraft