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

Too many batches for minimal map

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P3: Somewhat important
    • None
    • 5.11.1
    • Location
    • None
    • Windows 10 64bit
      MSVC 2015
      Qt 5.11.1
    • Windows

    Description

      With 'Minimal Map' example from Qt Location, the application suffers from too many batches for rendering under somewhat not small but usual screen resolution (for instance, 1920*1080).

      I executed the example with QSG_RENDERER_DEBUG=render to examine batch count.
      Sine there are no overlap for map tiles, I thought it would be drawn with one batch, but it's not.

      With default window size, there are already 11 batches:
      {{
      Renderer::render() QSGAbstractRenderer(0x2bf76c82240) "rebuild: none"
      Rendering:
      -> Opaque: 0 nodes in 0 batches...
      -> Alpha: 11 nodes in 11 batches...

      • 0x2bf76d36220 [retained] [ clip] [ alpha] [ merged] Nodes: 1 Vertices: 4 Indices: 6 root: 0x2bf79ac20b8 opacity: 1
      • 0x2bf76d36860 [retained] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d37b20 [retained] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d37080 [retained] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d37a80 [retained] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d379e0 [retained] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d36cc0 [retained] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d378a0 [retained] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d37300 [retained] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d37800 [retained] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79eb0b10 [retained] [ clip] [ alpha] [ merged] Nodes: 1 Vertices: 4 Indices: 6 root: 0x2bf79ac20b8 opacity: 1
        -> times: build: 0, prepare(opaque/alpha): 0/0, sorting: 0, upload(opaque/alpha): 0/0, render: 2
        }}

      But, once I maximize the window on my PC (with FHD screen), it reports many batches over 40:
      {{
      Renderer::render() QSGAbstractRenderer(0x2bf76c82240) "rebuild: renderlists"
      Rendering:
      -> Opaque: 0 nodes in 0 batches...
      -> Alpha: 42 nodes in 42 batches...

      • 0x2bf79eb0b10 [ upload] [ clip] [ alpha] [ merged] Nodes: 1 Vertices: 4 Indices: 6 root: 0x2bf79ac20b8 opacity: 1
      • 0x2bf76d37800 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d37300 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d378a0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d36cc0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d379e0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d37a80 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d37080 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d37b20 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d36860 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf76d36220 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e93790 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e91490 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e926b0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e93010 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e930b0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e91b70 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e92e30 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e93330 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e91350 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e91c10 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e92750 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e91cb0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e92ed0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e92f70 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e92430 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e915d0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e93150 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e91670 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e93650 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e93470 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e91710 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e93830 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e917b0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e931f0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e92110 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e91df0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e91d50 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e93290 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e910d0 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e92b10 [ upload] [ clip] [ alpha] [unmerged] Nodes: 1 Vertices: 4 Indices: 0 root: 0x2bf79ac2128
      • 0x2bf79e935b0 [ upload] [ clip] [ alpha] [ merged] Nodes: 1 Vertices: 4 Indices: 6 root: 0x2bf79ac20b8 opacity: 1
        -> times: build: 0, prepare(opaque/alpha): 0/0, sorting: 0, upload(opaque/alpha): 0/0, render: 19
        }}

      The Qt Quick Scene Graph documentation explicitly mentions that the total batch number should lower than 10 for good performance:
      {{
      When striving for optimal performance, uploads should happen only when really needed, batches should be fewer than 10 and at least 3-4 of them should be opaque.
      }}

      Attachments

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

        Activity

          People

            paangele Paolo Angelelli
            xylosper Byoung-young Lee
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes