diff options
author | Michael Ludwig <michaelludwig@google.com> | 2019-01-04 14:51:40 +0000 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2019-01-04 14:51:48 +0000 |
commit | 23d8943e5b89468e196af61e8d0deed79e786719 (patch) | |
tree | f17596bb70b63ad4b1e5114eeb006d88ce880380 /gn | |
parent | a9549ab31630fc244094e6f1692371cbaf87f666 (diff) | |
download | skqp-23d8943e5b89468e196af61e8d0deed79e786719.tar.gz |
Revert "Use specialized quad lists in rectangle ops"
This reverts commit 5820b0c3f3ceba23b9d80415e77a9db124b409b8.
Reason for revert: Unanticipated gold image differences and performance regressions
Original change's description:
> Use specialized quad lists in rectangle ops
>
> Hopefully reduces memory footprint of GrFillRectOp and GrTextureOp
>
> The original rect code (GrAAFillRectOp) stored 2 SkMatrices (18 floats), 2
> SkRects (8 floats) an SkPMColor4f (4 floats) and a flag (1 int) for a total
> of 124 bytes per quad that was stored in the op.
>
> The first pass at the rectangle consolidation switched to storing device and
> local quads as GrPerspQuads (32 floats), an SkPMColor4f (4 floats) and a flag
> (1 int) for a total of 148 bytes per quad. After landing, several memory
> regressions appeared in Chrome and our perf monitor.
>
> Several intertwined approaches are taken here. First, GrPerspQuad no longer
> caches 1/w, which makes a quad 12 floats instead of 16. Second, a specialized
> list type is defined that allows storing the x, y, and extra metadata together
> for quads, but keeps the w components separate. When the quad type isn't
> perspective, w is not stored at all since it is implicitly 1 and can be
> reconstituted at tessellation time. This brings the total per quad to either
> 84 or 116 bytes, depending on if the op list needs perspective information.
>
> Bug: chromium:915025
> Bug: chromium:917242
> Change-Id: If37ee122847b0c32604bb45dc2a1326b544f9cf6
> Reviewed-on: https://skia-review.googlesource.com/c/180644
> Commit-Queue: Michael Ludwig <michaelludwig@google.com>
> Reviewed-by: Robert Phillips <robertphillips@google.com>
TBR=robertphillips@google.com,csmartdalton@google.com,michaelludwig@google.com
Change-Id: I6067b6c0e103d08787626a0a8eff753a0f0c97b6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: chromium:915025, chromium:917242
Reviewed-on: https://skia-review.googlesource.com/c/181167
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
Diffstat (limited to 'gn')
-rw-r--r-- | gn/tests.gni | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/gn/tests.gni b/gn/tests.gni index 27a4448ff1..351efaee0b 100644 --- a/gn/tests.gni +++ b/gn/tests.gni @@ -101,7 +101,6 @@ tests_sources = [ "$_tests/GrOpListFlushTest.cpp", "$_tests/GrPipelineDynamicStateTest.cpp", "$_tests/GrPorterDuffTest.cpp", - "$_tests/GrQuadListTest.cpp", "$_tests/GrShapeTest.cpp", "$_tests/GrSKSLPrettyPrintTest.cpp", "$_tests/GrSurfaceTest.cpp", |