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

Issue 272153002: fix bugs found by computing flat clips in 800K skps (Closed)

Created:
6 years, 7 months ago by caryclark
Modified:
6 years, 6 months ago
Reviewers:
CC:
skia-review_googlegroups.com
Base URL:
https://skia.googlesource.com/skia.git@master
Visibility:
Public.

Description

Enabling the canvas bit to turn the clip stack into a flat replace exposed around 100 failures when testing the 800K skp set generated from the top 1M web sites. This fixes all but one of those failures. Major changes include: - Replace angle indices with angle pointers. This was motivated by the need to add angles later but not renumber existing angles. - Aggressive segment chase. When the winding is known on a segment, more aggressively passing that winding to adjacent segments allows fragmented data sets to succeed. - Line segments with ends nearly the same are treated as coincident first. - Transfer partial coincidence by observing that if segment A is partially coincident to B and C then B and C may be partially coincident. TBR=reed Committed: https://skia.googlesource.com/skia/+/dac1d17027dcaa5596885a9f333979418b35001c

Patch Set 1 #

Patch Set 2 : fix canceled coincidences aka skpwww_thaienews_blogspot_com_36 #

Patch Set 3 : fix partial coincidence third party aka skpwww_helha_be_109 #

Patch Set 4 : look for more paired coincidence aka skpwww_uniquefx_net_442 #

Patch Set 5 : when aligning ts to 0 and 1; align pts also aka skpwww_gruposejaumdivulgador_com_br_4 #

Patch Set 6 : fix tiny j hook cubics aka skpwww_educationalcraft_com_4 #

Patch Set 7 : treat small span with only endpoints as chasable aka skpwww_aceinfographics_com_106 #

Patch Set 8 : exclude small cancelations from angle loop aka skpwww_mortgagemarketguide_com_109 #

Patch Set 9 : eliminate concident points without breaking anything #

Patch Set 10 : align triplet point pairs aka skpwww_tcmevents_org_13 #

Patch Set 11 : rewrite angles as chunk aka skpwww_kitcheninspirations_wordpress_com_66 #

Patch Set 12 : cooksnaps_com_32 work in progress #

Patch Set 13 : don't copy winding from unorderables (all tests passing) #

Patch Set 14 : fix trybot compile bug; clean up comments, deleted code #

Patch Set 15 : move test function so it's visible to all unit tests #

Patch Set 16 : fix unbuntu compile #

Patch Set 17 : fix maybe-uninitialized error in unbuntu #

