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

Optimize LinuxFB to avoid extra copies

XMLWordPrintable

    • Icon: Suggestion Suggestion
    • Resolution: Unresolved
    • Icon: Not Evaluated Not Evaluated
    • None
    • 5.15, 6.10
    • QPA: LinuxFB
    • None
    • Linux/Yocto, Linux/Other display system

      LinuxFB supports in principle multiple windows, each one with its own backing store.

      These backing stores are then composited in onto a per-screen QImage (this member: https://codebrowser.dev/qt5/qtbase/src/platformsupport/fbconvenience/qfbscreen_p.h.html#QFbScreen::mScreenImage ; see also https://codebrowser.dev/qt5/qtbase/src/platformsupport/fbconvenience/qfbscreen.cpp.html#_ZN9QFbScreen8doRedrawEv ).

      Then, this per-screen QImage is copied onto the physical framebuffer in https://codebrowser.dev/qt5/qtbase/src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp.html#_ZN14QLinuxFbScreen8doRedrawEv

      In the common touchscreen embedded case, there's just one top level window, one screen, no cursor; in this case it would definitely make sense to try and bypass some of these intermediateries. (They cost CPU cycles, which are a very precious resource on low-end GPU-less devices – the ones running linuxfb and software rendering, after all).

      [Rumination: this may conflict with screen rotations, as requested by QTBUG-140218. In that report I argue that one could take the screen's image and then draw it rotated on the physical screen, thus costing a copy (and a rather expensive one, as it's cache unfriendly). But in principle one could make QWidgetRepaintManager or Qt Quick's software render apply a global rotation when they paint, thus achieving a rotated screen without paying for a full copy.]

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

            lagocs Laszlo Agocs
            peppe Giuseppe D'Angelo
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes