Closed Bug 1648799 Opened 5 months ago Closed 2 months ago

[WR/EGL/Linux] Enable partial present by default

Categories

(Core :: Graphics: WebRender, task, P3)

Desktop
Linux
task

Tracking

()

RESOLVED FIXED
83 Branch
Tracking Status
firefox83 --- fixed

People

(Reporter: jan, Assigned: rmader)

References

(Blocks 3 open bugs)

Details

(Keywords: nightly-community, power)

Attachments

(1 file, 1 obsolete file)

No description provided.
Depends on: 1648872
Blocks: 1625070

Site node:

Depends on: 1640710
Summary: [Wayland] Enable partial present → [Wayland/X11] Enable partial present
Summary: [Wayland/X11] Enable partial present → [Wayland/X11] Enable partial present by default
Summary: [Wayland/X11] Enable partial present by default → [WR/Linux] Enable partial present by default
Blocks: wr-linux-mvp

I'm not sure, but I think it was that Linux implies Android, but doesn't include FreeBSD. Should it be MOZ_WIDGET_GTK instead?

GLX partial present seems to work fine on XWayland and X11.

EGL partial present:

(In reply to Jan Andre Ikenmeyer [:darkspirit] from comment #3)

I'm not sure, but I think it was that Linux implies Android, but doesn't include FreeBSD. Should it be MOZ_WIDGET_GTK instead?

Sounds reasonable.

GLX partial present seems to work fine on XWayland and X11.

EGL partial present:

I'd still wait with for a while. Just tested GLX on Xwayland and I think I saw occasional small glitches. There might be bugs we first need to solve in bug 1640710.

I'm running partial present enabled on my main browser (FF 78, Fedora 32) and see quite a few glitches quite regular - some of them maybe already resolved in nightly, not sure.

Depends on: 1653595

(In reply to Jan Andre Ikenmeyer [:darkspirit] from comment #3)

GLX partial present seems to work fine on XWayland and X11.

Note that the GLX_MESA_copy_sub_buffer extension (which I understand is used for this) does a direct copy of each rectangle from the GL back buffer to the window's front buffer, without any synchronization to the refresh cycle. This is obviously prone to erratic presentation timing, and tearing on Xorg without a compositing manager. But even with a compositing manager or with Xwayland, at least in theory Xwayland / the compositing manager can end up capturing the window contents for an output frame between rectangles of the same Firefox frame, which also results in tearing.

In summary, I'm afraid this extension isn't really suitable for partial presentation, and I'm not aware of any other GLX functionality which would be.

No longer blocks: wr-linux-mvp

EGL_KHR_swap_buffers_with_damage support for X11 ( https://gitlab.freedesktop.org/mesa/mesa/-/issues/3030 and https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6132 ) has now been merged to upstream Mesa (so it'll be in mesa 20.3). Backport to mesa 20.2 branch is still pending.

No longer blocks: 1625070
Depends on: 1625070
Blocks: 1640710
No longer depends on: 1640710

With partial damage getting switched on on Android (bug 1575765), I think it's time to do the same on Linux. Note: this will not affect initial WR roleout, as that is X11/GLX only.

Depends on: 1575765
Summary: [WR/Linux] Enable partial present by default → [WR/EGL/Linux] Enable partial present by default
Attachment #9164285 - Attachment is obsolete: true

It has been enabled on Android - lets do the same on desktop linux.

Assignee: nobody → robert.mader
Status: NEW → ASSIGNED
Pushed by cbrindusan@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/f4d4538841af
Enable partial present for webrender on linux. r=nical
Status: ASSIGNED → RESOLVED
Closed: 2 months ago
Resolution: --- → FIXED
Target Milestone: --- → 83 Branch
You need to log in before you can comment on or make changes to this bug.