Closed Bug 1503801 Opened 6 years ago Closed 6 years ago

2.74% tsvgx (windows10-64-qr) regression on push 8ca1ac55ea7954a15da6da6262d2568f307710ff (Wed Oct 31 2018)

Categories

(Core :: Graphics, defect, P3)

x86_64
Windows 10
defect

Tracking

()

RESOLVED WONTFIX
Tracking Status
firefox-esr60 --- unaffected
firefox63 --- unaffected
firefox64 --- unaffected
firefox65 + wontfix

People

(Reporter: igoldan, Assigned: lsalzman)

References

Details

(Keywords: perf, regression, talos-regression)

Attachments

(1 file)

Talos has detected a Firefox performance regression from push:

https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=10a1012904a301011e98d9e3a413476f250cf081&tochange=8ca1ac55ea7954a15da6da6262d2568f307710ff

As author of one of the patches included in that push, we need your help to address this regression.

Regressions:

  3%  tsvgx windows10-64-qr opt e10s stylo     253.57 -> 260.52

Improvements:

 11%  tsvg_static windows7-32 pgo e10s stylo      49.22 -> 43.74
 10%  tsvgx windows7-32 pgo e10s stylo            137.40 -> 123.06
 10%  tsvgx windows7-32 opt e10s stylo            141.35 -> 127.63
  9%  tsvg_static windows7-32 opt e10s stylo      50.14 -> 45.45
  3%  tsvgr_opacity linux64 pgo e10s stylo        155.92 -> 151.32
  3%  tsvgr_opacity linux64-qr opt e10s stylo     158.80 -> 154.79


You can find links to graphs and comparison views for each of the above tests at: https://treeherder.mozilla.org/perf.html#/alerts?id=17286

On the page above you can see an alert for each affected platform as well as a link to a graph showing the history of scores for this test. There is also a link to a treeherder page showing the Talos jobs in a pushlog format.

To learn more about the regressing test(s), please see: https://wiki.mozilla.org/Performance_sheriffing/Talos/Tests

For information on reproducing and debugging the regression, either on try or locally, see: https://wiki.mozilla.org/Performance_sheriffing/Talos/Running

*** Please let us know your plans within 3 business days, or the offending patch(es) will be backed out! ***

Our wiki page outlines the common responses and expectations: https://wiki.mozilla.org/Performance_sheriffing/Talos/RegressionBugsHandling
Component: General → Graphics
Product: Testing → Core
Flags: needinfo?(lsalzman)
I'll post the Gecko profiles soon.
Priority: -- → P3
This tries to optimize some low-hanging fruit in the Skia gradient code. Namely there is a fastpath blindspot in the realm between SSE2 and AVX2, where AVX lies. This adds some permutation code for that case. Also, it cleans up the frontend of the gradient lookup that is doing a lot of unnecessary if_then_else()s, when it could just be adding up the masks (which are bit-pattern ~0, aka -1) and then negating them.

While it doesn't fully get back the apparent missing performance, it does claw back a tiny bit.

I am overall not too worried about these profiles as they represent a case where the target doesn't even have AVX, which is not going to be a huge proportion of our users in any case.

So whatever gradient regressions are left over after this patch, we will just accept.
Assignee: nobody → lsalzman
Status: NEW → ASSIGNED
Flags: needinfo?(lsalzman)
Attachment #9022201 - Flags: review?(rhunt)
Attachment #9022201 - Flags: review?(rhunt) → review+
Keywords: leave-open
How are things looking now, Ionut?
I tried a number of tests to see if I could diagnose a cause for things. At first I thought it was maybe changes upstream made in anti-aliasing strategies, but that wasn't it. Then I tried to see if there was something regarding the old offline compilation strategy in milestone 65 vs the online strategy in milestone 71, and I could find no set of compiler flags that would recover the performance. I also scoured the Skia code for any other major changes that might impact this, but I could really find any. There is still the possibility that this represents just a regression in clang's optimization performance itself on the SkRasterPipeline code, but to diagnose that would take a lot more inspection of the assembly with a magnifying glass than it is worth, and I am not sure anything can be done. At this point, let's just eat the regression since it doesn't really impact our PGO build performance much, only seemingly the opt builds, and only at lower levels of SIMD support (SSE2, but no AVX, etc.).
thanks :lsalzman
Status: ASSIGNED → RESOLVED
Closed: 6 years ago
Flags: needinfo?(igoldan)
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: