On 12 April 2013 09:55, Sletta Gunnar <gunnar.sle...@digia.com> wrote:
> On Apr 12, 2013, at 9:26 AM, Michael Andersen <mich...@steelcode.com> > wrote: > > > Is vsync enabled in your driver? Sounds like it might not be. If not, > then Qt Quick 2.0 will render at 100% cpu rendering maybe many thousands of > frames per second, even though you only see 60 of them. > > > > Unfortunately, VSync is enabled, that would have been a good explanation. > > Does it get any better if you switch to Unity 2D, the non-fancy one? We > have registered some issues with the fancier window managers when using > OpenGL. > I am actually on Ubuntu 12.10, so switching to unity2d is less trivial. I did spend half an hour going through every setting in compizconfig-settings-manager to try find interactions between the compositor and Qt, but I didn't find any option that stopped the lag-on-drag behaviour. I did crash unity about twenty times though. > > 846cf1a13f80fe4590cc9ad4d9972d7a173accd6 to QtBase, which is going into > 5.1, resize issues on gnome for instance. > I will grab the 5.1 alpha and see if the behaviour still exists. > > You could also try to set the envvar: > > QML_BAD_GUI_RENDER_LOOP=1 > > It switches the render loop to a single-threaded, timer-based loop which > updates every 16 ms, not in sync with vsync. The default on linux/X11 is to > use a dedicated render thread, advance animations once per frame and rely > on vsync to be throttled. > I did this, and unfortunately I could still reproduce the problem. > > cheers, > Gunnar > > > > > I am using the Nvidia binary drivers (v304.51) so in order to double > check that applications actually *were* vsynced, I ran glxgears. Turns out > that glxgears does the same thing: no repainting while dragging and it lags > the whole PC when you drag the app. This is not a small PC, I have a GTX > 560 Ti, 32GB of ram and an i7 3930.. why oh why is glxgears lagging... > > > > For want of another data point, I ran minecraft, yes I know its a > different language and all that, but it does have an OpenGL context... and > it doesn't lag the pc at all while the window is being dragged. > > > > So I am not sure that this is really Qt's fault, except that the QtQuick > 1.1 application did not exhibit the same problems, and it does seem > possible to make an OpenGL application that repaints while the window is > moved. > > > > Any ideas? > > > > > > cheers, > > Gunnar > > > > > > > > Here is a simple reproducer of the problem, I create a QtQuick2 > application in Qt Creator 2.7. I adjust the QML to look like this: > > > > > > import QtQuick 2.0 > > > > > > Rectangle { > > > width: 400 > > > height: 400 > > > Rectangle { > > > id: redsquare > > > color: "red" > > > width: 50 > > > height: 50 > > > x: 50 > > > y: 50 > > > } > > > RotationAnimation { > > > loops: Animation.Infinite > > > target: redsquare > > > properties: "rotation" > > > from: 0 > > > to: 360 > > > duration: 300*5 > > > direction: RotationAnimation.Clockwise > > > running: true > > > } > > > } > > > > > > My main.cpp is the default, but that looks like this: > > > > > > #include <QtGui/QGuiApplication> > > > #include "qtquick2applicationviewer.h" > > > > > > int main(int argc, char *argv[]) > > > { > > > QGuiApplication app(argc, argv); > > > > > > QtQuick2ApplicationViewer viewer; > > > > viewer.setMainQmlFile(QStringLiteral("qml/SimpleRotator/main.qml")); > > > viewer.showExpanded(); > > > > > > return app.exec(); > > > } > > > > > > I am new to Qt, so perhaps I am doing something wrong with my > animation, but I have tried a couple other methods of animating and they > all lag equally badly. The PC I develop on is quite a monster, so if it is > lagging on this, I hate to think what it's going to do on my clients' > laptops. > > > > > > Anyone have any ideas? > > > > > > Regards > > > Michael > > > _______________________________________________ > > > Interest mailing list > > > Interest@qt-project.org > > > http://lists.qt-project.org/mailman/listinfo/interest > > > > > >
_______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest