Enable Accelerated Canvas2D on Windows
Categories
(Core :: Graphics: Canvas2D, enhancement)
Tracking
()
People
(Reporter: lsalzman, Assigned: lsalzman)
References
(Blocks 1 open bug, Regressed 4 open bugs)
Details
(Keywords: perf-alert)
Attachments
(4 files)
Assignee | ||
Comment 1•3 months ago
|
||
This disables the legacy Direct2D backend in Windows Nightly in favor
of using Accelerated Canvas2D instead. The goal of this experiment
is to collect performance and other bug feedback on AC2D versus Direct2D.
In general, AC2D has been fairly stable on other platforms, so it would be
nice to gradually move towards using AC2D on Windows as well so that we
are using one consistent acceleration solution.
This experiment is the first step towards that end.
Updated•3 months ago
|
Comment 3•3 months ago
|
||
Backed out for causing reftest failures
Backout link: https://hg.mozilla.org/integration/autoland/rev/4fc849c48d4c22e9bb303a999f75d03b53c1fb1d
Failure log -> ERROR - REFTEST ERROR | EXCEPTION: ReferenceError: d2d is not defined
Assignee | ||
Updated•3 months ago
|
Comment 5•3 months ago
|
||
bugherder |
Comment 6•3 months ago
•
|
||
Comment 7•3 months ago
|
||
Also seems to cause 7% regression on heap-unclassified
Updated•3 months ago
|
Comment 8•3 months ago
|
||
(In reply to Lee Salzman [:lsalzman] from comment #1)
This disables the legacy Direct2D backend in Windows Nightly in favor
of using Accelerated Canvas2D instead. The goal of this experiment
is to collect performance and other bug feedback on AC2D versus Direct2D.
Could we change this only for a subset of Nightly users? For PDF, we find many regressions on Nightly, and having a different configuration between Nightly and Beta/Release will make us blind to regressions caused by gfx changes.
Updated•3 months ago
|
Comment 9•3 months ago
|
||
(In reply to Pulsebot from comment #2)
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/2f15b6efa248
Disable Direct2D in Nightly. r=jrmuizel,aosmond
Perfherder has detected a browsertime performance change from push 2f15b6efa24884286c84068c76b9b21a7c2ee134.
Improvements:
Ratio | Test | Platform | Options | Absolute values (old vs new) | Performance Profiles |
---|---|---|---|---|---|
25% | motionmark-animometer | windows11-64-shippable-qr | fission webrender | 45.95 -> 57.65 | Before/After |
20% | motionmark-animometer-ramp | windows11-64-shippable-qr | fission webrender | 809.52 -> 967.66 | Before/After |
17% | imdb loadtime | windows11-64-shippable-qr | fission warm webrender | 1,227.42 -> 1,016.85 | Before/After |
16% | imdb LastVisualChange | windows11-64-shippable-qr | fission warm webrender | 1,318.33 -> 1,109.00 | Before/After |
13% | speedometer3 Charts-chartjs/Show tooltip/Async | windows11-64-shippable-qr | fission webrender | 10.30 -> 8.98 | Before/After |
... | ... | ... | ... | ... | ... |
3% | speedometer3 Perf-Dashboard/SelectingRange/total | windows11-64-shippable-qr | fission webrender | 24.05 -> 23.43 | Before/After |
Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.
If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a sheriff to do that for you.
You can run these tests on try with ./mach try perf --alert 1576
For more information on performance sheriffing please see our FAQ.
Assignee | ||
Comment 10•3 months ago
|
||
(In reply to Marco Castelluccio [:marco] from comment #8)
(In reply to Lee Salzman [:lsalzman] from comment #1)
This disables the legacy Direct2D backend in Windows Nightly in favor
of using Accelerated Canvas2D instead. The goal of this experiment
is to collect performance and other bug feedback on AC2D versus Direct2D.Could we change this only for a subset of Nightly users? For PDF, we find many regressions on Nightly, and having a different configuration between Nightly and Beta/Release will make us blind to regressions caused by gfx changes.
I will think of a way to reasonably do this soon.
Comment 11•3 months ago
|
||
Maybe we could use Nimbus?
We could also use the same approach for enabling/disabling hardware acceleration in pdf.js so we can help find bugs with hardware acceleration enabled, but keep it disabled so in the meantime we can also find bugs in the "normal" configuration.
Assignee | ||
Comment 12•3 months ago
|
||
Assignee | ||
Updated•3 months ago
|
Assignee | ||
Updated•3 months ago
|
Comment 13•3 months ago
|
||
Comment 14•3 months ago
|
||
bugherder |
Comment 15•3 months ago
|
||
(In reply to Pulsebot from comment #13)
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/71bf1129a125
Re-enable Direct2D on Windows nightly. r=jrmuizel
Perfherder has detected a awsy performance change from push 71bf1129a12562d0be35a5df2f452fbf3c042fac.
Improvements:
Ratio | Test | Platform | Options | Absolute values (old vs new) |
---|---|---|---|---|
6% | Heap Unclassified | windows11-64-2009-shippable-qr | fission tp6 | 110,120,215.08 -> 103,318,767.88 |
Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.
If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a sheriff to do that for you.
You can run these tests on try with ./mach try perf --alert 1718
For more information on performance sheriffing please see our FAQ.
Updated•2 months ago
|
Updated•2 months ago
|
Assignee | ||
Updated•18 days ago
|
Assignee | ||
Updated•18 days ago
|
Assignee | ||
Comment 16•18 days ago
|
||
Most issues related to the AC2D on Windows experiment should have been
addressed in related bugs, therefor it is time to starting rolling out
AC2D on Windows.
As before, this flips the gfx.canvas.accelerated pref to on, and also
flips the gfx.direct2d.disabled pref to true. With Direct2D disabled,
AC2D will then function. Direct2D can still be forced on via the
gfx.direct2d.force-enabled pref or by toggling the disabled pref, which
will subsequently automatically disable AC2D.
Comment 17•18 days ago
|
||
These two prefs will be set automatically with this change?
gfx.canvas.remote.worker-threads = 0
gfx.canvas.remote = False
Assignee | ||
Comment 18•18 days ago
•
|
||
(In reply to Mayank Bansal from comment #17)
These two prefs will be set automatically with this change?
gfx.canvas.remote.worker-threads = 0
gfx.canvas.remote = False
Worker threads is ignored, and remote canvas disables if there is no Direct2D. This was a recent-ish change.
Comment 19•17 days ago
|
||
Comment 20•16 days ago
|
||
https://searchfox.org/mozilla-central/rev/aecbd5cdd28a09e11872bc829d9e6e4b943e6e49/gfx/thebes/gfxPlatform.cpp#2512-2521
I think remote canvas will be only disabled on Nightly.
Assignee | ||
Comment 21•16 days ago
|
||
Comment 22•16 days ago
|
||
Comment 23•16 days ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/fe10049200df
https://hg.mozilla.org/mozilla-central/rev/adf856afde83
Comment 24•16 days ago
|
||
:lsalzman could you consider nominating this for a release note? (Process info)
Assignee | ||
Comment 25•12 days ago
|
||
Release Note Request (optional, but appreciated)
[Why is this notable]: Windows now uses Accelerated Canvas2D for hardware acceleration of Canvas2D. This provides a consistent acceleration architecture across all platforms by utilizing WebGL instead of relying upon Direct2D.
[Affects Firefox for Android]: No
[Suggested wording]:
[Links (documentation, blog post, etc)]:
Comment 26•12 days ago
|
||
Thanks, added to the Fx133 nightly release notes, please allow 30 minutes for the site to update.
Keeping the relnote-firefox flag as ? to keep it on the radar for inclusion in the final Fx133 release notes.
Comment 27•9 days ago
|
||
(In reply to Pulsebot from comment #19)
Pushed by lsalzman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/fe10049200df
Enable Accelerated Canvas2D on Windows. r=aosmond
Perfherder has detected a browsertime performance change from push fe10049200dfa92f958f65b9fc37fef345694b41.
Improvements:
Ratio | Test | Platform | Options | Absolute values (old vs new) | Performance Profiles |
---|---|---|---|---|---|
14% | imdb loadtime | windows11-64-shippable-qr | fission warm webrender | 1,220.78 -> 1,052.74 | Before/After |
13% | speedometer3 Charts-chartjs/Show tooltip/total | windows11-64-shippable-qr | fission webrender | 11.14 -> 9.65 | Before/After |
13% | imdb LastVisualChange | windows11-64-shippable-qr | fission warm webrender | 1,332.76 -> 1,160.93 | Before/After |
13% | speedometer3 Charts-chartjs/Show tooltip/Async | windows11-64-shippable-qr | fission webrender | 10.90 -> 9.50 | Before/After |
13% | speedometer3 Charts-chartjs/Show tooltip/total | windows11-64-shippable-qr | fission webrender | 11.06 -> 9.64 | Before/After |
... | ... | ... | ... | ... | ... |
4% | speedometer3 Perf-Dashboard/SelectingRange/total | windows11-64-shippable-qr | fission webrender | 25.05 -> 23.97 | Before/After |
Details of the alert can be found in the alert summary, including links to graphs and comparisons for each of the affected tests.
If you need the profiling jobs you can trigger them yourself from treeherder job view or ask a sheriff to do that for you.
You can run these tests on try with ./mach try perf --alert 2517
For more information on performance sheriffing please see our FAQ.
Description
•