Closed Bug 1481313 Opened 6 years ago Closed 6 years ago

jumping/flickering boxes on ungleich.ch

Categories

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

x86_64
All
defect

Tracking

()

RESOLVED FIXED
mozilla64
Tracking Status
firefox-esr52 --- unaffected
firefox-esr60 --- unaffected
firefox61 --- unaffected
firefox62 --- unaffected
firefox63 --- disabled
firefox64 --- fixed

People

(Reporter: jan, Assigned: hiro)

References

(Blocks 1 open bug, )

Details

(Keywords: nightly-community, regression, Whiteboard: [gfx-noted])

Attachments

(4 files)

Attached video 2018-08-06_22-51-06.mp4
1. Open https://ungleich.ch/de/cms/
2. Scroll down to these boxes below "Unsere Produkte" and press F5.

mozregression --good 2018-05-01 --bad 2018-08-06 --pref gfx.webrender.all:true -a https://ungleich.ch/de/cms/
> 16:39.65 INFO: Last good revision: ba66db7432e535f3eb80fd3d3586e64e96275ab3
> 16:39.65 INFO: First bad revision: f065bd870d0f16b1ae251add29eba05ab4742e24
> 16:39.65 INFO: Pushlog:
> https://hg.mozilla.org/integration/autoland/pushloghtml?fromchange=ba66db7432e535f3eb80fd3d3586e64e96275ab3&tochange=f065bd870d0f16b1ae251add29eba05ab4742e24

> f065bd870d0f	Kartikaya Gupta — Bug 1477970 - Update webrender to commit 8a4fe66528aa362721e4048aac3cd5abf7faaf2c. r=jrmuizel

> WR @ f954713a05e651a5b35f75dd33ba8f374c577b0a
mozregression --repo try --launch db0a31beb80c4780803f2d6d248cae264fcc38ae --pref gfx.webrender.all:true -a https://ungleich.ch/de/cms/
good

> WR @ cf9b780325f67c32637deac1256375492e81b4d2
mozregression --repo try --launch 6f26f5d087aa7a16d4979d81e656a0562f574f3f --pref gfx.webrender.all:true -a https://ungleich.ch/de/cms/
bad

Regression range: https://github.com/servo/webrender/compare/f954713a05e651a5b35f75dd33ba8f374c577b0a...cf9b780325f67c32637deac1256375492e81b4d2
Flags: needinfo?(gwatson)
I suspect this is caused by https://github.com/servo/webrender/commit/b21331e134d5bac17c80290cd010dfe59babc7c7 - since the other commits in that regression range shouldn't have any behavior change. It may be a bug in that commit itself, or exposing an issue with the way Gecko is sending new display lists.
Flags: needinfo?(gwatson)
Do you see this happening anymore? I can't reproduce on my windows machine.
Priority: -- → P1
Whiteboard: [gfx-noted]
Yes, I still see it on Debian Testing, KDE, Xorg, Nvidia GTX 1060, driver 390.77.
Win10 1803, GTX 1060, driver 398.82
My Mac reproduces this bug as well.
OS: Linux → All
Assignee: nobody → aosmond
This is intermittenty, has to do with async animations and doesn't make the site unusable. Demoting to trains.
Blocks: stage-wr-trains
No longer blocks: stage-wr-nightly
See Also: → 1488988
We can't release this to the field, but we can let this ride to beta.
Priority: P1 → P2
Flickering boxes + cookie banner on https://www.spdnds.de/.
The cookie banner only flickers if it's over the Youtube video: https://www.spdnds.de/kita-gebuehren-abgeschafft/
Same regression range.
White flickering slideshow: https://www.twosigma.com/
I can't repro this on Win10 with my GTS(In reply to Jan Andre Ikenmeyer [:darkspirit] from comment #4)
> Created attachment 9005034 [details]
> 2018-08-29 23-31-09_Win10.mp4
> 
> Win10 1803, GTX 1060, driver 398.82

If you seek this video to currentTime = 6.416667, you'll see that we completely skipped rendering some of the cards.

I can't repro on Win10, GTX1060, driver 399.07.
I can repro this on my XPS 9550 with both the Intel and NVIDIA GPU.
Assignee: aosmond → cpearce
Priority: P2 → P1
Moving up to blocking beta because it seems to show up on a number of sites.
Attached video patreon.mp4
https://www.patreon.com/alternativlos
Focus on the center loading circle. My perception is that this bug is likelier triggered by mouse movement. Same regression range.
I think I can't reproduce this bug with layers.async-pan-zoom.enabled;false.

(About the mouse movement observation in comment 14: In general, when an animation is running, any mouse movement causes activity of gfx.webrender.debug.new-scene-indicator, as I noticed in bug 1491423 comment 5. That seemed illogical to me.)
(In reply to Jan Andre Ikenmeyer [:darkspirit] from comment #15)

> (About the mouse movement observation in comment 14: In general, when an
> animation is running, any mouse movement causes activity of
> gfx.webrender.debug.new-scene-indicator, as I noticed in bug 1491423 comment
> 5. That seemed illogical to me.)

Because on mouse move events, we do synchronize animations on the compositor for hit-testing, which results a paint.
Does the flicker happens every 200ms?  It seems to me that the flickers stops when I add 'overflow: hidden' style to the HTML element (Note that you need to download whole contents to local storage and change the HTML style there since to reproduce the flicker you need to reload the contents).  We do unthrottle async transform animations every 200ms to update scrollbar position, so if this flicker is a regression, it maybe imply it's a performance regression?
I did look at the suspicious commit Glen mentioned in comment 1.

It seems to me that take() for pending_properties [1] is overkill.  There is no case that update_document() is called without calling SceneProperties.set_properties()/add_properties()?  I think this bug is exactly the case.  Dropping the take() seems to resolve the flickers as far as I can tell.

[1] https://github.com/servo/webrender/commit/b21331e134d5bac17c80290cd010dfe59babc7c7#diff-c7a5c31423485faff26504ee0d56e41dR40
(In reply to Hiroyuki Ikezoe (:hiro) from comment #18)
> 
> [1]
> https://github.com/servo/webrender/commit/
> b21331e134d5bac17c80290cd010dfe59babc7c7#diff-
> c7a5c31423485faff26504ee0d56e41dR40

Correct place is https://github.com/servo/webrender/commit/b21331e134d5bac17c80290cd010dfe59babc7c7#diff-c7a5c31423485faff26504ee0d56e41dR61
This fixes the issue for me. Nice work hiro!
Assignee: cpearce → hikezoe
I did confirm what the problem is actually with some debug print.

We sometimes doesn't call SceneProperties.set_properties, (I am sure it happens when animation progress value hasn't changed but that's maybe not this case though), whereas add_properties() is called without set_properties calls.  So, before the commit [1] we had cleared transform_properties and float_properties in set_properties(), but after that we do clear them in flush_pending_updates(). That means that the values previously set by set_properties() doesn't get involved when we just call a add_properties (i.e. without calling set_properties), which results a flicker on the ungleich site because transform animation values didn't get involved at the moment. 

This fact noticed me that there might be another room to improve performance, which is we can skip calling add_properties because it seems to me that there is no need to APZ happens.  Maybe I am wrong, there maybe need to do something for APZ though.  If I am correct, we should file a new bug for that.

[1] https://github.com/servo/webrender/commit/b21331e134d5bac17c80290cd010dfe59babc7c7
Attached file GitHub Pull Request
Sent a PR for this.
FWIW, I have also noticed that currently add_properties is called only for APZ, which means we don't need to touch pending_properties.floats at all because it's for opacity animation values.
https://hg.mozilla.org/integration/mozilla-inbound/log/096b1dc47d71
last bad:   5ab8b903147a: Bug 1483780: enable sanitizer-less libfuzzer builds r=froydnj 
first good: d6bea517aec2: Bug 1492880. Update webrender to commit a601f9c291cee83257241ef61aaf62353c613438 

* https://ungleich.ch/de/cms/
* https://www.spdnds.de/
* https://www.spdnds.de/kita-gebuehren-abgeschafft/
* https://www.patreon.com/alternativlos
* https://www.ampermusic.com/sign-up

Thanks!
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla64
Same fix range: https://www.bankofamerica.com/

Having similar issues at times with the sidebar at https://www.overclock.net/ even more so if i scroll slowly in a thread.

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

Attachment

General

Creator:
Created:
Updated:
Size: