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

Potential linegraphs performance improvements

    XMLWordPrintable

Details

    • Task
    • Resolution: Done
    • P2: Important
    • None
    • 6.8
    • Graphs: 2D
    • None
    • 489f76fe8 (dev), bbbec34e7 (6.8), 840c8ace0 (dev), 7b460edb0 (6.8), 87723fd94 (dev), 3abbab8d0 (6.8), 3816e9e8c (dev), 7fd6f80e7 (6.8)

    Description

      PointRenderer uses Quick Shape to render line/spline graphs. Some performance tuning could be done for live plotting with more data points (see QTBUG-126662). Here are few potential proposals to experiment with:

      1) Use QPainterPath directly instead of maintaining list of QQuickPathElements in QQuickShapePaths. Then separate path processing step is avoided, potentially improving performance and memory usage. This requires small API addition into QQuickPath.

      2) Use pathHints property of QQuickShapePath (see QTBUG-112340) for optimizing the rendering.

      3) Switch PointRenderer to use QQuickShapeCurveRenderer directly. Instead of maintaining list of QQuickPathElements in QQuickShapePaths, create line as QPainterPath and use setPath() method of QQuickShapeCurveRenderer. With https://codereview.qt-project.org/c/qt/qtdeclarative/+/575142 this will be common API of QQuickAbstractPathRenderer. This is bigger change than 1) but should drop some more overhead.

      Attachments

        1. LineGraphBench.zip
          2 kB
          Kaj Grönholm

        Issue Links

          For Gerrit Dashboard: QTBUG-127121
          # Subject Branch Project Status CR V

          Activity

            People

              kagro Kaj Grönholm
              kagro Kaj Grönholm
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes