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

Issue 2120333002: deferred canvas (Closed)

Created:
4 years, 5 months ago by reed1
Modified:
4 years, 5 months ago
CC:
reviews_skia.org, liyuqian
Base URL:
https://skia.googlesource.com/skia.git@master
Target Ref:
refs/heads/master
Project:
skia
Visibility:
Public.

Description

deferred canvas tries to eliminate unneeded clipRects and concats (and their associated save/restores). BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2120333002 Committed: https://skia.googlesource.com/skia/+/babc3de2ce7c2f7b32b1b6b9f36d2ac4a4d8dee1

Patch Set 1 #

Patch Set 2 : check for looper #

Patch Set 3 : add --defer to dump_record #

Patch Set 4 : rebase #

Patch Set 5 : fix restore #

Patch Set 6 : fold trans/clip into previous entry if possible #

Patch Set 7 : fix release warning #

Patch Set 8 : handle scaling #

Patch Set 9 : override makeSurface #

Patch Set 10 : more overrides #

Patch Set 11 : fix misplaced endif #

Patch Set 12 : disable from dm for now #

Patch Set 13 : doh #

Patch Set 14 : check for unknown info in tiles, add override for drawables #

Patch Set 15 : disable defer by default in dm #

Patch Set 16 : make imageInfo and getProps virtual so we can proxy them #

Patch Set 17 : 'E' to trigger deferred in sampleapp, unroll drawables and pictures for now #

Patch Set 18 : make defer runtime in dm #

Patch Set 19 : make flush virtual #

Total comments: 2

Patch Set 20 : rebase #

Patch Set 21 : remove prev change to dmsrcsink #

Total comments: 10

Patch Set 22 : reintegrate w/ DM following Via pattern #

Patch Set 23 : apply comments from #87 #

Patch Set 24 : override drawTextRSXform #

Unified diffs Side-by-side diffs Delta from patch set Stats (+700 lines, -17 lines) Patch
M dm/DM.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +1 line, -0 lines 0 comments Download
M dm/DMSrcSink.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 1 chunk +6 lines, -0 lines 0 comments Download
M dm/DMSrcSink.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2 chunks +11 lines, -0 lines 0 comments Download
M gyp/utils.gypi View 1 chunk +1 line, -0 lines 0 comments Download
M samplecode/SampleApp.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +1 line, -0 lines 0 comments Download
M samplecode/SampleApp.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 chunks +16 lines, -1 line 0 comments Download
A + src/utils/SkDeferredCanvas.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 3 chunks +70 lines, -16 lines 0 comments Download
A src/utils/SkDeferredCanvas.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 1 chunk +545 lines, -0 lines 0 comments Download
M tests/CanvasTest.cpp View 1 chunk +22 lines, -0 lines 0 comments Download
M tools/DumpRecord.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +19 lines, -0 lines 0 comments Download
M tools/dump_record.cpp View 1 2 3 chunks +8 lines, -0 lines 0 comments Download

Messages

