Closed Bug 1747857 Opened 3 years ago Closed 3 years ago

Partial present video poster glitch

Categories

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

x86_64
Linux
defect

Tracking

()

VERIFIED FIXED
98 Branch
Tracking Status
firefox-esr91 --- verified
firefox95 --- wontfix
firefox96 --- wontfix
firefox97 --- verified
firefox98 --- verified

People

(Reporter: jan, Assigned: gw)

References

(Blocks 1 open bug, Regression, )

Details

(Keywords: correctness, nightly-community, regression)

Attachments

(2 files)

Attached video 2021-12-29_04-43-38.mp4

Gnome Xwayland, Debian Testing, Intel

This seems to be an earlier partial present regression that was caused by bug 1704956 and not by bug 1706488 (bug 1712969).

STR: Hover the video shortly.
Expected: When unhovering the video, the video should no longer be visible. Only the image should be visible.
Actual: The glitch occurs at the top or at the bottom of the video player: A part of the video remains visible. It may even consist of multiple stripes with correct content in-between.

mozregression --good 2021-01-20 --bad 2021-04-20 --pref gfx.webrender.all:true -a https://www.dw.com/en/sudan-gold-mine-collapse-kills-dozens/a-60281945

31:54.34 INFO: Last good revision: 0639a51e1f164a99e5be8d056e6a9bfb29242c7a
31:54.34 INFO: First bad revision: 2df08c0b8938005b211e18fa85c7696a758cdc5c
31:54.34 INFO: Pushlog:
https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=0639a51e1f164a99e5be8d056e6a9bfb29242c7a&tochange=2df08c0b8938005b211e18fa85c7696a758cdc5c

2df08c0b8938005b211e18fa85c7696a758cdc5c Glenn Watson — Bug 1704956 - Support non-opaque compositor surfaces. r=gfx-reviewers,lsalzman

Reproducible with:

GLX can be fixed with gfx.webrender.allow-partial-present-buffer-age:false or with gfx.webrender.max-partial-present-rects:0:

In contrast to bug 1712969 and its duplicates, gfx.webrender.allow-partial-present-buffer-age:false seems to help a bit on EGL: The glitch occurs, but quickly disappears.
mozregression --launch 2021-12-28 --pref gfx.webrender.all:true gfx.x11-egl.force-enabled:true gfx.webrender.allow-partial-present-buffer-age:false -a https://www.dw.com/en/sudan-gold-mine-collapse-kills-dozens/a-60281945

gfx.webrender.max-partial-present-rects:0 fixes EGL:
mozregression --launch 2021-12-28 --pref gfx.webrender.all:true gfx.x11-egl.force-enabled:true gfx.webrender.max-partial-present-rects:0 -a https://www.dw.com/en/sudan-gold-mine-collapse-kills-dozens/a-60281945

Flags: needinfo?(gwatson)
Severity: -- → S2
Priority: -- → P3
Assignee: nobody → gwatson
Flags: needinfo?(gwatson)

I can reproduce this locally, and see what is happening. When the video surface gets removed the calculated dirty rect that gets passed to the renderer doesn't include this information.

This is a sufficient fix to handle this case, we should definitely
invalidate the dirty rect validity if the compositor surface count
has changed.

There are likely other cases where the surface count remains the same
but we also need to invalidate dirty rect validity (we can handle
these as follow ups and/or as we encounter other cases).

Pushed by gwatson@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/2984af6718ee Invalidate partial dirty rects when surface counts change r=gfx-reviewers,aosmond
Has Regression Range: --- → yes
Has STR: --- → yes
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → 98 Branch

Please request Beta approval on this when you get a chance. Might be worth nominating for ESR also as it grafts cleanly there as well.

Flags: needinfo?(gwatson)

Comment on attachment 9258255 [details]
Bug 1747857 - Invalidate partial dirty rects when surface counts change

Beta/Release Uplift Approval Request

  • User impact if declined: Visual glitches in some cases
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: Yes
  • Needs manual test from QE?: Yes
  • If yes, steps to reproduce: As per bug report
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Patch is small, shouldn't affect other code paths
  • String changes made/needed:
Flags: needinfo?(gwatson)
Attachment #9258255 - Flags: approval-mozilla-beta?
Flags: qe-verify+

Comment on attachment 9258255 [details]
Bug 1747857 - Invalidate partial dirty rects when surface counts change

Approved for 97.0b3.

Attachment #9258255 - Flags: approval-mozilla-beta? → approval-mozilla-beta+
QA Whiteboard: [qa-triaged]

I was able to reproduce the issue on Linux 20.4 using build 97.0a1 (20211228034259) and link from description.
Verified as fixed on Linux 20.4 using 98.0a1 (20220112213002). Pending verification on Beta 97.0b3 once available.

(In reply to Monica Chiorean from comment #9)

I was able to reproduce the issue on Linux 20.4 using build 97.0a1 (20211228034259) and link from description.
Verified as fixed on Linux 20.4 using 98.0a1 (20220112213002). Pending verification on Beta 97.0b3 once available.

Verified as fixed on Linux 20.4 using Beta 97.0b3(20220113185849).

Status: RESOLVED → VERIFIED

Is this worth nominating for ESR?

Flags: needinfo?(gwatson)

Comment on attachment 9258255 [details]
Bug 1747857 - Invalidate partial dirty rects when surface counts change

ESR Uplift Approval Request

  • If this is not a sec:{high,crit} bug, please state case for ESR consideration: Small patch that grafts cleanly, fixes a visual glitch when playing videos on systems with partial present (linux, android, non-native compositors).
  • User impact if declined: Visual glitches per above
  • Fix Landed on Version:
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): Small patch, simple fix
Flags: needinfo?(gwatson)
Attachment #9258255 - Flags: approval-mozilla-esr91?

Comment on attachment 9258255 [details]
Bug 1747857 - Invalidate partial dirty rects when surface counts change

Approved for 91.7esr.

Attachment #9258255 - Flags: approval-mozilla-esr91? → approval-mozilla-esr91+

Hello! Verified on 91.7.0esr(20220228225400) on Linux x86_64(Ubuntu 20.04), works as expected.

You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: