Issue 12258 in skia: Use the tessellation atlas in kCoverage mode

60 views
Skip to first unread message

csmar… via monorail

unread,
Jul 23, 2021, 2:20:13 AM7/23/21
to bu...@skia.org
Status: Accepted
Owner: csmart...@google.com
Area: GPU
Priority: Medium
Type: Defect

New issue 12258 by csmart...@google.com: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258

SW mask caching blows out memory. Even if it's faster at redrawing static content, the memory cost isn't worth it. The user can always pre-rasterize and cache their own content if that's what they want.

--
You received this message because:
1. The project was configured to send all issue notifications to this address

You may adjust your notification preferences at:
https://bugs.chromium.org/hosting/settings

Git Watcher via monorail

unread,
Jul 23, 2021, 7:03:13 PM7/23/21
to bu...@skia.org

Comment #1 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c1

The following revision refers to this bug:
https://skia.googlesource.com/skia/+/c3176002bc374f9ffececc83d08728f8b806670a

commit c3176002bc374f9ffececc83d08728f8b806670a
Author: Chris Dalton <csmart...@google.com>
Date: Fri Jul 23 21:33:09 2021

Lift the tessellation atlas into its own path renderer

Creates a new path renderer, GrAtlasPathRenderer, that handles all the
atlasing. Managing the atlas in its own path renderer gives us more
control over when atlasing happens in the chain, will allow us to more
easily use the atlas in kCoverage mode, and makes the clipping code
cleaner.

Bug: skia:12258
Change-Id: Ie0b669974936c23895c8ab794e2d97206ed140f8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/431896
Commit-Queue: Chris Dalton <csmart...@google.com>
Reviewed-by: Michael Ludwig <michae...@google.com>

[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/gm/widebuttcaps.cpp
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/gn/gpu.gni
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/include/private/GrTypesPriv.h
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/infra/bots/gen_tasks_logic/dm_flags.go
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/infra/bots/tasks.json
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/GrClipStack.cpp
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/GrDrawingManager.cpp
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/GrDrawingManager.h
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/GrPathRendererChain.cpp
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/GrPathRendererChain.h
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/GrProcessor.h
[rename] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/effects/GrModulateAtlasCoverageEffect.cpp
[rename] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/effects/GrModulateAtlasCoverageEffect.h
[rename] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/ops/GrAtlasInstancedHelper.cpp
[rename] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/ops/GrAtlasInstancedHelper.h
[add] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/ops/GrAtlasPathRenderer.cpp
[add] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/ops/GrAtlasPathRenderer.h
[rename] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/ops/GrDrawAtlasPathOp.cpp
[rename] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/ops/GrDrawAtlasPathOp.h
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/tessellate/GrTessellationPathRenderer.cpp
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/src/gpu/tessellate/GrTessellationPathRenderer.h
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/tools/flags/CommonFlagsGpu.cpp
[modify] https://crrev.com/c3176002bc374f9ffececc83d08728f8b806670a/tools/viewer/Viewer.cpp

Git Watcher via monorail

unread,
Jul 26, 2021, 5:44:06 PM7/26/21
to bu...@skia.org

Comment #2 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c2


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/40c906f58e3ed53b445675ac16844328bfdcb5a5

commit 40c906f58e3ed53b445675ac16844328bfdcb5a5
Author: Chris Dalton <csmart...@google.com>
Date: Mon Jul 26 17:27:05 2021

Don't store a GrVertexWriter pointer in GrMiddleOutPolygonTriangulator

GrVertexWriter is itself a pointer, so this is a double reference.
It's ~20% faster on the micro benchmark to store this as a literal
GrVertexWriter. The motivation for this CL is that we need to optimize
the CPU-side processing for tessellation in order to place the
tessellation atlas above the cached triangulating path renderer in the
chain.

Bug: skia:12258
Change-Id: Ie10036d2fe618e848cdf67b9c23038fb9edf4c3b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433077
Reviewed-by: Brian Osman <brian...@google.com>
Commit-Queue: Chris Dalton <csmart...@google.com>

[modify] https://crrev.com/40c906f58e3ed53b445675ac16844328bfdcb5a5/bench/TessellateBench.cpp
[modify] https://crrev.com/40c906f58e3ed53b445675ac16844328bfdcb5a5/src/gpu/tessellate/GrMiddleOutPolygonTriangulator.h
[modify] https://crrev.com/40c906f58e3ed53b445675ac16844328bfdcb5a5/src/gpu/tessellate/GrPathCurveTessellator.cpp
[modify] https://crrev.com/40c906f58e3ed53b445675ac16844328bfdcb5a5/src/gpu/tessellate/GrPathStencilCoverOp.cpp

Git Watcher via monorail

unread,
Jul 27, 2021, 4:32:04 PM7/27/21
to bu...@skia.org

Comment #3 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c3


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/6966981ae0ebf7ad2ddf910f299539cd512ec596

commit 6966981ae0ebf7ad2ddf910f299539cd512ec596
Author: Chris Dalton <csmart...@google.com>
Date: Tue Jul 27 16:00:12 2021

Add a 'pathMatrix' to GrPathTessellator::prepare

The pathMatrix is applied on the CPU while the geometry is being
written out. It is a tool for batching, and is applied in addition to
the shader's on-GPU matrix. This CL also updates GrPathStencilCoverOp
do do all its path transformations with pathMatrix on the CPU side.
The next step will be for atlases to use the pathMatrix instead of
creating uber paths.

Bug: skia:12258
Change-Id: Ib924dfb06a2c0eed8f9045adc6ae9eefad510082
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433236
Reviewed-by: Brian Salomon <bsal...@google.com>
Commit-Queue: Chris Dalton <csmart...@google.com>

[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/bench/TessellateBench.cpp
[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/gn/gpu.gni
[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/samplecode/SamplePathTessellators.cpp
[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/src/gpu/tessellate/GrMiddleOutPolygonTriangulator.h
[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/src/gpu/tessellate/GrPathCurveTessellator.cpp
[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/src/gpu/tessellate/GrPathCurveTessellator.h
[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/src/gpu/tessellate/GrPathInnerTriangulateOp.cpp
[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/src/gpu/tessellate/GrPathStencilCoverOp.cpp
[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/src/gpu/tessellate/GrPathTessellateOp.cpp
[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/src/gpu/tessellate/GrPathTessellator.h
[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/src/gpu/tessellate/GrPathWedgeTessellator.cpp
[modify] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/src/gpu/tessellate/GrPathWedgeTessellator.h
[add] https://crrev.com/6966981ae0ebf7ad2ddf910f299539cd512ec596/src/gpu/tessellate/GrPathXform.h

Git Watcher via monorail

unread,
Jul 27, 2021, 4:44:07 PM7/27/21
to bu...@skia.org

Comment #4 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c4


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/66deeb27162c100351b002372f6a0ff96d0e73f6

commit 66deeb27162c100351b002372f6a0ff96d0e73f6
Author: Chris Dalton <csmart...@google.com>
Date: Fri Jul 23 19:57:03 2021

Bump the max atlas path size to 256 for non-MSAA

When we don't have MSAA to fall back on (e.g., for clipping), we
benefit from allowing larger paths in the atlas.

Bug: skia:12258
Change-Id: I6decb7c5dd092b5e350e9f5701e05df5680a52f0
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/432076

Commit-Queue: Chris Dalton <csmart...@google.com>
Reviewed-by: Michael Ludwig <michae...@google.com>

Git Watcher via monorail

unread,
Jul 27, 2021, 4:51:04 PM7/27/21
to bu...@skia.org

Comment #5 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c5


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/e909e1e985cf6a8a86679268cfd9892e237f65fa

commit e909e1e985cf6a8a86679268cfd9892e237f65fa
Author: Chris Dalton <csmart...@google.com>
Date: Tue Jul 27 19:23:18 2021

Remove the viewMatrix uniform from tessellation's BoundingBoxShader

This can be a instance attrib instead, which allows better batching
now that we transform the stencil geometry on CPU. We still keep color
as a uniform for this CL, since that can be faster on some devices
than varying color. In the future this can be configurable if we need
different colors in order to batch.

Bug: skia:12258
Change-Id: Ib8a4384f44586ffc80e72ca1cea8e9e49c778cdf
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433556

Reviewed-by: Brian Salomon <bsal...@google.com>
Commit-Queue: Chris Dalton <csmart...@google.com>

Git Watcher via monorail

unread,
Jul 28, 2021, 12:57:08 PM7/28/21
to bu...@skia.org

Comment #6 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c6


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/17eaf6216046fba422081c8bb4d5580008ab283e

commit 17eaf6216046fba422081c8bb4d5580008ab283e
Author: Chris Dalton <csmart...@google.com>
Date: Wed Jul 28 15:43:52 2021

Update GrPathTessellator::prepare() to take a list of paths

This allows us to batch multiple paths together in a single
tessellation. The first user will be the atlas, but the convex
renderer is also a good candidate.

Bug: skia:12258
Change-Id: I4d415d32bbf423cfd9b7ddf2543c21371936da90
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433776
Commit-Queue: Chris Dalton <csmart...@google.com>
Reviewed-by: Brian Salomon <bsal...@google.com>

[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/bench/TessellateBench.cpp
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/samplecode/SamplePathTessellators.cpp
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/src/gpu/tessellate/GrCullTest.h
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/src/gpu/tessellate/GrPathCurveTessellator.cpp
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/src/gpu/tessellate/GrPathCurveTessellator.h
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/src/gpu/tessellate/GrPathInnerTriangulateOp.cpp
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/src/gpu/tessellate/GrPathStencilCoverOp.cpp
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/src/gpu/tessellate/GrPathTessellateOp.cpp
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/src/gpu/tessellate/GrPathTessellator.h
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/src/gpu/tessellate/GrPathWedgeTessellator.cpp
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/src/gpu/tessellate/GrPathWedgeTessellator.h
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/src/gpu/tessellate/GrPathXform.h
[modify] https://crrev.com/17eaf6216046fba422081c8bb4d5580008ab283e/src/gpu/tessellate/GrVectorXform.h

Git Watcher via monorail

unread,
Jul 28, 2021, 4:36:04 PM7/28/21
to bu...@skia.org

Comment #7 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c7


The following revision refers to this bug:
https://chromium.googlesource.com/chromium/src/+/964291803b487254761118b6d6debe805c070edc

commit 964291803b487254761118b6d6debe805c070edc
Author: Chris Dalton <csmart...@google.com>
Date: Wed Jul 28 20:35:10 2021

Disable atlas path renderer for baselines pending skia roll

Bug: skia:12258
Change-Id: Iebe8d6020d980ae7d2c5c563c0aacf28eed585d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3059378
Commit-Queue: Chris Dalton <csmart...@chromium.org>
Commit-Queue: Brian Salomon <bsal...@google.com>
Auto-Submit: Chris Dalton <csmart...@chromium.org>
Reviewed-by: Brian Salomon <bsal...@google.com>
Cr-Commit-Position: refs/heads/master@{#906359}

[modify] https://crrev.com/964291803b487254761118b6d6debe805c070edc/skia/config/SkUserConfig.h

Git Watcher via monorail

unread,
Jul 28, 2021, 5:37:08 PM7/28/21
to bu...@skia.org

Comment #8 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c8


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/8a1bbaa2108872421994a693fb96f827edee2573

commit 8a1bbaa2108872421994a693fb96f827edee2573
Author: Chris Dalton <csmart...@google.com>
Date: Wed Jul 28 20:43:07 2021

Remove uber paths from the tessellation atlas

Implements the atlas properly with draw lists instead of taking a
shortcut with uber paths. This speeds up the chalkboard by ~20% on my
Windows laptop (10.9 -> 8.6ms).

Bug: skia:12258
Bug: chromium:928984
Change-Id: Icabccd9a797f5802a11eb087fc97c23edd895679
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433876
Commit-Queue: Chris Dalton <csmart...@google.com>
Reviewed-by: Michael Ludwig <michae...@google.com>

[modify] https://crrev.com/8a1bbaa2108872421994a693fb96f827edee2573/include/private/GrTypesPriv.h
[modify] https://crrev.com/8a1bbaa2108872421994a693fb96f827edee2573/src/gpu/tessellate/GrAtlasRenderTask.cpp
[modify] https://crrev.com/8a1bbaa2108872421994a693fb96f827edee2573/src/gpu/tessellate/GrAtlasRenderTask.h
[modify] https://crrev.com/8a1bbaa2108872421994a693fb96f827edee2573/src/gpu/tessellate/GrPathStencilCoverOp.cpp
[modify] https://crrev.com/8a1bbaa2108872421994a693fb96f827edee2573/src/gpu/tessellate/GrPathStencilCoverOp.h
[modify] https://crrev.com/8a1bbaa2108872421994a693fb96f827edee2573/src/gpu/tessellate/GrPathTessellator.h
[modify] https://crrev.com/8a1bbaa2108872421994a693fb96f827edee2573/src/gpu/tessellate/GrTessellationPathRenderer.cpp

Git Watcher via monorail

unread,
Jul 28, 2021, 5:49:04 PM7/28/21
to bu...@skia.org

Comment #9 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c9


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/cdabdce30144e0bcd68527f1868af289f62d02a1

commit cdabdce30144e0bcd68527f1868af289f62d02a1
Author: Chris Dalton <csmart...@google.com>
Date: Wed Jul 28 07:52:01 2021

Place the atlas path renderer above triangulation in the chain

This will cause some regressions on static, cached content, but the
hope is that the overall reliability of the atlas approach is more
desirable in the end.

Bug: skia:12258
Change-Id: I6db29342a70af6ebef61ebe91d406ed7692467f8
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433916
Commit-Queue: Chris Dalton <csmart...@google.com>
Reviewed-by: Brian Salomon <bsal...@google.com>
Reviewed-by: Michael Ludwig <michae...@google.com>

[modify] https://crrev.com/cdabdce30144e0bcd68527f1868af289f62d02a1/src/gpu/GrPathRendererChain.cpp

Git Watcher via monorail

unread,
Jul 28, 2021, 9:30:08 PM7/28/21
to bu...@skia.org

Comment #10 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c10


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/8cd8e27c2ceb886ec7fb1e91afcd641cf7e7d175

commit 8cd8e27c2ceb886ec7fb1e91afcd641cf7e7d175
Author: Chris Dalton <csmart...@google.com>
Date: Wed Jul 28 20:59:31 2021

Enable the atlas path renderer for GrAAType::kCoverage

This will definitely cause regressions on a whole slew of benchmarks
that were carelessly regurgitating cached bitmaps until the system
memory was blown. But the well defined memory limits of the atlas and
resilience to animation are worth it. If a client still wants this
type of caching they can always render their own bitmaps using Skia
and cache them.

Bug: chromium:928984
Bug: skia:12258
Change-Id: I277f50cb9192f1cf5fe8d4b7f629abe72432150a
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433917

Commit-Queue: Chris Dalton <csmart...@google.com>
Reviewed-by: Brian Salomon <bsal...@google.com>

Git Watcher via monorail

unread,
Jul 29, 2021, 9:26:07 AM7/29/21
to bu...@skia.org

Comment #11 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c11


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/d665999b0d77ccf745e970288e94d25f709d64ef

commit d665999b0d77ccf745e970288e94d25f709d64ef
Author: Chris Dalton <csmart...@google.com>
Date: Wed Jul 28 22:03:32 2021

Place GrAtlasPathRenderer above GrSmallPathRenderer in the chain

Tessellation is extremely fast for large batches of small paths. That,
combined with its ability to render without caching and the atlas's
well-defined memory limits, make it desirable over
GrSmallPathRenderer's CPU-generated bitmap cache. We may want to
reconsider use cases for distance fields though, and those could be
prioritized above the atlas.

Bug: skia:12258
Change-Id: I7b8218eb02f38b3b0c1462b181b9373f5c84cdaa
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/434199
Reviewed-by: Jim Van Verth <jvan...@google.com>

Reviewed-by: Brian Salomon <bsal...@google.com>
Commit-Queue: Chris Dalton <csmart...@google.com>

Git Watcher via monorail

unread,
Jul 31, 2021, 2:11:07 PM7/31/21
to bu...@skia.org

Comment #12 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c12


The following revision refers to this bug:
https://chromium.googlesource.com/chromium/src/+/a1179182c69137e0e9adbb91970bf124f31c2476

commit a1179182c69137e0e9adbb91970bf124f31c2476
Author: Chris Dalton <csmart...@google.com>
Date: Sat Jul 31 18:10:03 2021

Enable the tessellation atlas for general path rendering

This is a drastic change to how non-MSAA paths are rendered in Chrome.
After this CL, and as long as multisample support is enabled, non-convex
paths with 256^2 pixels or fewer will be rendered by tessellation in a
2048x2048 multisampled alpha8 atlas. This will give tremendous
improvements in path rendering times and overall CPU usge. This change
will also cause Skia to quit caching path bitmaps in many cases, so we
can expect to see some memory savings. Dropping the path cache is not
expected to impact performance much because the tiles themselves are
their own bitmap cache.


Bug: chromium:928984
Bug: skia:12258
Change-Id: I1a4e2dba65d2db4a74f766aa944e4a64782df271
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3062518
Auto-Submit: Chris Dalton <csmart...@chromium.org>
Commit-Queue: Chris Dalton <csmart...@chromium.org>

Reviewed-by: Brian Salomon <bsal...@google.com>
Reviewed-by: Michael Ludwig <michae...@google.com>
Reviewed-by: Justin Novosad <ju...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#907388}

[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/content/test/data/forms/form_controls_browsertest_checkbox_android.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/content/test/data/forms/form_controls_browsertest_multi_select_android.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/content/test/data/forms/form_controls_browsertest_select_android.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/skia/config/SkUserConfig.h
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/fuchsia/fast/css/focus-ring-multiline-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-links-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-not-propagated-by-out-of-flow-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-simple-underlines-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/fuchsia/fast/replaced/selection-rect-transform-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/fuchsia/paint/invalidation/outline/focus-layers-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/fuchsia/tables/mozilla/bugs/bug2479-3-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png
[add] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[add] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[modify] https://crrev.com/a1179182c69137e0e9adbb91970bf124f31c2476/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png

Git Watcher via monorail

unread,
Aug 2, 2021, 8:24:06 AM8/2/21
to bu...@skia.org

Comment #13 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c13


The following revision refers to this bug:
https://chromium.googlesource.com/chromium/src/+/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2

commit 0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2
Author: Matthias Körber <koe...@google.com>
Date: Mon Aug 02 12:23:38 2021

Revert "Enable the tessellation atlas for general path rendering"

This reverts commit a1179182c69137e0e9adbb91970bf124f31c2476.

Reason for revert:

webgl_conformance_gles_passthrough_tests on Android device Pixel 4 failed. This CL is suspected to be the culprit.

https://bugs.chromium.org/p/chromium/issues/detail?id=1235232#c3

Original change's description:

> Enable the tessellation atlas for general path rendering
>
> This is a drastic change to how non-MSAA paths are rendered in Chrome.
> After this CL, and as long as multisample support is enabled, non-convex
> paths with 256^2 pixels or fewer will be rendered by tessellation in a
> 2048x2048 multisampled alpha8 atlas. This will give tremendous
> improvements in path rendering times and overall CPU usge. This change
> will also cause Skia to quit caching path bitmaps in many cases, so we
> can expect to see some memory savings. Dropping the path cache is not
> expected to impact performance much because the tiles themselves are
> their own bitmap cache.
>
> Bug: chromium:928984
> Bug: skia:12258
> Change-Id: I1a4e2dba65d2db4a74f766aa944e4a64782df271
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3062518
> Auto-Submit: Chris Dalton <csmart...@chromium.org>
> Commit-Queue: Chris Dalton <csmart...@chromium.org>
> Reviewed-by: Brian Salomon <bsal...@google.com>
> Reviewed-by: Michael Ludwig <michae...@google.com>
> Reviewed-by: Justin Novosad <ju...@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#907388}

Bug: chromium:928984
Bug: skia:12258
Change-Id: Ia31b52c278ac7b34a90e665fc7e864d513e254fd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3064607
Bot-Commit: Rubber Stamper <rubber-...@appspot.gserviceaccount.com>
Owners-Override: Matthias Körber <koe...@google.com>
Commit-Queue: Matthias Körber <koe...@google.com>
Auto-Submit: Matthias Körber <koe...@google.com>
Cr-Commit-Position: refs/heads/master@{#907512}

[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/content/test/data/forms/form_controls_browsertest_checkbox_android.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/content/test/data/forms/form_controls_browsertest_multi_select_android.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/content/test/data/forms/form_controls_browsertest_select_android.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/skia/config/SkUserConfig.h
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/fuchsia/fast/css/focus-ring-multiline-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-links-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-not-propagated-by-out-of-flow-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-simple-underlines-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/fuchsia/fast/replaced/selection-rect-transform-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/fuchsia/paint/invalidation/outline/focus-layers-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/fuchsia/tables/mozilla/bugs/bug2479-3-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png
[delete] https://crrev.com/917594a9b99a4db770974f58ffe0d5d0e1f0073d/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[delete] https://crrev.com/917594a9b99a4db770974f58ffe0d5d0e1f0073d/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[modify] https://crrev.com/0ac42a48dc366ef233e4e2f4609a5b0dcc5905f2/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png

k… via monorail

unread,
Aug 2, 2021, 1:48:42 PM8/2/21
to bu...@skia.org
Updates:
Cc: k...@chromium.org bsh...@google.com

Comment #14 on issue 12258 by k...@chromium.org: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c14

It looks like this was causing persistent assertion failures in one portion of the WebGL 2.0 test suite. Here's one failing run, shard and log excerpt:

https://ci.chromium.org/ui/p/chromium/builders/ci/Android%20FYI%20Release%20(Pixel%204)/4978/overview
https://chromium-swarm.appspot.com/task?id=551fb121afa57d10


Operating system: Android
4.14.180 google/flame/flame:11/RP1A.201105.002/6869500:userdebug/dev-keys -ga2ee893d6df1-ab6846392 #1 SMP PREEMPT Fri Sep 18 09:00:21 UTC 2020 armv8l
CPU: arm
ARMv0
8 CPUs

GPU: UNKNOWN

Crash reason: SIGABRT
Crash address: 0x0
Process uptime: 0 seconds

Thread 17 (crashed)
0 libc.so + 0x383f4
r0 = 0x00000000 r1 = 0x00004e43 r2 = 0x00000006 r3 = 0xc3c21350
r4 = 0xc3c21364 r5 = 0xc3c21348 r6 = 0x00004e2d r7 = 0x0000016b
r8 = 0xc3c21350 r9 = 0xc3c21360 r10 = 0xc3c21380 r12 = 0x00004e43
fp = 0xc3c21370 sp = 0xc3c21320 lr = 0xf257e3e1 pc = 0xf257e3f4
Found by: given as instruction pointer in context
1 libchrome.so!__ThumbV7PILongThunk__ZN4absl13base_internal13LowLevelAlloc12DefaultArenaEv + 0x65dab5
sp = 0xc3c213e4 pc = 0xc30c1c68
Found by: stack scanning
2 libchrome.so!__ThumbV7PILongThunk__ZN4absl13base_internal13LowLevelAlloc12DefaultArenaEv + 0x65dab5
sp = 0xc3c213f0 pc = 0xc30c1c68
Found by: stack scanning
3 libchrome.so!__ThumbV7PILongThunk__ZN4absl13base_internal13LowLevelAlloc12DefaultArenaEv + 0x2e8bc9
sp = 0xc3c213f4 pc = 0xc2d4cd7c
Found by: stack scanning
4 libc.so + 0x8e122
sp = 0xc3c21400 pc = 0xf25d4124
Found by: stack scanning
5 libchrome.so!base::debug::BreakDebugger() [debugger_posix.cc : 293 + 0x3]
sp = 0xc3c21408 pc = 0xc037ba6b
Found by: stack scanning
6 libchrome.so!logging::LogMessage::~LogMessage() [logging.cc : 891 + 0x3]
r4 = 0x5c9ebf10 r5 = 0xc30c1c50 r7 = 0xc2d4cd7c sp = 0xc3c21420
pc = 0xc03007c1
Found by: call frame info
7 libchrome.so!SkAbort_FileLine(char const*, int, char const*, ...) [google_logging.cc : 38 + 0x5]
r4 = 0xc3c21970 r5 = 0xbd9df746 r6 = 0x000000b1 r7 = 0xc3c21a10
r8 = 0x5c609a10 r9 = 0xc34e2fe1 r10 = 0x00000001 fp = 0xc2d329bc
sp = 0xc3c21970 pc = 0xc0a81849
Found by: call frame info
8 libchrome.so!GrGLRenderTarget::completeStencilAttachment(GrAttachment*, bool) [GrGLRenderTarget.cpp : 177 + 0x11]
r4 = 0x5c6c2810 r5 = 0x00008d56 r6 = 0xbfebb447 r7 = 0x5c6c2d10
r8 = 0x5c609a10 r9 = 0xc34e2fe1 r10 = 0x00000001 fp = 0xc2d329bc
sp = 0xc3c21a38 pc = 0xc0c3961f
Found by: call frame info
9 libchrome.so!GrRenderTarget::attachStencilAttachment(sk_sp<GrAttachment>, bool) [GrRenderTarget.cpp : 57 + 0x3]
r4 = 0x5c65b330 r5 = 0xc3c21a90 r6 = 0x00000008 r7 = 0x5c62db50
r8 = 0xc3c21b08 r9 = 0x00000004 r10 = 0xf25d4124 fp = 0x5c785058
sp = 0xc3c21a68 pc = 0xc0b3a4e3
Found by: call frame info
10 libchrome.so!GrResourceProvider::attachStencilAttachment(GrRenderTarget*, bool) [GrResourceProvider.cpp : 579 + 0x3]
r4 = 0x5c65b330 r5 = 0x00000001 r6 = 0x00000008 r7 = 0x5c62db50
r8 = 0xc3c21b08 r9 = 0x00000004 r10 = 0xf25d4124 fp = 0x5c785058
sp = 0xc3c21a78 pc = 0xc0b4513b
Found by: call frame info
11 libchrome.so!GrOpsTask::onExecute(GrOpFlushState*) [GrOpsTask.cpp : 564 + 0x3]
r4 = 0x00000000 r5 = 0x5c87bc10 r6 = 0x5c65b330 r7 = 0x5c6d8010
r8 = 0xc3c21cd0 r9 = 0xf25d4124 r10 = 0x5c87c234 fp = 0x5c87c260
sp = 0xc3c21b78 pc = 0xc0b3321f
Found by: call frame info
12 libchrome.so!GrAtlasRenderTask::onExecute(GrOpFlushState*) [GrAtlasRenderTask.cpp : 175 + 0x3]
r4 = 0x00000002 r5 = 0x5c87bc10 r6 = 0xc3c21cd0 r7 = 0x00000020
r8 = 0x00000000 r9 = 0xc3c21d98 r10 = 0x5c6765b0 fp = 0xc3c21cd0
sp = 0xc3c21c38 pc = 0xc0ba50b5
Found by: call frame info
13 libchrome.so!GrDrawingManager::executeRenderTasks(GrOpFlushState*) [GrRenderTask.h : 38 + 0x7]
r4 = 0x00000002 r5 = 0x00000001 r6 = 0x5c9640f8 r7 = 0x00000020
r8 = 0x00000000 r9 = 0xc3c21d98 r10 = 0x5c6765b0 fp = 0xc3c21cd0
sp = 0xc3c21c60 pc = 0xc0b221b9
Found by: call frame info
14 libchrome.so!GrDrawingManager::flush(SkSpan<GrSurfaceProxy*>, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*) [GrDrawingManager.cpp : 234 + 0x5]
r4 = 0x00000001 r5 = 0x5c964118 r6 = 0xc3c21dc8 r7 = 0x00000000
r8 = 0x00000000 r9 = 0x5c6765b0 r10 = 0x00000001 fp = 0xf25d4124
sp = 0xc3c21c88 pc = 0xc0b21899
Found by: call frame info
15 libchrome.so!GrDrawingManager::flushSurfaces(SkSpan<GrSurfaceProxy*>, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*) [GrDrawingManager.cpp : 531 + 0x11]
r4 = 0x00000001 r5 = 0xc3c22d24 r6 = 0x5c6765b0 r7 = 0xbe48a364
r8 = 0x00000000 r9 = 0xc3c22d24 r10 = 0x5c6270e0 fp = 0x5c609a10
sp = 0xc3c22c68 pc = 0xc0b2270b
Found by: call frame info
16 libchrome.so!GrDirectContextPriv::flushSurfaces(SkSpan<GrSurfaceProxy*>, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*) [GrDirectContextPriv.cpp : 67 + 0xd]
r4 = 0xbe48a364 r5 = 0xc3c22d20 r6 = 0x00000000 r7 = 0x00000000
r8 = 0x5c7b39b8 r9 = 0xc3c22d24 r10 = 0x5c6270e0 fp = 0x00000001
sp = 0xc3c22cb8 pc = 0xc0b1c071
Found by: call frame info
17 libchrome.so!SkSurface_Gpu::onFlush(SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*) [GrDirectContextPriv.h : 98 + 0x3]
r4 = 0x5c6270d0 r5 = 0x00000000 r6 = 0xbe48a364 r7 = 0x5c92b120
r8 = 0x00000000 r9 = 0x00000000 r10 = 0x00000000 fp = 0x00000001
sp = 0xc3c22d18 pc = 0xc0bd2e15
Found by: call frame info
18 libchrome.so!gpu::raster::RasterDecoderImpl::FlushAndSubmitIfNecessary(SkSurface*, std::__1::vector<GrBackendSemaphore, std::__1::allocator<GrBackendSemaphore> >) [SkSurface.h : 983 + 0xb]
r4 = 0x5c75fe10 r5 = 0x00000000 r6 = 0x5c92b120 r7 = 0xc3c22dac
r8 = 0x00000000 r9 = 0x00000000 r10 = 0x00000000 fp = 0x00000001
sp = 0xc3c22d40 pc = 0xc142cfd3
Found by: call frame info
19 libchrome.so!gpu::raster::RasterDecoderImpl::DoEndRasterCHROMIUM() [raster_decoder.cc : 3614 + 0x3]
r4 = 0x00000000 r5 = 0x00000000 r6 = 0x00000000 r7 = 0x5c75fe10
r8 = 0x00000000 r9 = 0x00000000 r10 = 0x00000000 fp = 0x00000001
sp = 0xc3c22d80 pc = 0xc142fdcb
Found by: call frame info
20 libchrome.so!gpu::raster::RasterDecoderImpl::HandleEndRasterCHROMIUM(unsigned int, void const volatile*) [raster_decoder_autogen.h : 161 + 0x3]
r4 = 0x5c75fe10 r5 = 0xd399a19c r6 = 0xc2be58a0 r7 = 0x80000000
r8 = 0x00000017 r9 = 0x0000010b r10 = 0x00000018 fp = 0x00000001
sp = 0xc3c22de8 pc = 0xc14281d3
Found by: call frame info
21 libchrome.so!gpu::error::Error gpu::raster::RasterDecoderImpl::DoCommandsImpl<false>(unsigned int, void const volatile*, int, int*) [raster_decoder.cc : 1546 + 0x1]
r4 = 0x5c75fe10 r5 = 0xd399a19c r6 = 0xc2be58a0 r7 = 0x80000000
r8 = 0x00000017 r9 = 0x0000010b r10 = 0x00000018 fp = 0x00000001
sp = 0xc3c22df0 pc = 0xc142aa3d
Found by: call frame info
...

Please reach out on chrome-gpu-infra@ if you need any help reproducing this failure. General instructions for building and running these test suites locally are here:
https://chromium.googlesource.com/chromium/src/+/HEAD/docs/gpu/gpu_testing.md#Running-the-GPU-Tests-Locally

Git Watcher via monorail

unread,
Aug 2, 2021, 3:50:19 PM8/2/21
to bu...@skia.org

Comment #15 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c15


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/289750a231cd34579e9ef5b5989983d901b4ab74

commit 289750a231cd34579e9ef5b5989983d901b4ab74
Author: Chris Dalton <csmart...@google.com>
Date: Mon Aug 02 18:19:12 2021

Don't assert if glCheckFramebufferStatus fails

This can fail if the context has been reset or abandoned. Instead return
false so the caller print a warning message and skip rendering.

Bug: chromium:1235232
Bug: skia:12258
Bug: skia:5200
Change-Id: If78a914a25d09d48477e04317a34473632f76207
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/435816
Commit-Queue: Chris Dalton <csmart...@google.com>
Commit-Queue: Brian Salomon <bsal...@google.com>
Auto-Submit: Chris Dalton <csmart...@google.com>
Reviewed-by: Brian Salomon <bsal...@google.com>

[modify] https://crrev.com/289750a231cd34579e9ef5b5989983d901b4ab74/src/gpu/gl/GrGLRenderTarget.cpp

Git Watcher via monorail

unread,
Aug 3, 2021, 11:24:10 AM8/3/21
to bu...@skia.org

Comment #17 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c17


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/8ef386a123e1cdd5887e3a9c7eed48dd0824d292

commit 8ef386a123e1cdd5887e3a9c7eed48dd0824d292
Author: Brian Osman <brian...@google.com>
Date: Tue Aug 03 14:44:30 2021

Revert "Enable the atlas path renderer for GrAAType::kCoverage"

This reverts commit 8cd8e27c2ceb886ec7fb1e91afcd641cf7e7d175.

Reason for revert: b/195095846

Original change's description:

> Enable the atlas path renderer for GrAAType::kCoverage
>
> This will definitely cause regressions on a whole slew of benchmarks
> that were carelessly regurgitating cached bitmaps until the system
> memory was blown. But the well defined memory limits of the atlas and
> resilience to animation are worth it. If a client still wants this
> type of caching they can always render their own bitmaps using Skia
> and cache them.
>
> Bug: chromium:928984
> Bug: skia:12258
> Change-Id: I277f50cb9192f1cf5fe8d4b7f629abe72432150a
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433917
> Commit-Queue: Chris Dalton <csmart...@google.com>
> Reviewed-by: Brian Salomon <bsal...@google.com>

# Not skipping CQ checks because original CL landed > 1 day ago.


Bug: chromium:928984
Bug: skia:12258
Change-Id: Ia9ce9a3b392266a0defaa57752d44a71e533609e
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436076
Reviewed-by: Brian Osman <brian...@google.com>
Reviewed-by: Brian Salomon <bsal...@google.com>
Commit-Queue: Brian Osman <brian...@google.com>

[modify] https://crrev.com/8ef386a123e1cdd5887e3a9c7eed48dd0824d292/src/gpu/ops/GrAtlasPathRenderer.cpp

Git Watcher via monorail

unread,
Aug 4, 2021, 12:32:09 PM8/4/21
to bu...@skia.org

Comment #18 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c18


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/03b7935068b4a634f09c641562eac6ddf3768d61

commit 03b7935068b4a634f09c641562eac6ddf3768d61
Author: Chris Dalton <csmart...@google.com>
Date: Tue Aug 03 23:42:58 2021

Reland "Enable the atlas path renderer for GrAAType::kCoverage"

This is a reland of 8cd8e27c2ceb886ec7fb1e91afcd641cf7e7d175


Original change's description:
> Enable the atlas path renderer for GrAAType::kCoverage
>
> This will definitely cause regressions on a whole slew of benchmarks
> that were carelessly regurgitating cached bitmaps until the system
> memory was blown. But the well defined memory limits of the atlas and
> resilience to animation are worth it. If a client still wants this
> type of caching they can always render their own bitmaps using Skia
> and cache them.
>
> Bug: chromium:928984
> Bug: skia:12258
> Change-Id: I277f50cb9192f1cf5fe8d4b7f629abe72432150a
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433917
> Commit-Queue: Chris Dalton <csmart...@google.com>
> Reviewed-by: Brian Salomon <bsal...@google.com>

Bug: chromium:928984
Bug: skia:12258
Change-Id: I59d7b0684b7569d62939b6a8035fa6e92f4c02f3
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436356

Reviewed-by: Brian Salomon <bsal...@google.com>
Reviewed-by: Michael Ludwig <michae...@google.com>

Git Watcher via monorail

unread,
Aug 4, 2021, 7:34:08 PM8/4/21
to bu...@skia.org

Comment #19 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c19


The following revision refers to this bug:
https://chromium.googlesource.com/chromium/src/+/b81a139363e133c11c3234c1ee4ee9c9dae026f9

commit b81a139363e133c11c3234c1ee4ee9c9dae026f9
Author: Chris Dalton <csmart...@google.com>
Date: Wed Aug 04 23:33:53 2021

Reland "Enable the tessellation atlas for general path rendering"

This is a reland of a1179182c69137e0e9adbb91970bf124f31c2476

Original change's description:

> Enable the tessellation atlas for general path rendering
>
> This is a drastic change to how non-MSAA paths are rendered in Chrome.
> After this CL, and as long as multisample support is enabled, non-convex
> paths with 256^2 pixels or fewer will be rendered by tessellation in a
> 2048x2048 multisampled alpha8 atlas. This will give tremendous
> improvements in path rendering times and overall CPU usge. This change
> will also cause Skia to quit caching path bitmaps in many cases, so we
> can expect to see some memory savings. Dropping the path cache is not
> expected to impact performance much because the tiles themselves are
> their own bitmap cache.
>
> Bug: chromium:928984
> Bug: skia:12258
> Change-Id: I1a4e2dba65d2db4a74f766aa944e4a64782df271
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3062518
> Auto-Submit: Chris Dalton <csmart...@chromium.org>
> Commit-Queue: Chris Dalton <csmart...@chromium.org>
> Reviewed-by: Brian Salomon <bsal...@google.com>
> Reviewed-by: Michael Ludwig <michae...@google.com>
> Reviewed-by: Justin Novosad <ju...@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#907388}

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux-blink-rel;luci.chromium.try:linux-chromeos-compile-dbg;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel

Bug: chromium:928984
Bug: skia:12258
Bug: b/195095846
Change-Id: Id5868368be4cb53d53ae9d9039d49e30c019179a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3065900

Reviewed-by: Michael Ludwig <michae...@google.com>
Reviewed-by: Justin Novosad <ju...@chromium.org>
Commit-Queue: Chris Dalton <csmart...@chromium.org>
Cr-Commit-Position: refs/heads/master@{#908671}

[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/content/test/data/forms/form_controls_browsertest_checkbox_android.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/content/test/data/forms/form_controls_browsertest_multi_select_android.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/content/test/data/forms/form_controls_browsertest_select_android.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/skia/config/SkUserConfig.h
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/fuchsia/fast/css/focus-ring-multiline-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-links-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-not-propagated-by-out-of-flow-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/fuchsia/fast/css3-text/css3-text-decoration/text-decoration-style-inherit-simple-underlines-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/fuchsia/fast/replaced/selection-rect-transform-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/fuchsia/paint/invalidation/outline/focus-layers-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/fuchsia/tables/mozilla/bugs/bug2479-3-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/linux/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png
[add] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[add] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/mac-mac-arm11.0/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/mac/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-overflowing-polygon-focus-ring-expected.png
[modify] https://crrev.com/b81a139363e133c11c3234c1ee4ee9c9dae026f9/third_party/blink/web_tests/platform/win/virtual/gpu-rasterization/images/imagemap-polygon-focus-ring-expected.png

Git Watcher via monorail

unread,
Aug 5, 2021, 8:39:07 AM8/5/21
to bu...@skia.org

Comment #20 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c20


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/8e2d89465aca5fbede0b3088258eb1f8e0900a15

commit 8e2d89465aca5fbede0b3088258eb1f8e0900a15
Author: Derek Sollenberger <djso...@google.com>
Date: Thu Aug 05 12:38:51 2021

Revert "Reland "Enable the atlas path renderer for GrAAType::kCoverage""

This reverts commit 03b7935068b4a634f09c641562eac6ddf3768d61.

Reason for revert: suspected of breaking some Android CTS tests

Original change's description:

> Reland "Enable the atlas path renderer for GrAAType::kCoverage"
>
> This is a reland of 8cd8e27c2ceb886ec7fb1e91afcd641cf7e7d175
>
> Original change's description:

> > Enable the atlas path renderer for GrAAType::kCoverage
> >
> > This will definitely cause regressions on a whole slew of benchmarks
> > that were carelessly regurgitating cached bitmaps until the system
> > memory was blown. But the well defined memory limits of the atlas and
> > resilience to animation are worth it. If a client still wants this
> > type of caching they can always render their own bitmaps using Skia
> > and cache them.
> >
> > Bug: chromium:928984
> > Bug: skia:12258
> > Change-Id: I277f50cb9192f1cf5fe8d4b7f629abe72432150a
> > Reviewed-on: https://skia-review.googlesource.com/c/skia/+/433917
> > Commit-Queue: Chris Dalton <csmart...@google.com>
> > Reviewed-by: Brian Salomon <bsal...@google.com>
>
> Bug: chromium:928984
> Bug: skia:12258
> Change-Id: I59d7b0684b7569d62939b6a8035fa6e92f4c02f3
> Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436356

> Reviewed-by: Brian Salomon <bsal...@google.com>
> Reviewed-by: Michael Ludwig <michae...@google.com>
> Commit-Queue: Chris Dalton <csmart...@google.com>

TBR=bsal...@google.com,csmart...@google.com,michae...@google.com,skc...@skia-corp.google.com.iam.gserviceaccount.com

Change-Id: Id90ae67d90eff84f4085d2faa97976db5d9b73b7
No-Presubmit: true
No-Tree-Checks: true
No-Try: true

Bug: chromium:928984
Bug: skia:12258

Git Watcher via monorail

unread,
Aug 5, 2021, 11:59:09 AM8/5/21
to bu...@skia.org

Comment #21 on issue 12258 by Git Watcher: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c21


The following revision refers to this bug:
https://skia.googlesource.com/skia/+/7893d2d0862db4ac80f489d93f184e1ad5668ad1

commit 7893d2d0862db4ac80f489d93f184e1ad5668ad1
Author: Chris Dalton <csmart...@google.com>

Date: Tue Aug 03 23:42:58 2021

Reland "Reland "Enable the atlas path renderer for GrAAType::kCoverage""

This is a reland of 03b7935068b4a634f09c641562eac6ddf3768d61
Change-Id: I5259e86692e66f52795dde0da1a84c062c223b96
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/436860
Reviewed-by: Chris Dalton <csmart...@google.com>
Reviewed-by: Derek Sollenberger <djso...@google.com>
Commit-Queue: Chris Dalton <csmart...@google.com>

[modify] https://crrev.com/7893d2d0862db4ac80f489d93f184e1ad5668ad1/src/gpu/ops/GrAtlasPathRenderer.cpp

csmar… via monorail

unread,
Feb 9, 2022, 6:56:45 PM2/9/22
to bu...@skia.org
Updates:
Status: Verified

Comment #24 on issue 12258 by csmart...@google.com: Use the tessellation atlas in kCoverage mode
https://bugs.chromium.org/p/skia/issues/detail?id=12258#c24

(No comment was entered for this change.)
Reply all
Reply to author
Forward
0 new messages