Closed Bug 1456218 Opened 3 years ago Closed 3 years ago

WebRender Mac: with WebRender ON, on a sharp vertical scroll is not registered until it completes


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

61 Branch





(Reporter: mark.paxman99, Unassigned)


(Blocks 2 open bugs, )


User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:61.0) Gecko/20100101 Firefox/61.0
Build ID: 20180423100754

Steps to reproduce:

Nightly 2018-04-23 Mac

WebRender ON: do a sharp vertical scroll of this page using a very quick two finger swipe on the trackpad. The page doesn't move until the swipe finishes

WebRender OFF: the page always moves correctly with the swipe.

I have tried disabling add-ons, no change.

Sometimes it's fiddly to make it happen, but I can see it ;)
Has Regression Range: --- → irrelevant
Has STR: --- → yes
Component: Untriaged → Graphics: WebRender
OS: Unspecified → Mac OS X
Product: Firefox → Core
Hardware: Unspecified → x86
I can't reproduce this on my mac using the latest nightly. Does it still happen if you set gfx.webrender.async-scene-build to 0 (browser restart required)?
Not clear from comment 0 if this is a regression or not, it might be, in which case a regression range would still be useful.
Has Regression Range: irrelevant → ---
Actually I think the problem is with an add-on:- Multi-Touch Zoom. This gives Safari-like pinch to zoom, it's nice. But the developer admits it's a clever hack. When I disable Multi-Touch Zoom and restart Firefox, my WebRender+swipe problem disappears.  The problem also disappears if I set gfx.webrender.async-scene-build to 0 and restart

WebRender     Multi-Touch Zoom    gfx.webrender.async-scene-build
  On             Enabled                        default                      -> scroll problem
  Off            Enabled                        default                      -> works OK      
  On             Disabled                       default                      -> works OK
  On             Enabled                        0                            -> works OK

Nightly restarted between tests
That's good to know, thanks! IIRC that add-on registers listeners on the root of the document which slows down APZ scrolling. I guess that doesn't play well with the async scene build codepaths. It sounds a lot like bug 1455759, and probably has the same root cause.
Depends on: 1455759
Yes it does sound like bug 1455759. Hopefully a fix for that will fix my issue.

I might check and see if I get 400 ms delay, I will let you know if I find anything out.

[ It's a shame that after soooo many years we still have to rely on hacky add-ons to get a nice pinch zoom... but I guess that's not your department ;) ]
I have tried to understand what's going on using perf.html Marker Chart. But I'm stuck.

Should I see one or a series of DispatchSynthMouseMove events each time I fling?

On the bikeradar page in questions I see almost no DOMEvent mousemove or DispatchSynthMouseMove events when I fling, whether I have WebRender on or off, or Multi-Touch Zoom enabled or disabled. With WebRender off and Multi-Touch Zoom disabled I did 10 up flings and 10 down flings in succession with Gecko Profiler running, when I looked at the perf.html I only see one DOMEvent mousemove and one DispatchSynthMouseMove right at the start (perhaps as I clicked the focus away from the Gecko Profiler button?). No others. And yet the page scrolls fine in this configuration.

Other pages I look at show at least one DispatchSynthMouseMove per fling. shows zero.

So perhaps the problem is with the page not with WebRender? But it scrolls fine with WebRender off. And even with WR on, it scrolls "eventually" ... just delayed.
Are you still seeing this issue on the latest Nightly?
Flags: needinfo?(mark.paxman99)
No. Seems fixed, thanks.
Flags: needinfo?(mark.paxman99)
Closed: 3 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.