I definitely agree with this, but we also need OMTAnimations to be finished and enabled before any of the interesting parts of the UI can be converted.

Given that, I don't think we can have this conversation at the expense of trying to fix the current set of regressions from OMTC.

We may also want to invest some time into writing tools to help authors write and debug animations that run efficiently, and without main-thread involvement.

- Matt

On 30/05/14 2:30 pm, Andreas Gal wrote:
I think we should shift the conversation to how we actually animate here. 
Animating by trying to reflow and repaint with 60fps is just a bad idea. This 
might work on very high end hardware, but it will cause poor performance on the 
low-end Windows notebooks people buy these days. In other words, I am pretty 
sure our animation here was bad for a lot of our users pre-OMTC.

OMTC enables us to do smooth 60fps animations even under high load and even on 
very low end hardware, as long we do the animation right. So lets focus on that 
and figure out how to draw a tab strip that doesn’t hit pathological repainting 
paths.

I see two options here. We have to change our UX such that we can execute a 
smooth animation on the compositor (transforms, opacity changes, filter 
effects, etc), or we should draw the tab strip with canvas, which is more 
suitable for complex custom animations than reflow.

Andreas

On May 29, 2014, at 10:14 PM, avi...@gmail.com wrote:

So, wrt TART, I now took the time to carefully examine tab animation visually 
on one system.

TL;DR:
- I think OMTC introduces a clearly visible regression with tab animation 
compared to without OMTC.
- I _think_ it regresses more with tab close than with tab open animation.
- The actual throughput regression is probably bigger than indicated by TART 
numbers.


The reason for the negative bias is that the TART results are an average of 10 
different animations, but only one of those is close to pure graphics perf 
numbers, and when you look only on this test, the regression is bigger than 
50-100% (more like 100-400%).

The details:

System: Windows 8.1 x64, i7-4500u, using Intel's iGPU (HD4400), and with 
official Firefox nightly 32bit (2014-05-29).

First, visually: both with and without ASAP mode, to my eyes, tab animation 
with OMTC is less smooth, and seems to have lower frame rate than without OMTC.

As for what TART measures, of all the TART subtests, there are 3 which are most 
suitable for testing pure graphics performance - they test the css fade-in and 
fade-out (that's the close/open animation) of a tab without actually opening or 
closing a browser tab, so whatever performance it has, the limit comes only 
from the animation itself and it doesn't include other overheads.

These tests are the ones which have "fade" in their name, and only one of them 
is enabled by default in talos - the other two are available only when running TART 
locally and then manually selecting animations to run.

I'll focus on a single number which is the average frame interval of the entire animation 
(these are the ".all" numbers), for the fade animation at default DPI (which is 
1 on my system - so the most common).

What TART measures locally on my system:

OMTC without ASAP mode (as out of the box config as it gets):
iconFade-close-DPIcurrent.all    Average (5): 18.91 stddev: 0.86
iconFade-open-DPIcurrent.all     Average (5): 17.61 stddev: 0.78

OMTC with ASAP:
iconFade-close-DPIcurrent.all    Average (5): 18.47 stddev: 0.46
iconFade-open-DPIcurrent.all     Average (5): 10.08 stddev: 0.46

While this is an average of only 5 runs, stddev shows it's reasonably 
consistent, and the results are also consistent when I tried more.

We can already tell that close animation just doesn't get below ~18.5ms/frame 
on this system, ASAP doesn't affect it at all. We can also see that the open 
animation is around 60fps without ASAP (17.6 can happen with our inaccurate 
interval timers) and with ASAP it goes down to about 10ms/frame.

Without OMTC and without ASAP:
iconFade-close-DPIcurrent.all    Average (5): 16.54 stddev: 0.16
iconFade-open-DPIcurrent.all     Average (5): 16.52 stddev: 0.12

Without OMTC and with ASAP:
iconFade-close-DPIcurrent.all    Average (5): 5.53 stddev: 0.07
iconFade-open-DPIcurrent.all     Average (5): 6.37 stddev: 0.08

The results are _much_ more stable (stddev), and quite lower (in ASAP) and closer to 16.7 
in "normal" mode.

While I obviously can't visually notice differences when the frame rate is 
higher than my screen's 60hz, from what I've seen so far, both visually and at 
the numbers, I think TART is not less reliable than before, it doesn't look to 
me as if ASAP introduces very bad bias (I couldn't deduct any), and OMTC does 
seem regress tab animations meaningfully.

- avih
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to