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

Issue 1893433002: In SkDraw::drawRect, use SkPath for huge rects.

Created:
4 years, 8 months ago by dogben
Modified:
4 years, 7 months ago
Reviewers:
reed1
CC:
reviews_skia.org, mtklein, jcgregorio
Base URL:
https://skia.googlesource.com/skia@fixed-assert
Target Ref:
refs/heads/master
Project:
skia
Visibility:
Public.

Description

In SkDraw::drawRect, use SkPath for huge rects; fix the bugs in drawPath for huge rects. The non-SkPath code doesn't correctly handle rects that out of range of SkIRect. It's simplest to just make the most general code path work rather than fix the bugs in all code paths. Add bigrect gm. Previously committed as https://codereview.chromium.org/1758113005, but caused ASAN failures due to integer overflow and was reverted in https://codereview.chromium.org/1773593005. This CL adds increased coverage. The bigrect gm draws incorrectly in some cases due to skia:5199. BUG=skia:5060 GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1893433002

Patch Set 1 : #

Unified diffs Side-by-side diffs Delta from patch set Stats (+269 lines, -58 lines) Patch
A gm/bigrect.cpp View 1 chunk +104 lines, -0 lines 0 comments Download
M include/core/SkRect.h View 3 chunks +15 lines, -6 lines 0 comments Download
M include/core/SkRegion.h View 1 chunk +11 lines, -0 lines 0 comments Download
M include/core/SkScalar.h View 2 chunks +4 lines, -0 lines 0 comments Download
M src/core/SkAAClip.h View 1 chunk +1 line, -0 lines 0 comments Download
M src/core/SkAAClip.cpp View 1 chunk +11 lines, -0 lines 0 comments Download
M src/core/SkDraw.cpp View 3 chunks +20 lines, -8 lines 0 comments Download
M src/core/SkRasterClip.h View 2 chunks +2 lines, -0 lines 0 comments Download
M src/core/SkRasterClip.cpp View 1 chunk +17 lines, -0 lines 0 comments Download
M src/core/SkRect.cpp View 2 chunks +25 lines, -0 lines 0 comments Download
M src/core/SkScalar.cpp View 1 chunk +3 lines, -0 lines 0 comments Download
M src/core/SkScanPriv.h View 1 chunk +5 lines, -1 line 0 comments Download
M src/core/SkScan_AntiPath.cpp View 7 chunks +18 lines, -25 lines 0 comments Download
M src/core/SkScan_Hairline.cpp View 2 chunks +7 lines, -8 lines 0 comments Download
M src/core/SkScan_Path.cpp View 5 chunks +26 lines, -10 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 37 (24 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1893433002/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1893433002/1
4 years, 8 months ago (2016-04-14 19:44:45 UTC) #3
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-14 19:58:56 UTC) #5
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1893433002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1893433002/20001
4 years, 8 months ago (2016-04-15 13:28:01 UTC) #8
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Shared-Trybot on client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Shared-Trybot/builds/7856)
4 years, 8 months ago (2016-04-15 13:30:31 UTC) #10
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1893433002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1893433002/40001
4 years, 8 months ago (2016-04-15 13:45:56 UTC) #12
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1893433002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1893433002/60001
4 years, 8 months ago (2016-04-15 14:08:20 UTC) #15
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Win-MSVC-x86-Debug-Trybot on client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Win-MSVC-x86-Debug-Trybot/builds/7904)
4 years, 8 months ago (2016-04-15 14:12:10 UTC) #17
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1893433002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1893433002/80001
4 years, 8 months ago (2016-04-19 02:13:04 UTC) #19
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-19 02:22:55 UTC) #21
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1893433002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1893433002/100001
4 years, 8 months ago (2016-04-19 20:06:42 UTC) #29
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1893433002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1893433002/100001
4 years, 8 months ago (2016-04-19 20:07:22 UTC) #32
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 8 months ago (2016-04-19 20:20:13 UTC) #34
dogben
4 years, 8 months ago (2016-04-20 18:51:06 UTC) #36
reed: Sending to you for review because this CL adds new APIs:
  - SkRect::MakeLargestS32
  - SkRect::canRound
  - SkRegion::quickContains(SkRect) (existing version works on SkIRect)
  - SK_MaxS32Scalar

ccing mtklein because he reviewed the previous incarnation of gm/bigrect.cpp.

There are Gold diffs for tiles_rt-8888, but mtklein seems to think these are ok.
The diffs occur where there is a vertical hairline stroke at a tile boundary.

Powered by Google App Engine
This is Rietveld 408576698