OOP serialization improvements. |
|||
Issue descriptionProfiling thread times on some key silk cases, here are some of the hot code paths that came up during serialization. SkTextBlob serialization: An additional copy and allocation in skia (https://chromium-review.googlesource.com/c/chromium/src/+/961274). Trying to get a fix in skia. Another thing that came up is a temp SkData allocation done to serialize the typeface id in skia (https://cs.chromium.org/chromium/src/third_party/skia/src/core/SkTextBlob.cpp?l=903). It can probably be avoided within skia, since its all internal. SkTextBlob deserialization: This was an unnecessary copy for creating a transient SkData (https://chromium-review.googlesource.com/c/chromium/src/+/959439). The text blob serialization stuff applies to other skia types we serialize in the same way (SkFlattenables).
,
Apr 5 2018
Also left is re-using same text blobs on the service to hit skia caches in GrAtlasTextContext.
,
Apr 5 2018
,
Apr 5 2018
,
Apr 5 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c96940cb27bc403ba1d3806b26e7160b3d47133d commit c96940cb27bc403ba1d3806b26e7160b3d47133d Author: Khushal <khushalsagar@chromium.org> Date: Thu Apr 05 22:54:47 2018 cc: Avoid extra allocation and copy for SkTextBlob serialization. When serializing a SkTextBlob, skia flattens it into allocated memory which is then copied into PaintOpWriter's memory. Change this to directly serialize into the writer's memory. R=enne@chromium.org, reed@google.com BUG:821584 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;luci.chromium.try:android_optional_gpu_tests_rel Change-Id: I644a02aba1b8f5b204596eaf2b04d8763a9cce37 Reviewed-on: https://chromium-review.googlesource.com/961274 Reviewed-by: enne <enne@chromium.org> Commit-Queue: Khushal <khushalsagar@chromium.org> Cr-Commit-Position: refs/heads/master@{#548599} [modify] https://crrev.com/c96940cb27bc403ba1d3806b26e7160b3d47133d/cc/paint/paint_op_buffer_unittest.cc [modify] https://crrev.com/c96940cb27bc403ba1d3806b26e7160b3d47133d/cc/paint/paint_op_reader.cc [modify] https://crrev.com/c96940cb27bc403ba1d3806b26e7160b3d47133d/cc/paint/paint_op_writer.cc
,
Jul 11
📍 Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/10114f24a40000
,
Jul 11
😿 Pinpoint job stopped with an error. https://pinpoint-dot-chromeperf.appspot.com/job/10114f24a40000 Buildbucket says the build completed successfully, but Pinpoint can't find the isolate hash.
,
Jul 11
📍 Pinpoint job started. https://pinpoint-dot-chromeperf.appspot.com/job/11e98dfaa40000
,
Jul 11
📍 Job complete. See results below. https://pinpoint-dot-chromeperf.appspot.com/job/11e98dfaa40000
,
Jul 11
I tried a hack for inifinitely caching all text blobs on the GPU to see what the impact of potentially using the transfer cache for these would be, and looking at cpu usage its a wash. I don't think its worth doing, unless we see a case come up where it has an impact. |
|||
►
Sign in to add a comment |
|||
Comment 1 by bugdroid1@chromium.org
, Mar 14 2018