Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(9)

Issue 23926019: Stateful PathRenderer implementation (Closed)

Created:
7 years, 3 months ago by robertphillips
Modified:
6 years, 10 months ago
Reviewers:
jvanverth1, bsalomon
CC:
skia-review_googlegroups.com
Visibility:
Public.

Description

Moving the oval and rectorii special cases out of the main rendering logic (and into a path renderer) seems to require a more stateful path renderer API. Here is one possible variant of that.

Patch Set 1 #

Patch Set 2 : Cleaned up #

Patch Set 3 : cleanup #2 #

Patch Set 4 : cleanup #3 #

Patch Set 5 : GrPathRenderer now refs path object #

Patch Set 6 : clean up #

Total comments: 2

Patch Set 7 : Clear out the path object in the path renderer #

Patch Set 8 : Cleanup #

Patch Set 9 : Better protection for fPath member & added AutoClearPath #

Patch Set 10 : updated to ToT #

Patch Set 11 : Updated to ToT (12775) #

Patch Set 12 : Fixed compile error at ToT #

Patch Set 13 : Updated to ToT (13203) #

Total comments: 2

Patch Set 14 : add assert & patch for missing AutoPathClear #

Unified diffs Side-by-side diffs Delta from patch set Stats (+229 lines, -201 lines) Patch
M include/gpu/GrContext.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +2 lines, -1 line 0 comments Download
M include/gpu/GrPathRendererChain.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -0 lines 0 comments Download
M src/gpu/GrAAConvexPathRenderer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +5 lines, -4 lines 0 comments Download
M src/gpu/GrAAConvexPathRenderer.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +5 lines, -7 lines 0 comments Download
M src/gpu/GrAAHairLinePathRenderer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -4 lines 0 comments Download
M src/gpu/GrAAHairLinePathRenderer.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 6 chunks +6 lines, -8 lines 0 comments Download
M src/gpu/GrClipMaskManager.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +8 lines, -4 lines 0 comments Download
M src/gpu/GrClipMaskManager.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 12 chunks +64 lines, -59 lines 0 comments Download
M src/gpu/GrContext.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +12 lines, -6 lines 0 comments Download
M src/gpu/GrDefaultPathRenderer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +5 lines, -10 lines 0 comments Download
M src/gpu/GrDefaultPathRenderer.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 9 chunks +15 lines, -23 lines 0 comments Download
M src/gpu/GrPathRenderer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 6 chunks +76 lines, -35 lines 0 comments Download
M src/gpu/GrPathRendererChain.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +5 lines, -4 lines 0 comments Download
M src/gpu/GrSoftwarePathRenderer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -6 lines 0 comments Download
M src/gpu/GrSoftwarePathRenderer.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +6 lines, -9 lines 0 comments Download
M src/gpu/GrStencilAndCoverPathRenderer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +4 lines, -8 lines 0 comments Download
M src/gpu/GrStencilAndCoverPathRenderer.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +9 lines, -13 lines 0 comments Download

Messages

Total messages: 14 (0 generated)
robertphillips
The only real excitement is in GrPathRenderer and GrClipMaskManager.
7 years, 3 months ago (2013-09-17 15:09:31 UTC) #1
robertphillips
Much cleaner. Performance TBD. Note that, if this proves acceptable, I will need to make ...
7 years, 3 months ago (2013-09-17 18:05:16 UTC) #2
bsalomon
Do you think there's a way to make the unregistration of the path automatic? https://codereview.chromium.org/23926019/diff/13001/src/gpu/GrPathRenderer.h ...
7 years, 3 months ago (2013-09-17 18:16:48 UTC) #3
robertphillips
If you look at patch 6 vs. patch 8, GrPathRenderer.h and GrPathRendererChain.cpp, you can see ...
7 years, 3 months ago (2013-09-17 18:42:17 UTC) #4
bsalomon
On 2013/09/17 18:42:17, robertphillips wrote: > If you look at patch 6 vs. patch 8, ...
7 years, 3 months ago (2013-09-17 18:44:48 UTC) #5
robertphillips
Here is a version with a stack-based clearing system (and better protection of the GrPathRenderer's ...
7 years, 3 months ago (2013-09-17 19:51:16 UTC) #6
bsalomon
On 2013/09/17 19:51:16, robertphillips wrote: > Here is a version with a stack-based clearing system ...
7 years, 3 months ago (2013-09-17 20:40:45 UTC) #7
robertphillips
Looks like we do have some regressions (old on left; new on right): maskcolor GPU ...
7 years, 3 months ago (2013-09-18 20:05:14 UTC) #8
robertphillips
As of r13229 things are a bit better (old on left; new on right): maskopaque ...
6 years, 10 months ago (2014-01-29 18:40:32 UTC) #9
bsalomon
Seems like those results code very be noise. lgtm w/ q about assert. Oddly, the ...
6 years, 10 months ago (2014-01-29 19:33:52 UTC) #10
robertphillips
The assert is a good idea. I think the regressions are still real. Here are ...
6 years, 10 months ago (2014-01-29 20:09:09 UTC) #11
robertphillips
r13379 (Move fLastMoveToIndex from SkPath to SkPathRef - https://codereview.chromium.org/146913002/) has landed unblocking this CL. Please ...
6 years, 10 months ago (2014-02-10 15:22:32 UTC) #12
robertphillips
committed as r13384
6 years, 10 months ago (2014-02-10 16:46:55 UTC) #13
robertphillips
6 years, 10 months ago (2014-02-11 16:31:35 UTC) #14
Message was sent while issue was closed.
This CL was reverted in r13409 (Revert of r13384 (Stateful PathRenderer
implementation) - https://codereview.chromium.org/142543007/) b.c. in some
circumstances the path renderers need to be reentrant.

Powered by Google App Engine
This is Rietveld 408576698