Closed Bug 1695500 Opened 3 years ago Closed 3 years ago

Implement Wayland support for example compositor

Categories

(Core :: Graphics: WebRender, enhancement)

enhancement

Tracking

()

RESOLVED FIXED
88 Branch
Tracking Status
firefox88 --- fixed

People

(Reporter: rmader, Assigned: rmader)

References

(Blocks 1 open bug)

Details

Attachments

(3 files)

Before wiring up things to gecko, make the example compositor work and implement some basic compositor support.


Steps to run:

git clone https://github.com/servo/webrender.git
cd webrender/example-compositor/compositor
cargo run native [scroll|large|small] swap 1300 520
Depends on: 1695507

In case anybody is interested in the progress, I'll push updates to https://github.com/rmader/gecko-dev/commits/bug1617498

Attached image example-compositor native wayland (deleted) —

Yay, first proper output with native wayland subsurfaces \o/

Found first bug in Mutter concerning subsurface reordering: https://gitlab.gnome.org/GNOME/mutter/-/issues/1691

Depends on: 1697673

Little status update here: it looks like this is almost done. We are now blocked on WR missing certain features for native surfaces that it supports for the draw compositor, namely setting the draw origin (surface_origin_is_top_left / bug 1697673) and other things that are already supported on the draw compositor (draw_previous_partial_present_regions). Adding them should also benefit Android, in case it gets compositor integration at some point.

Apart from that we'll only need a bit of cleanup and some small features like frame-callback synced drawing. After that I'd like to get this merged soonish so compositor devs can test it and make sure they they implement all used features here correctly. Fixes for that will likely take some time to reach end user, so it's good to start early.

Next status update: after the latest git push the rendering is mostly correct now (patch for bug 1697673 incoming).

Also the Mutter fix has landed, together with backports to 3.38 and 3.36.

Found and fixed two more Mutter bugs, both introduced by me :)
Now there is AFAIK only one issue left, which is either a Mesa or WR issue.

https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1786

Attachment #9209731 - Attachment description: WIP: Bug 1695500 - Implement Wayland support for example compositor → Bug 1695500 - Implement a Wayland backend support for the example compositor, r=gw
Attachment #9209731 - Attachment description: Bug 1695500 - Implement a Wayland backend support for the example compositor, r=gw → Bug 1695500 - Implement Wayland backend for the example compositor, r=gw
Pushed by gwatson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/3080c78f7e9e
Implement Wayland backend for the example compositor, r=gw
Pushed by gwatson@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f56d2bf535d6
Implement Wayland backend for the example compositor, r=gw
Status: ASSIGNED → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 88 Branch
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: