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

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

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reported
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.4.0
    • Fix Version/s: None
    • Component/s: Quick: SceneGraph
    • Labels:
      None
    • Environment:
      Arch Linux x86_64
      ATI Radeon HD 5450
      mesa 10.3.5
      xf86-video-ati 7.5.0 (open source driver)

      Description

      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.

        Attachments

          Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              Assignee:
              sletta Gunnar Sletta
              Reporter:
              net147 Jonathan Liu
              Votes:
              3 Vote for this issue
              Watchers:
              8 Start watching this issue

                Dates

                Created:
                Updated:

                  Gerrit Reviews

                  There are no open Gerrit changes