aboutsummaryrefslogtreecommitdiff
path: root/experimental
diff options
context:
space:
mode:
authorCary Clark <caryclark@skia.org>2018-08-30 12:58:23 -0400
committerSkia Commit-Bot <skia-commit-bot@chromium.org>2018-08-30 17:36:05 +0000
commit5de5233463ddfae51965a116177b2ce62c883765 (patch)
tree3844f0a69043eafed7409ffce3070e92f37261b1 /experimental
parentbc297beebb6e9dcce1be162c65c337a15824749a (diff)
downloadskqp-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.json77
-rw-r--r--experimental/pathkit/tests/PathOpsSimplify.json105
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"
},