This forum has been archived. All content is frozen. Please use KDE Discuss instead.

Stutter and flicker when resizing OpenGL windows

Tags: None
(comma "," separated)
prismatic
Registered Member
Posts
2
Karma
0
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?
luebking
Karma
0
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)
prismatic
Registered Member
Posts
2
Karma
0
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/
luebking
Karma
0
> 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

Code: Select all
[General]
GLSync=1


I frankly don't remember whether I enabled it by default.


Bookmarks



Who is online

Registered users: bartoloni, Bing [Bot], Evergrowing, Google [Bot], ourcraft