Australis performance report #2

Mike Conley mconley at
Thu Sep 26 20:46:55 UTC 2013

Hey again firefox-dev,

Here I am with a second update on what's going on in Australis performance-land.

Here's where we are:

1) There's some discussion going on over whether or not the ts_paint
regression actually exists (bug 880611) or is just measurement noise.
The jury is still out there, but we'll hopefully have reached a conclusion
about that soon.

2) We made some excellent progress on our Windows TART regressions this week.

How excellent was that progress? Let me show you.

# Excellent progress

Win XP:
Win 7:
Win 8:

There are quite a few things to note about these graphs:

1) You'll notice that towards the latter end of those graphs, mozilla-central
briefly starts to catch up to the UX branch. I believe there's been some work
on mozilla-central recently that's made border drawing faster, and the tabs
that mozilla-central has got a boost from that. UX didn't get a boost because
we don't draw borders for our tabs.

2) Shortly after those mozilla-central gains, UX got two big gains in the tab
close tests. These gains are the result of these bugs:

Bug 919541 - Consider not animating the opacity for Australis tabs
Bug 916946 - Stop animating the back-button when enabling or disabling it

We saw tab close wins across all 3 Windows versions with those bugs. \o/

# Still more to be done

But there's still more to be done. We're still slightly regressing on tab
opening animations on Windows XP. It's a slight regression, but measurable.
We have a plan in motion that could change that though, and it consists of
two bugs:

Bug 921038 - Move selected tab linear-gradient into stroke image
Bug 921051 - Test the effect of switching Australis selected tab curves from
             clip-paths to SVG curves with and without caching

Both bugs are pieces of a bigger plan to change the way we draw the curves.
Long story short, we've been making the curves of Australis work by drawing a
background square with the right colours, and then clipping that square with
an SVG path to the curve shape.

What we're thinking of doing instead, is drawing the curves directly from SVG,
and skipping the clipping of the backgrounds altogether.

Now I know what you're thinking,

"But Mike, SVG is slow as molassas. How could this possibly help?"

and a few days ago, I would have agreed with you. In fact, we have data showing
that switching to SVG right now could cause our TART scores to get worse.

Except for one thing:

Bug 764299 - Cache rasterized SVG images some of the time

Our good friends on the Graphics team have been working on this bug that should
super-charge our ability to draw the Australis tab curves with SVG. Bug 921051
has some preliminary analysis of the performance benefits in comment 3.

We're cautiously hopeful that this could be the change that fixes our TART
regressions, at least on Windows, once and for all. Further testing and analysis
is necessary to determine what impacts (if any) this will have on OS X and Linux
GTK. Rest assured we're going to test the approach thoroughly before attempting
to implement it.

Anyhow, that's where we're currently at.


More information about the firefox-dev mailing list