Looking on from m.d.tree-management, on Fx-Team, the merge from this change caused a >40% CART regression, too, which wasn't listed in the original email. Was this unforeseeen, and if not, why was this considered acceptable?

As gavin noted, considering how hard we fought for 2% improvements (one of the Australis folks said yesterday "1% was like Christmas!") despite our reasons of why things were really OK because of some of the same reasons you gave (e.g. running in ASAP mode isn't realistic, "TART is complicated", ...), this hurts - it makes it seem like (a) our (sometimes extremely hacky) work was done for no good reason, or (b) the test is fundamentally flawed and we're better off without it, or (c) when the gfx team decides it's OK to regress it, it's fine, but not when it happens to other people, quite irrespective of reasons given.

All/any of those being true would give me the sad feelings. Certainly it feels to me like (b) is true if this is really meant to be a net perceived improvement despite causing a 40% performance regression in our automated tests.

~ Gijs

On 18/05/2014 19:47, Bas Schouten wrote:
Hi Gavin,

There have been several e-mails on different lists, and some communication on 
some bugs. Sadly the story is at this point not anywhere in a condensed form, 
but I will try to highlight a couple of core points, some of these will be 
updated further as the investigation continues. The official bug is bug 946567 
but the numbers and the discussion there are far outdated (there's no 400% 
regression ;)):

- What OMTC does to tart scores differs wildly per machine, on some machines we 
saw up to 10% improvements, on others up to 20% regressions. There also seems 
to be somewhat more of a regression on Win7 than there is on Win8. What the 
average is for our users is very hard to say, frankly I have no idea.
- One core cause of the regression is that we're now dealing with two D3D 
devices when using Direct2D since we're doing D2D drawing on one thread, and 
D3D11 composition on the other. This means we have DXGI locking overhead to 
synchronize the two. This is unavoidable.
- Another cause is that we're now having two surfaces in order to do double 
buffering, this means we need to initialize more resources when new layers come 
into play. This again, is unavoidable.
- Yet another cause is that for some tests we composite 'ASAP' to get 
interesting numbers, but this causes some contention scenario's which are less 
likely to occur in real-life usage. Since the double buffer might copy the area 
validated in the last frame from the front buffer to the backbuffer in order to 
prevent having to redraw much more. If the compositor is compositing all the 
time this can block the main thread's rasterization. I have some ideas on how 
to improve this, but I don't know how much they'll help TART, in any case, some 
cost here will be unavoidable as a natural additional consequence of double 
buffering.
- The TART number story is complicated, sometimes it's hard to know what 
exactly they do, and don't measure (which might be different with and without 
OMTC) and how that affects practical performance. I've been told this by Avi 
and it matches my practical experience with the numbers. I don't know the exact 
reasons and Avi is probably a better person to talk about this than I am :-).

These are the core reasons that we were able to identify from profiling. Other 
than that the things I said in my previous e-mail still apply. We believe we're 
offering significant UX improvements with async video and are enabling more 
significant improvements in the future. Once we've fixed the obvious problems 
we will continue to see if there's something that can be done, either through 
tiling or through other improvements, particularly in the last point I 
mentioned there might be some, not 'too' complex things we can do to offer some 
small improvement.

If we want to have a more detailed discussion we should probably pick a list to 
have this on and try not to spam people too much :-).

Bas

----- Original Message -----
From: "Gavin Sharp" <ga...@gavinsharp.com>
To: "Bas Schouten" <bschou...@mozilla.com>
Cc: "dev-tree-management" <dev-tree-managem...@lists.mozilla.org>, dev-tech-...@lists.mozilla.org, 
"release-drivers" <release-driv...@mozilla.org>, "mozilla.dev.platform group" 
<dev-platform@lists.mozilla.org>
Sent: Sunday, May 18, 2014 6:23:58 PM
Subject: Re: OMTC on Windows

but tart will regress by ~20%, and several other suites will regress as well.
We've investigated this extensively and we believe the majority of these
regressions are due to the nature of OMTC and the fact that we have to do
more work.

Where can I read more about the TART investigations? I'd like to
understand why it is seen as inevitable, and get some of the details
of the regression. OMTC is important, and I'm excited to see it land
on Windows, but the Firefox and Performance teams have just come off a
months-long effort to make significant wins in TART, and the thought
of taking a 20% regression (huge compared to some of the improvements
we fought for) is pretty disheartening.

Gavin

On Sun, May 18, 2014 at 12:16 AM, Bas Schouten <bschou...@mozilla.com> wrote:
Hey all,

After quite a lot of waiting we've switched on OMTC on Windows by default today 
(bug 899785). This is a great move towards moving all our platforms onto OMTC 
(only linux is left now), and will allow us to remove a lot of code that we've 
currently been duplicating. Furthermore it puts us on track for enabling other 
features on desktop like APZ, off main thread animations and other improvements.

Having said that we realize that what we've currently landed and turned on is 
not completely bug free. There's several bugs still open (some more serious 
than others) which we will be addressing in the coming weeks, hopefully before 
the merge to Aurora. The main reason we've switched it on now is that we want 
to get as much data as possible from the nightly channel and our nightly user 
base before the aurora merge, as well as wanting to prevent any new regressions 
from creeping in while we fix the remaining problems. This was extensively 
discussed both internally in the graphics team and externally with other people 
and we believe we're at a point now where things are sufficiently stabilized 
for our nightly audience. OMTC is enabled and disabled with a single pref so if 
unforeseen, serious consequences occur we can disable it quickly at any stage. 
We will inevitably find new bugs in the coming weeks, please link any bugs you 
happen to come across to bug 899785, if anything
 se
  ems very serious, please let us know, we'll attempt to come up with a 
solution on the short-term rather than disabling OMTC and reducing the amount 
of feedback we get.

There's also some important notes to make on performance, which we expect to be 
reported by our automated systems:

- Bug 1000640 is about WebGL. Currently OMTC regresses WebGL performance 
considerably, patches to fix this are underway and this should be fixed on the 
very short term.

- Several of the Talos test suite numbers will change considerably (especially 
with Direct2D enabled), this means Tscroll for example will improve by ~25%, 
but tart will regress by ~20%, and several other suites will regress as well. 
We've investigated this extensively and we believe the majority of these 
regressions are due to the nature of OMTC and the fact that we have to do more 
work. We see no value in holding off OMTC because of these regressions as we'll 
have to go there anyway. Once the last correctness and stability problems are 
all solved we will go back to trying to find ways to get back some of the 
performance regressions. We're also planning to move to a system more like 
tiling in desktop, which will change the performance characteristics 
significantly again, so we don't want to sink too much time into optimizing the 
current situation.

- Memory numbers will increase somewhat, this is unavoidable, there's several 
steps which have to be taken when doing off main thread compositing (like 
double-buffering), which inherently use more memory.

- On a brighter note: Async video is also enabled by these patches. This means 
that when the main thread is busy churning JavaScript, instead of stuttering 
your video should now happily continue playing!

- Also there's some indications that there's a subjective increase in scrolling 
performance as well.


If you have any questions please feel free to reach out to myself or other 
members of the graphics team!


Bas
_______________________________________________
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