Total messages: 105 (52 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/1
4 years, 5 months ago (2016-07-04 18:58:22 UTC) #3
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Mac-Clang-x86_64-Release-Trybot on master.client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Mac-Clang-x86_64-Release-Trybot/builds/3528)
4 years, 5 months ago (2016-07-04 19:01:28 UTC) #5
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/40001
4 years, 5 months ago (2016-07-04 21:05:58 UTC) #7
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 master.client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Shared-Trybot/builds/9414)
4 years, 5 months ago (2016-07-04 21:09:12 UTC) #9
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/60001
4 years, 5 months ago (2016-07-04 21:34:10 UTC) #11
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-Trybot on master.client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-Trybot/builds/9445)
4 years, 5 months ago (2016-07-04 21:41:00 UTC) #13
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/100001
4 years, 5 months ago (2016-07-05 02:01:13 UTC) #15
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 master.client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Shared-Trybot/builds/9418)
4 years, 5 months ago (2016-07-05 02:04:23 UTC) #17
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/120001
4 years, 5 months ago (2016-07-05 18:56:45 UTC) #19
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-Trybot on master.client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-Trybot/builds/9450)
4 years, 5 months ago (2016-07-05 19:04:10 UTC) #21
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/160001
4 years, 5 months ago (2016-07-06 02:29:07 UTC) #23
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-Trybot on master.client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-Trybot/builds/9452)
4 years, 5 months ago (2016-07-06 02:35:42 UTC) #25
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/180001
4 years, 5 months ago (2016-07-06 03:54:54 UTC) #27
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot on master.client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Ubuntu-GCC-x86_64-Release-CMake-Trybot/builds/2446)
4 years, 5 months ago (2016-07-06 03:59:46 UTC) #29
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/200001
4 years, 5 months ago (2016-07-06 04:12:23 UTC) #31
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-Trybot on master.client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Debug-Trybot/builds/9456)
4 years, 5 months ago (2016-07-06 04:18:56 UTC) #33
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/220001
4 years, 5 months ago (2016-07-06 11:20:17 UTC) #35
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: Build-Mac-Clang-x86_64-Release-Trybot on master.client.skia.compile (JOB_FAILED, http://build.chromium.org/p/client.skia.compile/builders/Build-Mac-Clang-x86_64-Release-Trybot/builds/3543)
4 years, 5 months ago (2016-07-06 11:24:06 UTC) #37
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/240001
4 years, 5 months ago (2016-07-06 12:04:31 UTC) #39
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-07-06 12:19:24 UTC) #41
reed1
4 years, 5 months ago (2016-07-06 12:20:21 UTC) #43
reed1
4 years, 5 months ago (2016-07-06 12:23:38 UTC) #46
f(malita)
I presume this is aimed at Android UI, which doesn't flatten into a single picture. ...
4 years, 5 months ago (2016-07-06 13:19:53 UTC) #47
reed1
indeed, this is 1) aimed at android call patterns, and 2) written separately just to ...
4 years, 5 months ago (2016-07-06 13:26:50 UTC) #48
reed1
4 years, 5 months ago (2016-07-06 13:28:26 UTC) #49
mtklein
> So now some optimizations live in base SkCanvas (deferred save/restore), most > are in ...
4 years, 5 months ago (2016-07-06 13:39:59 UTC) #50
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/260001
4 years, 5 months ago (2016-07-06 16:32:36 UTC) #52
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 master.client.skia (JOB_FAILED, http://build.chromium.org/p/client.skia/builders/Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Shared-Trybot/builds/9445)
4 years, 5 months ago (2016-07-06 16:43:26 UTC) #54
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/280001
4 years, 5 months ago (2016-07-06 16:53:25 UTC) #56
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-07-06 17:33:35 UTC) #58
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/300001
4 years, 5 months ago (2016-07-06 17:34:32 UTC) #60
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-07-06 18:20:08 UTC) #62
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/320001
4 years, 5 months ago (2016-07-06 18:46:09 UTC) #64
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-07-06 19:13:14 UTC) #66
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/360001
4 years, 5 months ago (2016-07-06 21:01:19 UTC) #68
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 5 months ago (2016-07-06 21:44:34 UTC) #70
f(malita)
https://codereview.chromium.org/2120333002/diff/360001/src/utils/SkDeferredCanvas.cpp File src/utils/SkDeferredCanvas.cpp (right): https://codereview.chromium.org/2120333002/diff/360001/src/utils/SkDeferredCanvas.cpp#newcode101 src/utils/SkDeferredCanvas.cpp:101: this->INHERITED::willSave(); Do we really want to defer the upcall ...
4 years, 5 months ago (2016-07-07 15:24:07 UTC) #72
reed1
pre-CL to try to simplify this one https://codereview.chromium.org/2130973002#
4 years, 5 months ago (2016-07-07 23:14:51 UTC) #73
reed1
PTAL Would like to land this to ease experiments w/ the new class on android. ...
4 years, 5 months ago (2016-07-08 12:23:32 UTC) #76
mtklein
https://codereview.chromium.org/2120333002/diff/400001/dm/DMSrcSink.cpp File dm/DMSrcSink.cpp (right): https://codereview.chromium.org/2120333002/diff/400001/dm/DMSrcSink.cpp#newcode1236 dm/DMSrcSink.cpp:1236: return src.draw(gUseDeferredCanvas ? &deferred : &canvas); We would normally ...
4 years, 5 months ago (2016-07-08 12:30:47 UTC) #77
reed1
On 2016/07/08 12:30:47, mtklein wrote: > https://codereview.chromium.org/2120333002/diff/400001/dm/DMSrcSink.cpp > File dm/DMSrcSink.cpp (right): > > https://codereview.chromium.org/2120333002/diff/400001/dm/DMSrcSink.cpp#newcode1236 > ...
4 years, 5 months ago (2016-07-08 12:32:16 UTC) #79
reed1
ptal -- ViaDefer
4 years, 5 months ago (2016-07-08 13:05:04 UTC) #82
mtklein
lgtm
4 years, 5 months ago (2016-07-08 13:09:54 UTC) #83
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/420001
4 years, 5 months ago (2016-07-08 13:11:02 UTC) #86
f(malita)
https://codereview.chromium.org/2120333002/diff/400001/src/utils/SkDeferredCanvas.cpp File src/utils/SkDeferredCanvas.cpp (right): https://codereview.chromium.org/2120333002/diff/400001/src/utils/SkDeferredCanvas.cpp#newcode51 src/utils/SkDeferredCanvas.cpp:51: fSaveCount = 0; Nit: fSaveCount(0) https://codereview.chromium.org/2120333002/diff/400001/src/utils/SkDeferredCanvas.cpp#newcode101 src/utils/SkDeferredCanvas.cpp:101: this->INHERITED::willSave(); So ...
4 years, 5 months ago (2016-07-08 13:12:02 UTC) #87
reed1
https://codereview.chromium.org/2120333002/diff/400001/src/utils/SkDeferredCanvas.cpp File src/utils/SkDeferredCanvas.cpp (right): https://codereview.chromium.org/2120333002/diff/400001/src/utils/SkDeferredCanvas.cpp#newcode101 src/utils/SkDeferredCanvas.cpp:101: this->INHERITED::willSave(); On 2016/07/08 13:12:02, f(malita) wrote: > So deferring ...
4 years, 5 months ago (2016-07-08 13:32:32 UTC) #89
reed1
https://codereview.chromium.org/2120333002/diff/400001/src/utils/SkDeferredCanvas.cpp File src/utils/SkDeferredCanvas.cpp (right): https://codereview.chromium.org/2120333002/diff/400001/src/utils/SkDeferredCanvas.cpp#newcode51 src/utils/SkDeferredCanvas.cpp:51: fSaveCount = 0; On 2016/07/08 13:12:02, f(malita) wrote: > ...
4 years, 5 months ago (2016-07-08 13:33:16 UTC) #90
f(malita)
lgtm
4 years, 5 months ago (2016-07-08 13:36:16 UTC) #93
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/420002
4 years, 5 months ago (2016-07-08 13:37:51 UTC) #97
f(malita)
https://codereview.chromium.org/2120333002/diff/400001/src/utils/SkDeferredCanvas.cpp File src/utils/SkDeferredCanvas.cpp (right): https://codereview.chromium.org/2120333002/diff/400001/src/utils/SkDeferredCanvas.cpp#newcode101 src/utils/SkDeferredCanvas.cpp:101: this->INHERITED::willSave(); On 2016/07/08 13:32:32, reed1 wrote: > On 2016/07/08 ...
4 years, 5 months ago (2016-07-08 13:42:44 UTC) #98
f(malita)
On 2016/07/08 13:42:44, f(malita) wrote: > https://codereview.chromium.org/2120333002/diff/400001/src/utils/SkDeferredCanvas.cpp > File src/utils/SkDeferredCanvas.cpp (right): > > https://codereview.chromium.org/2120333002/diff/400001/src/utils/SkDeferredCanvas.cpp#newcode101 > ...
4 years, 5 months ago (2016-07-08 13:46:41 UTC) #99
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2120333002/450001
4 years, 5 months ago (2016-07-08 15:19:56 UTC) #103
commit-bot: I haz the power
4 years, 5 months ago (2016-07-08 15:43:35 UTC) #105
Message was sent while issue was closed.
Committed patchset #24 (id:450001) as
https://skia.googlesource.com/skia/+/babc3de2ce7c2f7b32b1b6b9f36d2ac4a4d8dee1

Powered by Google App Engine
This is Rietveld 408576698