Closed Bug 1036518 Opened 10 years ago Closed 10 years ago

Scrolling Shows Janky Behavior

Categories

(Core :: Panning and Zooming, defect, P1)

ARM
Gonk (Firefox OS)
defect

Tracking

()

RESOLVED FIXED
mozilla33

People

(Reporter: mchang, Assigned: kats)

References

Details

(Keywords: perf, regression, Whiteboard: [c=regression p=2 s=2014.07.18.t u=])

Attachments

(1 file)

Since I updated to master today, scrolling shows janky behavior. It looks like we're slowly trying to scroll back to our original starting point. Since I didn't update gaia, this is probably a gecko regression.

Gecko tip bad:
193053:2d88803a0b9c

Gecko good:
7f9db2379b3f
OS: Mac OS X → Gonk (Firefox OS)
Priority: -- → P1
Hardware: x86 → ARM
blocking-b2g: --- → 2.1?
Smaller regression range than this would help - http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=7f9db2379b3f&tochange=2d88803a0b9c - but, Kats, could it be a fallout from bug 1027593?
Flags: needinfo?(bugmail.mozilla)
I can repro this on a Nexus4 but not on a Flame. Investigating.. I don't think bug 1027593 would have cause this but too early to tell for sure.
The first bad revision is:
changeset:   193032:cc20208a6eb4
user:        Matt Woodrow <mwoodrow@mozilla.com>
date:        Wed Jul 09 14:01:54 2014 +1200
summary:     Bug 1034247 - Avoid propogating scale factors down to ThebesLayers if it would result in them being larger than the max texture size. r=roc

Matt, any idea why this would break scrolling on a nexus 4? Should we back out bug 1034247? Thanks!
Flags: needinfo?(bugmail.mozilla) → needinfo?(matt.woodrow)
I don't have a nexus 4 to test this on, is there any chance one of you could take a look at this?

Otherwise we should back out bug 1034247 until I can take a look.
Flags: needinfo?(matt.woodrow)
(In reply to Matt Woodrow (:mattwoodrow) from comment #5)
> I don't have a nexus 4 to test this on, is there any chance one of you could take a look at this?

Sotaro ran into this issue on a Flame after increasing the tile size to 512x512.

Kats also suggested that increasing layout.css.devPixelsPerPx to 2.0 or higher could help repro the problem on a non-{Nexus 4} device.

If those don't help you reproduce the problem on whatever device you have, I can try taking a look tomorrow.
I can't reproduce this on my device with either the tile size changes or the devPixelsPerPx change.
Also, does the content look like it's been drawn at a lower resolution than normal? Can't really see from the video.

My patch shouldn't have any effect unless we think the content is larger than the maximum texture size, in which case it'll downscale everything to fit.

I guess we need to detect tiled display ports and not downscale in that case. Though things shouldn't actually break if we do, so there's probably an APZ bug here too.
I reproduce this on Nexus S. Scrollable content expose the very same behavior as in the video, and rendering is blurry. This happens in Settings, Email messages list and folders/accounts.
Is this reproduceable on other devices if you make the display-port bigger and navigate to a long enough page?

(displayport prefs: http://mxr.mozilla.org/mozilla-central/source/b2g/app/b2g.js#951)
I can confirm that locally reverting bug 1034247 helps :)
(In reply to Matt Woodrow (:mattwoodrow) from comment #8)
> Also, does the content look like it's been drawn at a lower resolution than
> normal? Can't really see from the video.

Looks like this problem is affecting Fennec too, and there it definitely does look lower resolution. It didn't really look lower resolution on B2G to me. I'll check again.

> My patch shouldn't have any effect unless we think the content is larger
> than the maximum texture size, in which case it'll downscale everything to
> fit.

The low-res displayport on a device like the Nexus4 might very well be larger than 4096.

> 
> I guess we need to detect tiled display ports and not downscale in that
> case. Though things shouldn't actually break if we do, so there's probably
> an APZ bug here too.

Agreed, there probably is an APZ bug here which causes the janky scrolling. However the low-resolution rendering would still happen even if the APZ bug were fixed.

Given that Fennec nightly is pretty hosed right now (I guess more people are using high-dpi devices with Fennec than B2G?) I'm going to back out bug 1034247.

(In reply to Chris Lord [:cwiiis] from comment #11)
> Is this reproduceable on other devices if you make the display-port bigger
> and navigate to a long enough page?
> 
> (displayport prefs:
> http://mxr.mozilla.org/mozilla-central/source/b2g/app/b2g.js#951)

That alone might not be sufficient to trigger this, because if you make the displayport too big we'll probably hit the code at [1] and then stop using the displayport entirely.

[1] http://mxr.mozilla.org/mozilla-central/source/layout/generic/nsGfxScrollFrame.cpp?rev=3bb11b1b5166#2504
(In reply to Matt Woodrow (:mattwoodrow) from comment #8)
> Also, does the content look like it's been drawn at a lower resolution than
> normal? Can't really see from the video.
> 
> My patch shouldn't have any effect unless we think the content is larger
> than the maximum texture size, in which case it'll downscale everything to
> fit.
> 
> I guess we need to detect tiled display ports and not downscale in that
> case. Though things shouldn't actually break if we do, so there's probably
> an APZ bug here too.

On master flame with 512*512 tile, I faced the problem on the following site.

http://www.itmedia.co.jp/
Landed backout on central: https://hg.mozilla.org/mozilla-central/rev/f93c0ef45597
Assignee: mchang → bugmail.mozilla
Status: ASSIGNED → RESOLVED
blocking-b2g: 2.1? → ---
Closed: 10 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla33
Whiteboard: [c=regression p=3 s= u=] → [c=regression p=2 s=2014.07.18 u=]
Whiteboard: [c=regression p=2 s=2014.07.18 u=] → [c=regression p=2 s=2014.07.18t u=]
Whiteboard: [c=regression p=2 s=2014.07.18t u=] → [c=regression p=2 s=2014.07.18.t u=]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: