diff options
author | Cary Clark <caryclark@skia.org> | 2018-08-30 12:58:23 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-08-30 17:36:05 +0000 |
commit | 5de5233463ddfae51965a116177b2ce62c883765 (patch) | |
tree | 3844f0a69043eafed7409ffce3070e92f37261b1 /experimental | |
parent | bc297beebb6e9dcce1be162c65c337a15824749a (diff) | |
download | skqp-5de5233463ddfae51965a116177b2ce62c883765.tar.gz |
remove scaling from pathops
PathOps added a cheat some time ago to reduce
fuzzer bugs by scaling down very large paths,
with the hope that it would make the math more
sane.
This had the side-effect of causing small edges
to disappear altogether if the bounds is large
enough.
Removing the scaling causes a single regression to
one fuzz-generated bug. That path succeeeded with
scale by eliminating the troublesome tiny contour.
Eliminating the scale may fix the CCPR-related bug
discovered by Flutter, or at least uncover the next
bug.
I would expect more fuzzer bugs to appear with
this change; paths with large and small values will
no longer have the small values removed.
R=csmartdalton@google.com,reed@google.com,bsalomon@google.com
Bug: skia:8290
Change-Id: I3bfdb101c568e9cfa324858685eac1f9c368c291
Reviewed-on: https://skia-review.googlesource.com/150465
Commit-Queue: Cary Clark <caryclark@skia.org>
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Reviewed-by: Brian Salomon <bsalomon@google.com>
Diffstat (limited to 'experimental')
-rw-r--r-- | experimental/pathkit/tests/PathOpsOp.json | 77 | ||||
-rw-r--r-- | experimental/pathkit/tests/PathOpsSimplify.json | 105 |
2 files changed, 143 insertions, 39 deletions
diff --git a/experimental/pathkit/tests/PathOpsOp.json b/experimental/pathkit/tests/PathOpsOp.json index 2f6358b541..02d02ab865 100644 --- a/experimental/pathkit/tests/PathOpsOp.json +++ b/experimental/pathkit/tests/PathOpsOp.json @@ -1,4 +1,40 @@ { +"crbug_526025": { + "p1": [[0, "0x43b40000", "0xcf000000"], + [4, "0x4e0d628f", "0xceffffff", "0x4e800003", "0xcec6b143", "0x4e800002", "0xce7ffffc"], + [4, "0x4e800002", "0xcde53aee", "0x4e0d6292", "0xc307820e", "0x44627d00", "0x437ffff2"], + [1, "0x444bf3bc", "0x4460537e"], + [1, "0x43553abd", "0x440f3cbd"], + [1, "0x42000000", "0x41800000"], + [1, "0x42c80000", "0x44000000"], + [1, "0x43553abd", "0x440f3cbd"], + [1, "0x43b40000", "0x44800000"], + [1, "0x43b40000", "0x45816000"]], + "fillType1": "kEvenOdd_FillType", + "p2": [[0, "0x42fe0000", "0x43a08000"], + [1, "0x45d5c000", "0x43870000"], + [1, "0xd0a00000", "0x4cbebc20"], + [1, "0x451f7000", "0x42800000"], + [1, "0x42fe0000", "0x43a08000"], + [5]], + "fillType2": "kWinding_FillType", + "op": "kUnion_SkPathOp", + "expectSuccess": "flaky", + "expectMatch": "flaky", + "succeeded": true, + "out": [[0, "0x4e800002", "0xce7ffffc"], + [4, "0x4e800003", "0xcec6b143", "0x4e0d628f", "0xceffffff", "0x43b40000", "0xcf000000"], + [1, "0x43b40000", "0x439425f8"], + [1, "0x43a0dee5", "0x43962d2c"], + [1, "0x42000000", "0x41800000"], + [1, "0x424da04e", "0x4297477e"], + [1, "0x43031abc", "0x43a0484d"], + [1, "0x4460205e", "0x428f689e"], + [1, "0x44627d00", "0x437ffff2"], + [4, "0x4e0d6292", "0xc307820e", "0x4e800002", "0xcde53aee", "0x4e800002", "0xce7ffffc"], + [5]], + "fillTypeOut": "kEvenOdd_FillType" +}, "bug8228": { "p1": [[0, "0x41fd5557", "0x4292aaab"], [1, "0x41fd5557", "0x41555556"], @@ -96,12 +132,9 @@ "expectSuccess": "flaky", "expectMatch": "flaky", "succeeded": true, - "out": [[0, "0xeee3ef57", "0xef6300f8"], - [2, "0xeeee9c6e", "0xef609993", "0x00000000", "0x6e5a5a1b"], - [1, "0x00000000", "0x00000000"], - [2, "0xe56c206c", "0x646c5f40", "0x6c80885e", "0x00000000"], + "out": [[0, "0x00000000", "0x00000000"], + [2, "0xef646464", "0xefefefef", "0x00000000", "0x6e5a5a1b"], [1, "0x00000000", "0x00000000"], - [2, "0xeeda2c5a", "0xef6533a7", "0xeee3ef57", "0xef6300f8"], [5]], "fillTypeOut": "kEvenOdd_FillType" }, @@ -122,7 +155,7 @@ "expectMatch": "flaky", "succeeded": true, "out": [[0, "0x00000000", "0x6e5a5a1b"], - [2, "0xeeee9c6e", "0xef609993", "0xeee3ef57", "0xef6300f8"], + [1, "0xeee3ef57", "0xef6300f8"], [2, "0xeeda2c5a", "0xef6533a7", "0x00000000", "0x00000000"], [1, "0x00000000", "0x6e5a5a1b"], [5], @@ -155,7 +188,7 @@ [1, "0x00000000", "0x00000000"], [2, "0xe56c206c", "0x646c5f40", "0x6c80885e", "0x00000000"], [1, "0x00000000", "0x00000000"], - [2, "0xeeda2c5a", "0xef6533a7", "0xeee3ef57", "0xef6300f8"], + [1, "0xeee3ef57", "0xef6300f8"], [5]], "fillTypeOut": "kEvenOdd_FillType" }, @@ -1258,36 +1291,6 @@ [5]], "fillTypeOut": "kEvenOdd_FillType" }, -"crbug_526025": { - "p1": [[0, "0x43b40000", "0xcf000000"], - [4, "0x4e0d628f", "0xceffffff", "0x4e800003", "0xcec6b143", "0x4e800002", "0xce7ffffc"], - [4, "0x4e800002", "0xcde53aee", "0x4e0d6292", "0xc307820e", "0x44627d00", "0x437ffff2"], - [1, "0x444bf3bc", "0x4460537e"], - [1, "0x43553abd", "0x440f3cbd"], - [1, "0x42000000", "0x41800000"], - [1, "0x42c80000", "0x44000000"], - [1, "0x43553abd", "0x440f3cbd"], - [1, "0x43b40000", "0x44800000"], - [1, "0x43b40000", "0x45816000"]], - "fillType1": "kEvenOdd_FillType", - "p2": [[0, "0x42fe0000", "0x43a08000"], - [1, "0x45d5c000", "0x43870000"], - [1, "0xd0a00000", "0x4cbebc20"], - [1, "0x451f7000", "0x42800000"], - [1, "0x42fe0000", "0x43a08000"], - [5]], - "fillType2": "kWinding_FillType", - "op": "kUnion_SkPathOp", - "expectSuccess": "yes", - "expectMatch": "yes", - "succeeded": true, - "out": [[0, "0x4e800002", "0xce7ffffc"], - [4, "0x4e800003", "0xcec6b143", "0x4e0d628f", "0xceffffff", "0x00000000", "0xcf000000"], - [1, "0x00000000", "0x45816000"], - [4, "0x4e0d6292", "0x00000000", "0x4e800002", "0xcde53aee", "0x4e800002", "0xce7ffffc"], - [5]], - "fillTypeOut": "kEvenOdd_FillType" -}, "fuzz38": { "p1": [[0, "0x42c8ae14", "0x4397a7f0"], [1, "0xccbebc20", "0x4397a7f0"], diff --git a/experimental/pathkit/tests/PathOpsSimplify.json b/experimental/pathkit/tests/PathOpsSimplify.json index 43c7da43ac..4e72836fe4 100644 --- a/experimental/pathkit/tests/PathOpsSimplify.json +++ b/experimental/pathkit/tests/PathOpsSimplify.json @@ -1,4 +1,107 @@ { +"bug8290": { + "path": [[0, "0xcf1c7651", "0xcf1c7650"], + [1, "0x4f1c7653", "0xcf1c7650"], + [1, "0x4f1c7653", "0x4f1c7654"], + [1, "0xcf1c7651", "0x4f1c7654"], + [1, "0xcf1c7651", "0xcf1c7650"], + [5], + [0, "0x433a0000", "0x44388800"], + [1, "0x445fb000", "0x44388800"], + [1, "0x445fb000", "0x4438c802"], + [1, "0x433a0000", "0x4438c802"], + [1, "0x433a0000", "0x44388800"], + [5], + [0, "0x433a0000", "0x44565002"], + [1, "0x445fb000", "0x44565002"], + [1, "0x445fb000", "0x44569000"], + [1, "0x433a0000", "0x44569000"], + [1, "0x433a0000", "0x44565002"], + [5], + [0, "0x433a0000", "0x44741804"], + [1, "0x445fb000", "0x44741804"], + [1, "0x445fb000", "0x44745806"], + [1, "0x433a0000", "0x44745806"], + [1, "0x433a0000", "0x44741804"], + [5], + [0, "0x433a0000", "0x4488f003"], + [1, "0x445fb000", "0x4488f003"], + [1, "0x445fb000", "0x44891004"], + [1, "0x433a0000", "0x44891004"], + [1, "0x433a0000", "0x4488f003"], + [5], + [0, "0x433a0000", "0x4497d404"], + [1, "0x445fb000", "0x4497d404"], + [1, "0x445fb000", "0x4497f405"], + [1, "0x433a0000", "0x4497f405"], + [1, "0x433a0000", "0x4497d404"], + [5], + [0, "0x433a0000", "0x44a6b805"], + [1, "0x445fb000", "0x44a6b805"], + [1, "0x445fb000", "0x44a6d806"], + [1, "0x433a0000", "0x44a6d806"], + [1, "0x433a0000", "0x44a6b805"], + [5], + [0, "0x433a0000", "0x44b59c06"], + [1, "0x445fb000", "0x44b59c06"], + [1, "0x445fb000", "0x44b5bc07"], + [1, "0x433a0000", "0x44b5bc07"], + [1, "0x433a0000", "0x44b59c06"], + [5]], + "fillType": "kEvenOdd_FillType", + "expectSuccess": "yes", + "expectMatch": "yes", + "succeeded": true, + "out": [[0, "0x4f1c7653", "0xcf1c7650"], + [1, "0xcf1c7651", "0xcf1c7650"], + [1, "0xcf1c7651", "0x4f1c7654"], + [1, "0x4f1c7653", "0x4f1c7654"], + [1, "0x4f1c7653", "0xcf1c7650"], + [5], + [0, "0x445fb000", "0x44388800"], + [1, "0x433a0000", "0x44388800"], + [1, "0x433a0000", "0x4438c802"], + [1, "0x445fb000", "0x4438c802"], + [1, "0x445fb000", "0x44388800"], + [5], + [0, "0x445fb000", "0x44565002"], + [1, "0x433a0000", "0x44565002"], + [1, "0x433a0000", "0x44569000"], + [1, "0x445fb000", "0x44569000"], + [1, "0x445fb000", "0x44565002"], + [5], + [0, "0x445fb000", "0x44741804"], + [1, "0x433a0000", "0x44741804"], + [1, "0x433a0000", "0x44745806"], + [1, "0x445fb000", "0x44745806"], + [1, "0x445fb000", "0x44741804"], + [5], + [0, "0x445fb000", "0x4488f003"], + [1, "0x433a0000", "0x4488f003"], + [1, "0x433a0000", "0x44891004"], + [1, "0x445fb000", "0x44891004"], + [1, "0x445fb000", "0x4488f003"], + [5], + [0, "0x445fb000", "0x4497d404"], + [1, "0x433a0000", "0x4497d404"], + [1, "0x433a0000", "0x4497f405"], + [1, "0x445fb000", "0x4497f405"], + [1, "0x445fb000", "0x4497d404"], + [5], + [0, "0x445fb000", "0x44a6b805"], + [1, "0x433a0000", "0x44a6b805"], + [1, "0x433a0000", "0x44a6d806"], + [1, "0x445fb000", "0x44a6d806"], + [1, "0x445fb000", "0x44a6b805"], + [5], + [0, "0x445fb000", "0x44b59c06"], + [1, "0x433a0000", "0x44b59c06"], + [1, "0x433a0000", "0x44b5bc07"], + [1, "0x445fb000", "0x44b5bc07"], + [1, "0x445fb000", "0x44b59c06"], + [5]], + "fillTypeOut": "kEvenOdd_FillType" +}, "bug8249": { "path": [[0, "0x43310000", "0x43810000"], [1, "0x43480000", "0x43868000"], @@ -5869,11 +5972,9 @@ "out": [[0, "0x42f60000", "0x44160000"], [1, "0x00000000", "0x44160000"], [1, "0x00000000", "0x00000000"], - [1, "0x42f60000", "0x00000000"], [1, "0x4c00002a", "0x00000000"], [1, "0x4c00002a", "0x44160000"], [1, "0x4bfffff0", "0x44160000"], - [1, "0x42f60000", "0x44160000"], [5]], "fillTypeOut": "kEvenOdd_FillType" }, |