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

Issue 1484853003: Ganesh: images upload to GPU performance fix (skip copying encoded data) (Closed)

Created:
5 years ago by aleksandar.stojiljkovic
Modified:
5 years ago
CC:
blink-reviews, blink-reviews-platform-graphics_chromium.org, Rik, chromium-reviews, danakj, dshwang, drott+blinkwatch_chromium.org, krit, f(malita), jbroman, Justin Novosad, pdr+graphicswatchlist_chromium.org, rwlbuis, Stephen Chennney, vmpstr+blinkwatch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

GPU raster - images upload to GPU performance fix (skip copying encoded data). For Bug 476531, improved FPS from 5 to 25 (forced GPU rasterization on Lenovo K3 Note). There DecodingImageGenerator::onRefEncodedData() took 80 - 100 ms on ~65MB of animated gif data. This affects GPU texture upload for all image types when content is downloaded (onRefEncoded returns 0 for partially downloaded content) since it removes 2 memory allocations and copies from DecodingImageGenerator::onRefEncodedData() bellow: When invoking e.g. drawImageRect code would trigger GrTexture* SkImageCacherator::lockTexture... // 3. Ask the generator to return a compressed form that the GPU might support SkAutoTUnref<SkData> data(this->refEncoded()); leading to: SkData* DecodingImageGenerator::onRefEncodedData() { ... m_frameGenerator->copyData(&buffer, &allDataReceived); if (buffer && allDataReceived) return SkData::NewWithCopy(buffer->data(), buffer->size()); Covered invalid use case, when ThreadSafeDataTransport::setData is called to append data to already fully received SharedBuffer. Thread safety ensured by holding the reference to ThreadSafeRefCounted ThreadSafeDataTransport (that is again holding ref to SharedBuffer). BUG=476531 Committed: https://crrev.com/03166f6a694d43dff7e71ae04fa2847317c51101 Cr-Commit-Position: refs/heads/master@{#363939}

Patch Set 1 #

Total comments: 4

Patch Set 2 : review update, assert for appending data to m_allDataReceived #

Total comments: 7

Patch Set 3 : Thread safe reference counting and disposal of shared data (m_data that is) #

Total comments: 5

Patch Set 4 : chrishtr@ and scroggo@'s comments processing - simplify erroneus setData handling #

Total comments: 10

Patch Set 5 : #

Patch Set 6 : #

Total comments: 14

Patch Set 7 : Comment #59 fix. Not using fast malloc as suggested during merge - attempt to fix memory leak intro… #

Total comments: 3

Patch Set 8 : updating comment - fix for comment #75 #

Total comments: 2

Patch Set 9 : Making returned data non writable (!SkData::unique). Unit testing. #

Patch Set 10 : Unit test: hold references in 2 different threads. #

Patch Set 11 : rebase #

Patch Set 12 : rebase to gtest update #

Total comments: 14

Patch Set 13 : process comment #101 and rebase to latest #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+120 lines, -24 lines) Patch
M third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -9 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +15 lines, -3 lines 1 comment Download
M third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp View 1 2 3 4 5 6 7 8 9 10 11 12 5 chunks +56 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/ImageFrameGeneratorTest.cpp View 1 2 3 4 5 6 7 8 9 10 11 4 chunks +41 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/ThreadSafeDataTransport.h View 1 2 3 4 5 6 2 chunks +3 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/platform/graphics/ThreadSafeDataTransport.cpp View 1 2 3 4 1 chunk +4 lines, -0 lines 0 comments Download

Messages

Total messages: 120 (33 generated)
aleksandar.stojiljkovic
5 years ago (2015-12-01 00:53:45 UTC) #3
reed1
lgtm
5 years ago (2015-12-01 03:42:45 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/1484853003/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1484853003/1
5 years ago (2015-12-01 06:18:36 UTC) #7
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1484853003/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1484853003/1
5 years ago (2015-12-01 07:30:55 UTC) #10
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/123453)
5 years ago (2015-12-01 07:39:01 UTC) #13
aleksandar.stojiljkovic
+chrishtr, senorblanko - owners approval required.
5 years ago (2015-12-01 20:54:29 UTC) #15
chrishtr
https://codereview.chromium.org/1484853003/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode131 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:131: m_data.data(&buffer, &allDataReceived); Please change ThreadSafeDataTransport::data to return a PassRefPtr, ...
5 years ago (2015-12-01 21:56:45 UTC) #16
aleksandar.stojiljkovic
On 2015/12/01 21:56:45, chrishtr wrote: > https://codereview.chromium.org/1484853003/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp > File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp > (right): > > https://codereview.chromium.org/1484853003/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode131 ...
5 years ago (2015-12-02 00:13:00 UTC) #17
chrishtr
On 2015/12/02 at 00:13:00, aleksandar.stojiljkovic wrote: > On 2015/12/01 21:56:45, chrishtr wrote: > > https://codereview.chromium.org/1484853003/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp ...
5 years ago (2015-12-02 01:02:55 UTC) #18
Stephen White
reed@ or scroggo@ should probably look at this to validate the SkData semantics. https://codereview.chromium.org/1484853003/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File ...
5 years ago (2015-12-02 02:44:55 UTC) #19
Stephen White
On 2015/12/02 01:02:55, chrishtr wrote: > On 2015/12/02 at 00:13:00, aleksandar.stojiljkovic wrote: > > On ...
5 years ago (2015-12-02 02:45:41 UTC) #20
Stephen White
https://codereview.chromium.org/1484853003/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/1/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode131 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:131: m_data.data(&buffer, &allDataReceived); On 2015/12/01 21:56:45, chrishtr wrote: > Please ...
5 years ago (2015-12-02 02:50:39 UTC) #21
aleksandar.stojiljkovic
1) Addressing readability issue with added comment: // Every SkData instance and SharedBuffer need to ...
5 years ago (2015-12-02 11:04:16 UTC) #22
Noel Gordon
"There, DecodingImageGenerator::onRefEncodedData() took 80 - 100 ms on ~65MB of animated gif data." So GrTexture* ...
5 years ago (2015-12-02 14:37:25 UTC) #23
aleksandar.stojiljkovic
On 2015/12/02 14:37:25, noel gordon wrote: > Maybe SkImageCacherator could ask its cached SkImage if ...
5 years ago (2015-12-02 15:23:59 UTC) #24
Stephen White
https://codereview.chromium.org/1484853003/diff/20001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/20001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode125 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:125: buffer->deref(); Are we 100% sure this is thread-safe? Does ...
5 years ago (2015-12-02 16:15:14 UTC) #25
reed1
SkData's callback makes no promise about threads. Whenever (and where-ever) the last owner calls unref(), ...
5 years ago (2015-12-02 16:26:41 UTC) #26
aleksandar.stojiljkovic
On 2015/12/02 16:26:41, reed1 wrote: > SkData's callback makes no promise about threads. Whenever (and ...
5 years ago (2015-12-02 16:43:36 UTC) #27
chrishtr
https://codereview.chromium.org/1484853003/diff/20001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/20001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode125 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:125: buffer->deref(); On 2015/12/02 at 16:15:14, Stephen White wrote: > ...
5 years ago (2015-12-02 16:44:29 UTC) #28
Stephen White
On 2015/12/02 16:43:36, aleksandar.stojiljkovic wrote: > On 2015/12/02 16:26:41, reed1 wrote: > > SkData's callback ...
5 years ago (2015-12-02 16:48:19 UTC) #29
aleksandar.stojiljkovic
https://codereview.chromium.org/1484853003/diff/20001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/20001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode156 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:156: buffer->ref(); >If that object dies before this callback, the ...
5 years ago (2015-12-02 16:58:24 UTC) #30
aleksandar.stojiljkovic
On 2015/12/02 16:48:19, Stephen White wrote: > On 2015/12/02 16:43:36, aleksandar.stojiljkovic wrote: > > On ...
5 years ago (2015-12-02 17:02:29 UTC) #31
Stephen White
https://codereview.chromium.org/1484853003/diff/20001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/20001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode125 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:125: buffer->deref(); On 2015/12/02 16:44:28, chrishtr wrote: > It's not ...
5 years ago (2015-12-02 18:25:48 UTC) #32
chrishtr
https://codereview.chromium.org/1484853003/diff/20001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/20001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode125 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:125: buffer->deref(); On 2015/12/02 at 18:25:47, Stephen White wrote: > ...
5 years ago (2015-12-02 18:26:44 UTC) #33
aleksandar.stojiljkovic
> It might be possible to fix it by making SharedBuffer derive from > ThreadSafeRefCounted ...
5 years ago (2015-12-02 18:49:23 UTC) #34
aleksandar.stojiljkovic
On 2015/12/02 18:49:23, aleksandar.stojiljkovic wrote: > > It might be possible to fix it by ...
5 years ago (2015-12-02 18:50:08 UTC) #36
scroggo_chromium
> reed@ or scroggo@ should probably look at this to validate > the SkData semantics. ...
5 years ago (2015-12-02 20:15:02 UTC) #37
aleksandar.stojiljkovic
On 2015/12/02 20:15:02, scroggo_chromium wrote: > > reed@ or scroggo@ should probably look at this ...
5 years ago (2015-12-02 20:33:34 UTC) #38
aleksandar.stojiljkovic
patch #4 addresses chrishtr@'s and scroggo@'s comments
5 years ago (2015-12-02 21:01:11 UTC) #39
scroggo
lgtm https://codereview.chromium.org/1484853003/diff/60001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h (right): https://codereview.chromium.org/1484853003/diff/60001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h#newcode82 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h:82: SkData* refEncodedData(); Can this be const?
5 years ago (2015-12-03 14:59:59 UTC) #41
chrishtr
https://codereview.chromium.org/1484853003/diff/60001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h (right): https://codereview.chromium.org/1484853003/diff/60001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h#newcode110 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h:110: RefPtr<ThreadSafeDataTransport> m_data; What does making this a RefPtr achieve? ...
5 years ago (2015-12-03 17:51:51 UTC) #42
aleksandar.stojiljkovic
https://codereview.chromium.org/1484853003/diff/60001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/60001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode141 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:141: // in any thread, and SkData would still need ...
5 years ago (2015-12-03 18:04:14 UTC) #43
chrishtr
lgtm https://codereview.chromium.org/1484853003/diff/60001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/60001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode141 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:141: // in any thread, and SkData would still ...
5 years ago (2015-12-03 18:32:00 UTC) #44
chrishtr
On 2015/12/03 at 18:32:00, chrishtr wrote: > lgtm > > https://codereview.chromium.org/1484853003/diff/60001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp > File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): ...
5 years ago (2015-12-03 18:32:34 UTC) #45
aleksandar.stojiljkovic
https://codereview.chromium.org/1484853003/diff/60001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h (right): https://codereview.chromium.org/1484853003/diff/60001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h#newcode82 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h:82: SkData* refEncodedData(); On 2015/12/03 14:59:59, scroggo wrote: > Can ...
5 years ago (2015-12-03 21:17:09 UTC) #46
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1484853003/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1484853003/80001
5 years ago (2015-12-03 21:18:54 UTC) #49
commit-bot: I haz the power
Try jobs failed on following builders: cast_shell_android on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/cast_shell_android/builds/87310) linux_chromium_compile_dbg_32_ng on tryserver.chromium.linux (JOB_FAILED, ...
5 years ago (2015-12-03 21:39:22 UTC) #51
aleksandar.stojiljkovic
On 2015/12/03 21:39:22, commit-bot: I haz the power wrote: > Try jobs failed on following ...
5 years ago (2015-12-03 23:23:23 UTC) #52
aleksandar.stojiljkovic
On 2015/12/03 23:23:23, aleksandar.stojiljkovic wrote: > tasak@, while rebasing this, hit the merge issue with ...
5 years ago (2015-12-03 23:30:59 UTC) #53
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1484853003/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1484853003/100001
5 years ago (2015-12-04 00:34:58 UTC) #55
aleksandar.stojiljkovic
On 2015/12/03 23:30:59, aleksandar.stojiljkovic wrote: > On 2015/12/03 23:23:23, aleksandar.stojiljkovic wrote: > > > tasak@, ...
5 years ago (2015-12-04 01:06:26 UTC) #56
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: android_arm64_dbg_recipe on tryserver.chromium.linux (JOB_TIMED_OUT, no build URL) ...
5 years ago (2015-12-04 02:43:02 UTC) #58
Noel Gordon
https://codereview.chromium.org/1484853003/diff/100001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/100001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode105 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:105: , m_data(new ThreadSafeDataTransport()) Shouldn't this be using adoptRef? https://codereview.chromium.org/1484853003/diff/100001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode124 ...
5 years ago (2015-12-04 03:28:03 UTC) #59
aleksandar.stojiljkovic
Thanks. Addressing concerns and checking if fast malloc in combination to PLATFORM_EXPORT ThreadSafeDataTransport final : ...
5 years ago (2015-12-04 11:11:43 UTC) #60
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1484853003/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1484853003/120001
5 years ago (2015-12-04 11:12:40 UTC) #62
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1484853003/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1484853003/120001
5 years ago (2015-12-04 11:21:06 UTC) #65
Noel Gordon
On 2015/12/04 11:12:40, commit-bot: I haz the power wrote: > Dry run: CQ is trying ...
5 years ago (2015-12-04 11:24:37 UTC) #66
Noel Gordon
.. there might be more questions.
5 years ago (2015-12-04 11:25:20 UTC) #67
aleksandar.stojiljkovic
On 2015/12/04 11:24:37, noel gordon wrote: > On 2015/12/04 11:12:40, commit-bot: I haz the power ...
5 years ago (2015-12-04 11:27:16 UTC) #70
aleksandar.stojiljkovic
On 2015/12/04 11:27:16, aleksandar.stojiljkovic wrote: > On 2015/12/04 11:24:37, noel gordon wrote: > > On ...
5 years ago (2015-12-04 11:39:24 UTC) #71
Noel Gordon
Ok good. There was a memory leak detected on linux ASAN, so we can wait ...
5 years ago (2015-12-04 11:41:58 UTC) #72
aleksandar.stojiljkovic
On 2015/12/04 11:41:58, noel gordon wrote: > Ok good. There was a memory leak detected ...
5 years ago (2015-12-04 11:58:59 UTC) #73
aleksandar.stojiljkovic
On 2015/12/04 02:43:02, commit-bot: I haz the power wrote: > Dry run: Try jobs failed ...
5 years ago (2015-12-04 12:21:03 UTC) #74
Noel Gordon
On 2015/12/04 11:58:59, aleksandar.stojiljkovic wrote: > On 2015/12/04 11:41:58, noel gordon wrote: > > I ...
5 years ago (2015-12-04 12:38:59 UTC) #75
Noel Gordon
Some more review comments. https://codereview.chromium.org/1484853003/diff/100001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/100001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode150 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:150: // Client side use case ...
5 years ago (2015-12-04 12:40:30 UTC) #76
aleksandar.stojiljkovic
On 2015/12/04 12:38:59, noel gordon wrote: > On 2015/12/04 11:58:59, aleksandar.stojiljkovic wrote: > > On ...
5 years ago (2015-12-04 14:14:17 UTC) #77
haraken
(Moving the discussion from https://codereview.chromium.org/1497683002/) > https://codereview.chromium.org/1497683002/diff/40001/third_party/WebKit/Source/platform/graphics/ThreadSafeDataTransport.h#newcode49 > > > third_party/WebKit/Source/platform/graphics/ThreadSafeDataTransport.h:49: > > > DISALLOW_NEW(); ...
5 years ago (2015-12-04 14:22:37 UTC) #78
aleksandar.stojiljkovic
https://codereview.chromium.org/1484853003/diff/100001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/100001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode150 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:150: // Client side use case is valid only for ...
5 years ago (2015-12-04 14:31:15 UTC) #79
aleksandar.stojiljkovic
On 2015/12/04 14:14:17, aleksandar.stojiljkovic wrote: > On 2015/12/04 12:38:59, noel gordon wrote: > > On ...
5 years ago (2015-12-04 15:07:37 UTC) #80
aleksandar.stojiljkovic
updated comment. https://codereview.chromium.org/1484853003/diff/140001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/140001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode105 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:105: , m_data(adoptRef(new ThreadSafeDataTransport())) haraken@ > Can you ...
5 years ago (2015-12-04 15:37:00 UTC) #81
scroggo_chromium
https://codereview.chromium.org/1484853003/diff/120001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h (left): https://codereview.chromium.org/1484853003/diff/120001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h#oldcode83 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h:83: On 2015/12/04 14:31:15, aleksandar.stojiljkovic wrote: > On 2015/12/04 12:40:30, ...
5 years ago (2015-12-04 16:15:25 UTC) #82
aleksandar.stojiljkovic
On 2015/12/04 16:15:25, scroggo_chromium wrote: > But it will still be unnecessary, in the case ...
5 years ago (2015-12-04 16:31:56 UTC) #83
scroggo_chromium
https://codereview.chromium.org/1484853003/diff/140001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h (right): https://codereview.chromium.org/1484853003/diff/140001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h#newcode84 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h:84: // according to the contract SkImageGenerator::refEncodedData. I think this ...
5 years ago (2015-12-04 16:53:06 UTC) #84
aleksandar.stojiljkovic
Simplifying the logic, added unit tests and made SkData unique() to be false - so ...
5 years ago (2015-12-04 21:50:10 UTC) #85
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1484853003/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1484853003/180001
5 years ago (2015-12-07 19:34:45 UTC) #87
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: mac_chromium_compile_dbg_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/132724) mac_chromium_gn_rel on ...
5 years ago (2015-12-07 19:46:29 UTC) #89
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1484853003/200001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1484853003/200001
5 years ago (2015-12-07 20:40:52 UTC) #91
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1484853003/220001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1484853003/220001
5 years ago (2015-12-07 21:31:19 UTC) #94
aleksandar.stojiljkovic
On 2015/12/04 21:50:10, aleksandar.stojiljkovic wrote: > Simplifying the logic, added unit tests and made SkData ...
5 years ago (2015-12-07 21:46:08 UTC) #95
chrishtr
lgtm
5 years ago (2015-12-07 23:06:29 UTC) #96
aleksandar.stojiljkovic
On 2015/12/07 23:06:29, chrishtr wrote: > lgtm Thanks. I'll wait for Noel tomorrow morning (he ...
5 years ago (2015-12-07 23:13:48 UTC) #97
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years ago (2015-12-08 00:41:11 UTC) #99
Noel Gordon
On 2015/12/02 15:23:59, aleksandar.stojiljkovic wrote: > On 2015/12/02 14:37:25, noel gordon wrote: > > Maybe ...
5 years ago (2015-12-08 13:39:51 UTC) #100
Noel Gordon
On 2015/12/04 11:11:43, aleksandar.stojiljkovic wrote: https://codereview.chromium.org/1484853003/diff/100001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode150 > third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:150: // > Client side use case is ...
5 years ago (2015-12-08 13:53:40 UTC) #101
Noel Gordon
On 2015/12/04 16:15:25, scroggo_chromium wrote: > https://codereview.chromium.org/1484853003/diff/120001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h > File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h (left): > > https://codereview.chromium.org/1484853003/diff/120001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h#oldcode83 > ...
5 years ago (2015-12-08 14:18:57 UTC) #102
Noel Gordon
On 2015/12/04 16:15:25, scroggo_chromium wrote: > On a related note, one could argue that it's ...
5 years ago (2015-12-08 14:48:42 UTC) #103
aleksandar.stojiljkovic
On 2015/12/08 14:48:42, noel gordon wrote: > On 2015/12/04 16:15:25, scroggo_chromium wrote: > > > ...
5 years ago (2015-12-08 15:23:56 UTC) #104
Noel Gordon
https://codereview.chromium.org/1484853003/diff/220001/third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp File third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/220001/third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp#newcode54 third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp:54: return m_frameGenerator->refEncodedData(); Space before this line, as done elsewhere ...
5 years ago (2015-12-08 15:41:59 UTC) #105
aleksandar_stojiljkovic
https://codereview.chromium.org/1484853003/diff/220001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/220001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode161 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:161: MutexLocker lock(m_decodeMutex); On 2015/12/08 15:41:59, noel gordon wrote: > ...
5 years ago (2015-12-08 16:04:00 UTC) #107
Noel Gordon
On 2015/12/08 15:23:56, aleksandar.stojiljkovic wrote: > On 2015/12/08 14:48:42, noel gordon wrote: > > On ...
5 years ago (2015-12-08 16:05:02 UTC) #108
aleksandar.stojiljkovic
https://codereview.chromium.org/1484853003/diff/220001/third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp File third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp (right): https://codereview.chromium.org/1484853003/diff/220001/third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp#newcode54 third_party/WebKit/Source/platform/graphics/DecodingImageGenerator.cpp:54: return m_frameGenerator->refEncodedData(); On 2015/12/08 15:41:58, noel gordon wrote: > ...
5 years ago (2015-12-08 20:28:14 UTC) #109
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1484853003/240001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1484853003/240001
5 years ago (2015-12-08 20:30:39 UTC) #112
scroggo_chromium
lgtm https://codereview.chromium.org/1484853003/diff/240001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h File third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h (right): https://codereview.chromium.org/1484853003/diff/240001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h#newcode114 third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.h:114: // In case that ImageFrameGenerator get's deleted before ...
5 years ago (2015-12-08 21:45:00 UTC) #113
commit-bot: I haz the power
Committed patchset #13 (id:240001)
5 years ago (2015-12-09 02:40:56 UTC) #115
commit-bot: I haz the power
Patchset 13 (id:??) landed as https://crrev.com/03166f6a694d43dff7e71ae04fa2847317c51101 Cr-Commit-Position: refs/heads/master@{#363939}
5 years ago (2015-12-09 02:42:10 UTC) #118
Noel Gordon
On 2015/12/08 16:04:00, aleksandar_stojiljkovic wrote: > https://codereview.chromium.org/1484853003/diff/220001/third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp#newcode161 > third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:161: > MutexLocker lock(m_decodeMutex); > On 2015/12/08 ...
5 years ago (2015-12-09 02:50:02 UTC) #119
aleksandar.stojiljkovic
5 years ago (2015-12-09 08:21:40 UTC) #120
Message was sent while issue was closed.
On 2015/12/09 02:50:02, noel gordon wrote:
> On 2015/12/08 16:04:00, aleksandar_stojiljkovic wrote:
> >
>
https://codereview.chromium.org/1484853003/diff/220001/third_party/WebKit/Sou...
> > third_party/WebKit/Source/platform/graphics/ImageFrameGenerator.cpp:161:
> > MutexLocker lock(m_decodeMutex);
> > On 2015/12/08 15:41:59, noel gordon wrote:
> > > Hmmm ... none of your other patches had this lock.  Can you explain to me
> why
> > > you added it here?
> > >  
> > 
> > The comment two lines above - for multithreaded rasterizer this is critical
> > section
> 
> Maybe, but you've blocked the entire decoder now just the read the encoded
data.
>  Perhaps that'll be fixed when you file the bugs about work needed for
> ThreadSafeDataTransport.

Issue 568016 added.
Mutex seems necessary there to cover SkData instantiation (a minor note, that
part should be fast as there is no copy). One could argue that we dont need 2
mutexes (ThreadSafeDataTransport::data() called in that method already has a
mutex). Yes, let me address it during refactoring.

Powered by Google App Engine
This is Rietveld 408576698