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

Remove preprocessing for glyph nodes in Qt Quick

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Done
    • Icon: P2: Important 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.

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

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

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes