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

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

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • 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)

    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

        1. QTBUG-43296.qml
          0.9 kB
          Jonathan Liu

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated: