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

Add compositor support for wl_surface.damage_buffer requests

    XMLWordPrintable

Details

    • Task
    • Resolution: Done
    • Not Evaluated
    • 6.0, 6.1.0 RC
    • None
    • QPA: Wayland
    • None
    • Linux/Wayland
    • 7e412517c4fa10aad6f7bb0b691cb3335e815db0 (qt/qtwayland/dev)

    Description

      Currently, we only support wl_surface version 3, which doesn't have the damage_buffer request, which were added in wl_surface version 4.

      According to the wayland protocol documentation, "damage_buffer" is preferred over "damage", the only difference between the two, is that damage_buffer sends damage in wl_buffer coordinates (that is unscaled), rather than wl_surface coordinates (scaled by buffer_scale and potentially wp_viewport).

      One of the reasons to implement this, is that Mesa doesn't send partial updates when the compositor only supports damage, and not damage_buffer. So implementing this is required for partial updates to work on Mesa—and possibly on other platforms.

      wl_surface is constructed through wl_compositor.create_surface, so this also requires updating wl_compositor to version 4. Fortunately, wl_surface is the only interface that wl_compositor returns that got updated between version 3 and 4, and the only thing that changed in that interface, was the addition of the damage_buffer request, so implementing this should be as straightforward as simply bumping the minimum versions an implementing this single request.

      Attachments

        Issue Links

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

          Activity

            People

              tvete Paul Olav Tvete
              johanhelsing Johan Helsing
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes