Add a fast path for common rounded rect clips to WR.
Categories
(Core :: Graphics: WebRender, enhancement, P2)
Tracking
()
Tracking | Status | |
---|---|---|
firefox68 | --- | fixed |
People
(Reporter: gw, Assigned: gw)
References
Details
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
Assignee | ||
Updated•6 years ago
|
Assignee | ||
Comment 1•6 years ago
|
||
Most rounded rect clips in real content are (a) axis aligned and
(b) have uniform radii.
When these conditions are met, we can run a fast path for clip
mask generation that uses significantly fewer ALU shader ops.
This is not typically a bottleneck on desktop GPUs, but can have
a large performance impact on mobile GPUs (and perhaps low end
integrated GPUs).
The Mali shader analyzer reports the slow path for the rounded
rect clip shader to be 94 cycles per fragment, while the fast
path is 10 cycles.
Comment 3•6 years ago
|
||
Backed out changeset 70440f88051f (Bug 1535976) for /reftests/transform-3d/mask-layer* failures
Backout link: https://hg.mozilla.org/integration/autoland/rev/a852a3b599b48136d3a534d023d15ceb12f88695
Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=234696304&repo=autoland&lineNumber=6990
01:41:11 INFO - REFTEST TEST-START | file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-1.html == file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-ref.html
01:41:11 INFO - REFTEST TEST-LOAD | file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-1.html | 75 / 88 (85%)
01:41:11 INFO - REFTEST TEST-LOAD | file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-ref.html | 75 / 88 (85%)
01:41:11 INFO - REFTEST INFO | REFTEST fuzzy test (9, 32) <= (8, 32) <= (9, 32)
01:41:11 INFO - REFTEST TEST-UNEXPECTED-PASS | file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-1.html == file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-ref.html | image comparison, max difference: 8, number of differing pixels: 32
01:41:11 INFO - REFTEST IMAGE 1 (TEST): data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAP
01:41:11 INFO - REFTEST IMAGE 2 (REFERENCE): data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAPoCAYA
01:41:11 INFO - REFTEST TEST-END | file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-1.html == file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-ref.html
01:41:11 INFO - REFTEST TEST-START | file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-2.html == file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-ref.html
01:41:11 INFO - REFTEST TEST-LOAD | file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-2.html | 76 / 88 (86%)
01:41:11 INFO - REFTEST INFO | REFTEST fuzzy test (9, 32) <= (8, 32) <= (9, 32)
01:41:11 INFO - REFTEST TEST-UNEXPECTED-PASS | file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-2.html == file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-ref.html | image comparison, max difference: 8, number of differing pixels: 32
01:41:11 INFO - REFTEST IMAGE 1 (TEST): data:image/png;base64,iVBORw0KGgoAAAANSUhEUg
01:41:11 INFO - REFTEST IMAGE 2 (REFERENCE): data:image/png;base64,iVBORw0KGgoAAAAN
01:41:11 INFO - REFTEST TEST-END | file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-2.html == file:///Z:/task_1552957919/build/tests/reftest/tests/layout/reftests/transform-3d/mask-layer-ref.html
Assignee | ||
Comment 4•6 years ago
|
||
Ah, it looks like on Windows these are new PASS results as they are slightly less fuzzy than when I last did a try run:
(9, 32) <= (8, 32) <= (9, 32)
I'll update the reftest annotations to allow fuzziness of one less pixel on those tests.
Assignee | ||
Comment 5•6 years ago
|
||
Oh, I see what happened.
I had already fixed this and done a successful try run, but then forgot to update the patch in phabricator.
I've rebased and pushed the updated patch, and kicked off a new try run to be sure:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=f672c0e8438a099fa521495729da9de30f7d58b0
Once that completes, I'll re-push this to lando.
Assignee | ||
Comment 6•6 years ago
|
||
Looks like there is also one other new PASS on Windows, so I've updated the patch again and kicked off a new try:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=a2dad245a1cb0157bddeca59166d9979348328d1
Updated•6 years ago
|
Comment 8•6 years ago
|
||
bugherder |
Updated•6 years ago
|
Updated•6 years ago
|
Description
•