Unified diffs Side-by-side diffs Delta from patch set Stats (+7096 lines, -812 lines) Patch
M src/pathops/SkAddIntersections.cpp View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -0 lines 0 comments Download
M src/pathops/SkDCubicIntersection.cpp View 1 2 3 4 5 6 7 8 9 10 4 chunks +36 lines, -5 lines 0 comments Download
M src/pathops/SkDCubicLineIntersection.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M src/pathops/SkDLineIntersection.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +48 lines, -11 lines 0 comments Download
M src/pathops/SkDQuadIntersection.cpp View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M src/pathops/SkDQuadLineIntersection.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +3 lines, -3 lines 0 comments Download
M src/pathops/SkIntersectionHelper.h View 1 2 3 4 1 chunk +5 lines, -0 lines 0 comments Download
M src/pathops/SkIntersections.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 7 chunks +21 lines, -12 lines 0 comments Download
M src/pathops/SkIntersections.cpp View 1 2 3 4 5 6 7 8 9 10 3 chunks +11 lines, -0 lines 0 comments Download
M src/pathops/SkOpAngle.h View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +24 lines, -6 lines 0 comments Download
M src/pathops/SkOpAngle.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +38 lines, -11 lines 0 comments Download
M src/pathops/SkOpContour.h View 1 2 3 4 5 6 7 8 9 10 8 chunks +42 lines, -2 lines 0 comments Download
M src/pathops/SkOpContour.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 10 chunks +358 lines, -17 lines 0 comments Download
M src/pathops/SkOpSegment.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 13 chunks +51 lines, -30 lines 0 comments Download
M src/pathops/SkOpSegment.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 64 chunks +803 lines, -293 lines 0 comments Download
M src/pathops/SkOpSpan.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +7 lines, -3 lines 0 comments Download
M src/pathops/SkPathOpsCommon.h View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -1 line 0 comments Download
M src/pathops/SkPathOpsCommon.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 9 chunks +72 lines, -38 lines 0 comments Download
M src/pathops/SkPathOpsDebug.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +26 lines, -10 lines 0 comments Download
M src/pathops/SkPathOpsDebug.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 8 chunks +24 lines, -87 lines 0 comments Download
M src/pathops/SkPathOpsLine.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -1 line 0 comments Download
M src/pathops/SkPathOpsLine.cpp View 1 2 3 4 5 6 7 8 9 10 2 chunks +4 lines, -1 line 0 comments Download
M src/pathops/SkPathOpsOp.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +24 lines, -10 lines 0 comments Download
M src/pathops/SkPathOpsPoint.h View 1 2 3 4 5 6 7 8 9 1 chunk +0 lines, -2 lines 0 comments Download
M src/pathops/SkPathOpsSimplify.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +16 lines, -12 lines 0 comments Download
M src/pathops/SkPathOpsTriangle.cpp View 1 2 3 4 5 6 1 chunk +1 line, -1 line 0 comments Download
M src/pathops/SkPathOpsTypes.h View 1 2 3 4 5 6 7 8 9 2 chunks +11 lines, -2 lines 0 comments Download
M tests/PathOpsAngleIdeas.cpp View 1 2 3 4 5 6 7 8 9 10 2 chunks +4 lines, -2 lines 0 comments Download
M tests/PathOpsAngleTest.cpp View 1 2 3 4 5 6 7 8 9 10 2 chunks +4 lines, -4 lines 0 comments Download
M tests/PathOpsCubicIntersectionTest.cpp View 1 2 3 4 5 1 chunk +3 lines, -0 lines 0 comments Download
M tests/PathOpsDebug.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 chunks +240 lines, -64 lines 0 comments Download
M tests/PathOpsExtendedTest.cpp View 1 2 3 4 5 6 7 8 9 10 4 chunks +10 lines, -1 line 0 comments Download
M tests/PathOpsLineIntersectionTest.cpp View 1 2 3 4 5 6 7 8 9 10 2 chunks +8 lines, -2 lines 0 comments Download
M tests/PathOpsOpTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +114 lines, -0 lines 0 comments Download
M tests/PathOpsSimplifyTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +18 lines, -1 line 0 comments Download
M tests/PathOpsSkpClipTest.cpp View 1 2 3 4 5 6 7 8 9 10 8 chunks +451 lines, -97 lines 0 comments Download
M tests/PathOpsSkpTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 19 chunks +627 lines, -80 lines 0 comments Download
M tools/pathops_sorter.htm View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +58 lines, -1 line 0 comments Download
A tools/pathops_visualizer.htm View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +3925 lines, -0 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
caryclark
The CQ bit was checked by caryclark@google.com
6 years, 6 months ago (2014-06-16 20:06:22 UTC) #1
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://skia-tree-status.appspot.com/cq/caryclark@google.com/272153002/300001
6 years, 6 months ago (2014-06-16 20:07:11 UTC) #2
caryclark
The CQ bit was checked by caryclark@google.com
6 years, 6 months ago (2014-06-17 11:59:30 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://skia-tree-status.appspot.com/cq/caryclark@google.com/272153002/320001
6 years, 6 months ago (2014-06-17 12:00:04 UTC) #4
commit-bot: I haz the power
6 years, 6 months ago (2014-06-17 12:15:48 UTC) #5
Message was sent while issue was closed.
Change committed as dac1d17027dcaa5596885a9f333979418b35001c

Powered by Google App Engine
This is Rietveld 408576698