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

Issue 1233953004: Deduplicate typefaces across sub-pictures (Closed)

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

Description

Deduplicate typefaces across sub-pictures Old flow to serialize a picture: 1) serialize picture ops 2) serialize all sub pictures recursively 3) flatten the rest of this picture into a buffer, deduping flattenable factories and typefaces as we go 4) serialize the factories and typefaces 5) serialize the bytes from 3) This allows the data in step 5) to refer to the deduplicated factories and typefaces from step 4). But, each sub picture in step 2) is completely siloed, so they can't dedup with the parent picture or each other. New flow: 1) serialize picture ops 2) flatten the rest of this picture into a buffer, deduping flattenable factories and typefaces as we go 3) dummy-serialize sub pictures into /dev/null, with the effect of adding any new typefaces to our dedup set 4) serialize the factories and typefaces 5) serialize the bytes from 2) 6) serialize all sub pictures recursively, with perfect deduplication because of step 3). Now all typefaces in the top-level picture and all sub pictures recursively should end up deduplicated in the top-level typeface set. Decoding changes are similar: we just thread through the top-level typefaces to the sub pictures. What's convenient / surprising is that this new code correctly reads old pictures if we just have each picture prefer its local typeface set over the top-level one: old pictures always just use their own typefaces, and new pictures always use the top-level ones. BUG=skia:4092 Committed: https://skia.googlesource.com/skia/+/0c263fa9f80b9a20b6f6161a2e9a263c2c586a9b

Patch Set 1 #

Patch Set 2 : more hacking #

Patch Set 3 : working? #

Patch Set 4 : rebase #

Unified diffs Side-by-side diffs Delta from patch set Stats (+95 lines, -43 lines) Patch
M include/core/SkPicture.h View 1 2 3 2 chunks +8 lines, -0 lines 0 comments Download
M src/core/SkPicture.cpp View 1 2 2 chunks +15 lines, -2 lines 0 comments Download
M src/core/SkPictureData.h View 1 2 4 chunks +7 lines, -5 lines 0 comments Download
M src/core/SkPictureData.cpp View 1 2 3 10 chunks +65 lines, -36 lines 0 comments Download

Messages

Total messages: 17 (7 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/1233953004/40001
5 years, 5 months ago (2015-07-17 18:10:03 UTC) #2
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 5 months ago (2015-07-17 18:17:17 UTC) #4
mtklein_C
5 years, 5 months ago (2015-07-17 18:40:43 UTC) #6
caryclark
lgtm
5 years, 5 months ago (2015-07-17 19:23:55 UTC) #7
mtklein_C
ping
5 years, 4 months ago (2015-08-18 14:20:48 UTC) #8
reed1
lgtm
5 years, 4 months ago (2015-08-18 15:04:43 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1233953004/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1233953004/40001
5 years, 4 months ago (2015-08-18 15:07:56 UTC) #11
commit-bot: I haz the power
Try jobs failed on following builders: skia_presubmit-Trybot on client.skia.fyi (JOB_FAILED, http://build.chromium.org/p/client.skia.fyi/builders/skia_presubmit-Trybot/builds/1951)
5 years, 4 months ago (2015-08-18 15:08:47 UTC) #13
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1233953004/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1233953004/60001
5 years, 4 months ago (2015-08-18 15:23:57 UTC) #16
commit-bot: I haz the power
5 years, 4 months ago (2015-08-18 15:30:02 UTC) #17
Message was sent while issue was closed.
Committed patchset #4 (id:60001) as
https://skia.googlesource.com/skia/+/0c263fa9f80b9a20b6f6161a2e9a263c2c586a9b

Powered by Google App Engine
This is Rietveld 408576698