Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-43296

Threaded render loop and vsync animation driver results in inaccurate animation timing

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Out of scope
    • Icon: P2: Important P2: Important
    • None
    • 5.4.0
    • Quick: SceneGraph
    • None
    • Arch Linux x86_64
      ATI Radeon HD 5450
      mesa 10.3.5
      xf86-video-ati 7.5.0 (open source driver)

      Using a threaded render loop with the vsync animation driver (which is default rather of walltime animation driver) results in loss of animation timing accuracy.

      The following results are measuring the animation transition time for StackView (which is 400 ms in Qt 5.4 and 300 ms in Qt 5.3.2 and earlier).

      Basic render loop (QT_LOGGING_RULES=qt.scenegraph.info=true qmlscene QTBUG-43296.qml):

      qt.scenegraph.info: QSG: basic render loop
      ...
      qt.scenegraph.info: texture atlas dimensions: 512x512
      qt.scenegraph.info: R/G/B/A Buffers:    8 8 8 0
      qt.scenegraph.info: Depth Buffer:       24
      qt.scenegraph.info: Stencil Buffer:     8
      qt.scenegraph.info: Samples:            -1
      qt.scenegraph.info: GL_VENDOR:          X.Org
      qt.scenegraph.info: GL_RENDERER:        Gallium 0.4 on AMD CEDAR
      qt.scenegraph.info: GL_VERSION:         3.0 Mesa 10.3.5
      qml: Transition took 400 ms
      qml: Transition took 401 ms
      qml: Transition took 401 ms
      qml: Transition took 403 ms
      qml: Transition took 401 ms
      qml: Transition took 401 ms
      qml: Transition took 400 ms
      qml: Transition took 401 ms
      qml: Transition took 401 ms
      qml: Transition took 401 ms
      

      Threaded render loop and vsync animation driver (QML_FORCE_THREADED_RENDERER=1 QT_LOGGING_RULES=qt.scenegraph.info=true qmlscene QTBUG-43296.qml):

      qt.scenegraph.info: threaded render loop
      qt.scenegraph.info: Using sg animation driver
      ...
      qt.scenegraph.info: Animation Driver: using vsync: 16.67 ms
      qt.scenegraph.info: texture atlas dimensions: 512x512
      qt.scenegraph.info: R/G/B/A Buffers:    8 8 8 0
      qt.scenegraph.info: Depth Buffer:       24
      qt.scenegraph.info: Stencil Buffer:     8
      qt.scenegraph.info: Samples:            -1
      qt.scenegraph.info: GL_VENDOR:          X.Org
      qt.scenegraph.info: GL_RENDERER:        Gallium 0.4 on AMD CEDAR
      qt.scenegraph.info: GL_VERSION:         3.0 Mesa 10.3.5
      qml: Transition took 384 ms
      qml: Transition took 381 ms
      qml: Transition took 383 ms
      qml: Transition took 374 ms
      qml: Transition took 374 ms
      qml: Transition took 388 ms
      qml: Transition took 387 ms
      qml: Transition took 385 ms
      qml: Transition took 376 ms
      qml: Transition took 376 ms
      

      This is a regression from Qt 5.3.2.

        1. QTBUG-43296.qml
          0.9 kB
          Jonathan Liu
        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            janichol Andy Nichols
            net147 Jonathan Liu
            Votes:
            3 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes