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

Remove preprocessing for glyph nodes in Qt Quick



    • Task
    • Resolution: Done
    • P2: Important
    • 5.15.1, 6.0
    • 6.0
    • GUI: Text handling
    • None
    • All
    • 1f3dd3f5db16892739963168c2a76df6354b178c (qt/qtdeclarative/dev) a54621c231317c5777dea402215c30764ae96a2e (qt/qtdeclarative/5.15)


      One big bottle neck for text rendering when many nodes are added to the scene, is that each glyph node is preprocessed, just in case the distance field cache needs to be updated.

      Preprocess is inherently slow, and some experimentation shows that in a huge stress test scene (2 million text items + around 2 million opaque items) we can go from 1 fps to 100 fps by removing the preprocessing on the glyph nodes.

      The preprocessing was added so that we avoid resizing the glyph cache for every glyph node that comes along. Instead, we want to register all glyphs with the cache and then process once everything is in place.

      The better approach is to do a special preprocessing only for the glyph caches. For most scene, this is just a couple of preprocess calls and no checks on visibility of the nodes.

      The caches may have to adjust the geometries of each nodes once the cache is resized, but it should already know which nodes refer to it, so this should be easy.


        Issue Links

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



              esabraha Eskil Abrahamsen Blomfeldt
              esabraha Eskil Abrahamsen Blomfeldt
              0 Vote for this issue
              1 Start watching this issue



                Gerrit Reviews

                  There are no open Gerrit changes