Details
-
Task
-
Resolution: Done
-
Not Evaluated
-
None
-
None
-
-
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
- relates to
-
QTBUG-74928 Use damage requests to optimize QML compositor rendering
- Reported
-
QTBUG-74929 Switch to wl_surface.damage_buffer for shared memory clients
- Closed
- resulted in
-
QTBUG-85461 Compositor does not handle wp_viewporter offsets with wl_surface.damage_buffer
- Reported
For Gerrit Dashboard: QTBUG-74927 | ||||||
---|---|---|---|---|---|---|
# | Subject | Branch | Project | Status | CR | V |
306789,5 | Support wl_surface.damage_buffer | dev | qt/qtwayland | Status: MERGED | +2 | 0 |