Implement specialized image shaders for Software WebRender
Categories
(Core :: Graphics: WebRender, enhancement, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox84 | --- | fixed |
People
(Reporter: lsalzman, Assigned: lsalzman)
References
(Blocks 1 open bug)
Details
(Keywords: perf-alert)
Attachments
(4 files)
There are potentially huge performance improvements to be gained from specializing the various image brush shaders in SW-WR to bypass the generalized shader path. This can easily offer huge speed-ups on image heavy pages such as Amazon, roughly cutting rasterization overheads in half or better.
Updated•4 years ago
|
Assignee | ||
Comment 1•4 years ago
|
||
Span shaders can be defined in GLSL by defining a function named swgl_drawSpanRGBA8
(or R8 depending on output format). A set of extended SWGL intrinsics is defined in
swgl_ext.h that provides various optimized means for implementing these span shaders.
This replaces the older C++ include-file based draw_span functionality that was
unfinished and cumbersome to use with a more flexible mechanism that interacts better
with fragment shaders.
Assignee | ||
Comment 2•4 years ago
|
||
Depends on D95109
Assignee | ||
Comment 3•4 years ago
|
||
Depends on D95110
Assignee | ||
Comment 4•4 years ago
|
||
Depends on D95148
Pushed by lsalzman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/80c0aaa81c2e support SWGL span shaders for fast-pathing inside WR GLSL. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/29943d5348df implement SWGL shaders for brush_image/solid/opacity. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/6675f76d6f11 reduce requirements for SIMD padding in SWGL. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/d0d03d5a81a8 adjust fuzz for SWGL span shaders. r=jrmuizel
Comment 6•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/80c0aaa81c2e
https://hg.mozilla.org/mozilla-central/rev/29943d5348df
https://hg.mozilla.org/mozilla-central/rev/6675f76d6f11
https://hg.mozilla.org/mozilla-central/rev/d0d03d5a81a8
Backout by abutkovits@mozilla.com: https://hg.mozilla.org/mozilla-central/rev/b1d72b69a8e6 Backed out 4 changesets for causing bustage src/swgl_ext.h. a=backout
Comment 8•3 years ago
•
|
||
Backed out for causing bustage src/swgl_ext.h.
Backout link: https://hg.mozilla.org/mozilla-central/rev/b1d72b69a8e6bbb434ca106f8ea9e28ad26ea9ea
Failure log: https://treeherder.mozilla.org/logviewer?job_id=320335233&repo=mozilla-central&lineNumber=67628
Comment 9•3 years ago
|
||
Comment 10•3 years ago
|
||
Pushed by lsalzman@mozilla.com: https://hg.mozilla.org/integration/autoland/rev/ab54cc8c61f1 support SWGL span shaders for fast-pathing inside WR GLSL. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/4d421ff053dc implement SWGL shaders for brush_image/solid/opacity. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/d13f7a62af01 reduce requirements for SIMD padding in SWGL. r=jrmuizel https://hg.mozilla.org/integration/autoland/rev/caeaf3b5c665 adjust fuzz for SWGL span shaders. r=jrmuizel
Comment 11•3 years ago
|
||
bugherder |
https://hg.mozilla.org/mozilla-central/rev/ab54cc8c61f1
https://hg.mozilla.org/mozilla-central/rev/4d421ff053dc
https://hg.mozilla.org/mozilla-central/rev/d13f7a62af01
https://hg.mozilla.org/mozilla-central/rev/caeaf3b5c665
Comment 12•3 years ago
•
|
||
== Change summary for alert #27495 (as of Tue, 03 Nov 2020 13:24:44 GMT) ==
Improvements:
Ratio | Suite | Test | Platform | Options | Absolute values (old vs new) |
---|---|---|---|---|---|
22% | rasterflood_gradient | windows10-64-shippable-qr | e10s stylo webrender-sw | 157.58 -> 191.83 | |
21% | rasterflood_gradient | windows10-64-shippable-qr | e10s stylo webrender-sw | 158.00 -> 191.83 | |
20% | rasterflood_gradient | linux64-shippable-qr | e10s stylo webrender-sw | 169.75 -> 203.08 | |
20% | tsvgx | windows10-64-shippable-qr | e10s stylo webrender-sw | 337.78 -> 271.45 | |
13% | tsvgx | linux64-shippable-qr | e10s stylo webrender-sw | 349.21 -> 304.57 | |
11% | glterrain | linux64-shippable-qr | e10s stylo webrender-sw | 10.10 -> 9.00 | |
7% | tsvg_static | linux64-shippable-qr | e10s stylo webrender-sw | 41.20 -> 38.13 | |
4% | rasterflood_svg | linux64-shippable-qr | e10s stylo webrender-sw | 10,943.69 -> 10,526.76 | |
4% | tresize | linux64-shippable-qr | e10s stylo webrender-sw | 14.88 -> 14.32 |
For up to date results, see: https://treeherder.mozilla.org/perfherder/alerts?id=27495
Description
•