Gradients render slow and make checkerboarding happen while panning

RESOLVED INVALID

Status

()

Firefox for Android
General
P1
normal
RESOLVED INVALID
5 years ago
9 months ago

People

(Reporter: wlach, Unassigned)

Tracking

(Depends on: 1 bug)

Trunk
ARM
Android
Points:
---

Firefox Tracking Flags

(blocking-fennec1.0 -, fennec+)

Details

(Whiteboard: [gfx])

This is probably covered by other bugs, but it can't hurt to file something for this explicitly since it's a very noticeable regression from XUL fennec. 

Steps to reproduce:

1. Load taskjs.org
2. Make two swipes down

The difference between XUL and native is pretty stark on the LG G2X: XUL checkerboards for only a fraction of a second, while you see the checkerboard for a good few seconds on native.

Here's some demonstration videos:

http://people.mozilla.com/~wlachance/taskjs_xul.webm
http://people.mozilla.com/~wlachance/taskjs_native.webm

I've got an eideticker test to automatically do this. I can post updated videos as things are fixed.
(CCing folks on the eideticker thread, as well as mobile devs responsible for this stuff who might be interested)
Assignee: nobody → chrislord.net
tracking-fennec: --- → 11+
Priority: -- → P1
Keywords: fennecnative-betablocker
Keywords: fennecnative-releaseblocker
Keywords: fennecnative-releaseblocker
Duplicate of this bug: 714214
Keywords: qawanted
This is still rather ugly on a Maple tinderbox build. Though there are still a number of checkerboarding improvements that the gfx team have in the works. Leaving qawanted so that we can re-check after those land.
blocking-fennec1.0: --- → beta+
Status: NEW → ASSIGNED
Whiteboard: [gfx]
Still able to reproduce on the recently merged Maple builds on Nightly (03/19).

--
Tested via Galaxy Nexus (Android 4.0.2)
Nightly (03/19)
Mozilla/5.0 (Android; Mobile; rv:14.0) Gecko/14.0 Firefox/14.0a1
Keywords: qawanted
Chris Lord mentioned on irc that it was speculated that the issue is with radial gradients on this page. I can confirm this. I was able to reduce the checkerboarding to almost nothing by changing this:

body {
  margin: 0;
  border-top: solid 2px #707070;
  padding: 80px 0;
  background-image: url("noise.png"), -webkit-gradient(radial, 50% 0%, 0, 50% 0%, 750, color-stop(0%, #fff), color-stop(100%, #d0e0ff));
  background-image: url("noise.png"), -webkit-radial-gradient(top center, #fff, #d0e0ff 750px);
  background-image: url("noise.png"), -moz-radial-gradient(top center, #fff, #d0e0ff 750px);
  background-image: url("noise.png"), -o-radial-gradient(top center, #fff, #d0e0ff 750px);
  background-image: url("noise.png"), radial-gradient(top center, #fff, #d0e0ff 750px);
}

To this:

body {
  margin: 0;
  border-top: solid 2px #707070;
  padding: 80px 0;
  background-image: url("white.png");
}

I guess most likely this means that we're checkerboarding because radial gradients are really slow to draw. I notice almost no checkerboarding on this page on my iPhone or with the stock browser.
(of course this doesn't explain why native performs so much worse on this metric than xul fennec, when they both use ~ the same drawing code)

Comment 7

5 years ago
(In reply to William Lachance (:wlach) from comment #6)
> (of course this doesn't explain why native performs so much worse on this
> metric than xul fennec, when they both use ~ the same drawing code)

I expect that the default cache viewport size in xul-fennec actually means the entire page fits into the display-port, and so you would never see checker-boarding.
blocking-fennec1.0: beta+ → ?
blocking-fennec1.0: ? → +

Updated

5 years ago
blocking-fennec1.0: + → ?

Updated

5 years ago
blocking-fennec1.0: ? → +
tracking-fennec: 11+ → 15+
blocking-fennec1.0: + → -
Duplicate of this bug: 721016
Summary: Scrolling taskjs.org produces quite a bit of checkerboarding vs. XUL Fennec → Gradients render slow and make checkerboarding happen while panning
Snorp, Blassey said you are working on something about handling gradients GPU.
Assignee: chrislord.net → snorp
tracking-fennec: 15+ → +
(In reply to Kevin Brosnan [:kbrosnan] from comment #9)
> Snorp, Blassey said you are working on something about handling gradients
> GPU.

Definitely not me. Maybe Cwiiis? Bug 795247
Assignee: snorp → chrislord.net
Depends on: 795247
I'm not sure that this is even still the case now, but checkerboarding is not a huge concern anymore (because of Gecko improvements and better commodity hardware).
Assignee: chrislord.net → nobody
Status: ASSIGNED → UNCONFIRMED
Ever confirmed: false
Yeah, I don't think this bug really has anything actionable in it anymore.
Status: UNCONFIRMED → RESOLVED
Last Resolved: 3 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.