Closed Bug 1433663 Opened 3 years ago Closed 3 years ago

hit-test: twitter jumps for a little moment when scrolling down


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




Tracking Status
firefox-esr52 --- unaffected
firefox58 --- unaffected
firefox59 --- unaffected
firefox60 --- disabled


(Reporter: jan, Assigned: kats)


(Blocks 1 open bug, )


(Keywords: nightly-community)


(1 file)

Attached video 2018-01-27_17-31-33.mp4
Nightly 60 x64 20180127100319 de_DE @ Debian Testing (KDE, Radeon RX480)
main profile: gfx.webrender.all, gfx.webrender.hit-test

When I scroll down on Twitter, sometimes my feed jumps a bit up and down for a part of a second. Or it flickers. I can't describe it precisely.
(Nearly all websites are affected by this.)
This is pretty bad. We must be rendering frames without the async scroll offset or something.
Assignee: nobody → bugmail
(In reply to Kartikaya Gupta ( from comment #2)
> We must be rendering frames without the async scroll
> offset or something.

I believe this is the problem. The extra patch I'm working on to fix the debug assertion failures in bug 1421380 will fix the visual issue, but we'll still be doing hit-tests against the frame without async scroll offsets. So that's not great. I think in order to fix this properly we should do the other half of what nical suggested at [1], and have WR query gecko for the async scroll offsets at render time, rather than having gecko push these offsets to WR when it calls GenerateFrame. That way WR will be able to query for these offsets even if the render was triggered by a hit-test.

If we move scene building to a worker thread and get rid of the hit-test driven renders, then this problem will go away, and that's going to happen soonish. But we'll want this machinery for WR to query gecko's async scroll offsets anyway so it wouldn't hurt to write that code.

Nightly 60 x64 20180130223236 de_DE @ Debian Testing (KDE, Radeon RX480).
This seems to be fixed, too. Thank you!
Your try build from bug 1421380 comment 16 was already good.
Although the bug in comment 0 is fixed, I'm going to leave this open because there's still a bug where WR's hit-test is going to miss the async transforms.
servo/webrender#2367 should fix this.
This should be fixed now.
Closed: 3 years ago
Resolution: --- → FIXED
This being fixed with a PR - is there a Gecko side reftest that we can add that catches this problem?
You need to log in before you can comment on or make changes to this bug.