History log of /external/skia/src/core/SkThreadedBMPDevice.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
8a3f65421214a21c480d6ee268eb29f2c5769078 23-Feb-2018 Yuqian Li <liyuqian@google.com> Copy the bitmap in SkThreadedBMPDevice::drawDevice

The new threaded DM sink revealed skia:7414 again with xfermodes GM test.

Bug: skia:7414
Change-Id: I5565065f81d1e982027e2cc965bb7659793b27dc
Reviewed-on: https://skia-review.googlesource.com/109722
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
aefcccb5d84fb0e0cb8161d4021e8fbd724e2d9e 15-Feb-2018 Yuqian Li <liyuqian@google.com> Enable DAA in the init-once phase of threaded backends

Bug: skia:
Change-Id: Idb856fe12f0f9fa1014e7d15ef40bd7b456634d6
Reviewed-on: https://skia-review.googlesource.com/107540
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
56a4a099e707b2d556f4e39605b72fe8b8cde6f8 12-Feb-2018 Yuqian Li <liyuqian@google.com> Add init-once to threaded backend

For the simplicity of this CL, I haven't enabled DAA for init-once yet.
The current init-once is only enabled for draw path, and it simply
generates the dev path in the init-once phase.

Bug: skia:
Change-Id: Ie9a9ef9fc453acbdeb48b06b93d578c626961e3f
Reviewed-on: https://skia-review.googlesource.com/87784
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Herb Derby <herb@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
8008df1080f5623bf1cf13c713082c2b732d4eb2 17-Jan-2018 Mike Reed <reed@google.com> handle large rects, rename helper

To fix gm/bigrect, needed to do adjust "largest" rect so it doesn't become empty when round-tripping with SkRect/SkIRect.
I renamed it after this.

Bug: skia:
Change-Id: I747782c8456da603cf298275d2300ea1996e7629
Reviewed-on: https://skia-review.googlesource.com/95563
Commit-Queue: Mike Reed <reed@google.com>
Reviewed-by: Yuqian Li <liyuqian@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
7195faccb94fd3415fb8c527b4d95f9289ba9c56 09-Jan-2018 Yuqian Li <liyuqian@google.com> Compare drawBounds with MakeLargest instead of isFinite

In some cases, transformedBounds is finite but its rounded out
IRect is empty so we can't do that.

TBR: reed@google.com
Bug: skia:
Change-Id: Ife78e91a494964042fa09b8cbe86cabbd2572fb9
Reviewed-on: https://skia-review.googlesource.com/92625
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
e48eb337e1ff16bc0190a0562b01ea4cc9a84ccb 09-Jan-2018 Yuqian Li <liyuqian@google.com> Remove macro in the threaded backend

This is a smaller CL distilled from our init-once CL (87784).
Note that the thread alloc is unused here but it will be used by
init-once.

Bug: skia:
Change-Id: If4bc2febfb3fbcd85bf973a01e60b9b64c873a19
Reviewed-on: https://skia-review.googlesource.com/92621
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Herb Derby <herb@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
274218ef0173ff6046f2258c703c1c83ea37c02f 08-Jan-2018 Mike Reed <reed@google.com> move largest apis into private

Related to https://skia-review.googlesource.com/c/skia/+/91860

Bug: skia:
Change-Id: Ia8fd981b422bbab75541b078277d2e09e1fc9d41
Reviewed-on: https://skia-review.googlesource.com/91940
Reviewed-by: Brian Salomon <bsalomon@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
9b50d9dd2b079e678730b43514e9ad385d8b7ea3 01-Dec-2017 Yuqian Li <liyuqian@google.com> Try to bypass the false-positive clang thread analysis warning

This is identical to 70221 except for 3 lines inside SkFlexibleTaskGroup2D::work
to bypass the false-positive warning. We cannot reproduce the error the android
roller generated so we'll have to try and see.

The detailed warning can be found in:
https://skia-review.googlesource.com/c/skia/+/78720

TBR: mtklein@google.com
Bug: skia:
Change-Id: I3e2f414581dbd1398482cf45cf4f43eaf0535651
Reviewed-on: https://skia-review.googlesource.com/79321
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Yuqian Li <liyuqian@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
8a90c4da1cc7998927ce8f282b28baaf976a3873 30-Nov-2017 Leon Scroggins <scroggo@google.com> Revert "Renaming and refactoring to prepare for init-once threaded backend"

This reverts commit 07a42411f8d4a00d992bafdd18f2183f58c4547a.

Reason for revert: This looks to be breaking the Android roll. See https://googleplex-android-review.googlesource.com/c/platform/external/skia/+/3295488

external/skia/src/core/SkTaskGroup2D.cpp:73:28: error: releasing mutex 'rowData.fMutex' that was not held [-Werror,-Wthread-safety-analysis]
rowData.fMutex.unlock();


Original change's description:
> Renaming and refactoring to prepare for init-once threaded backend
>
> Bug: skia:
> Change-Id: I39b1d73b612a9c133847dd7361d634a0351659f1
> Reviewed-on: https://skia-review.googlesource.com/70221
> Reviewed-by: Herb Derby <herb@google.com>
> Commit-Queue: Yuqian Li <liyuqian@google.com>

TBR=mtklein@google.com,herb@google.com,liyuqian@google.com

Change-Id: I701e6c62f6f437a6a285953b45b2e58cf7f0b6e5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: skia:
Reviewed-on: https://skia-review.googlesource.com/78720
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
07a42411f8d4a00d992bafdd18f2183f58c4547a 30-Nov-2017 Yuqian Li <liyuqian@google.com> Renaming and refactoring to prepare for init-once threaded backend

Bug: skia:
Change-Id: I39b1d73b612a9c133847dd7361d634a0351659f1
Reviewed-on: https://skia-review.googlesource.com/70221
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
022cfa258df280d914cfff4dc1466a3fa909ce9c 01-Sep-2017 Mike Klein <mtklein@chromium.org> Add FIFO thread pool, use it for most things.

We like a LIFO default thread pool in tools like DM for better
memory/time locality... the bots use less memory this way, and
generally run faster.

But most use cases want a FIFO queue, so that they can get going
on the next parts of early work while later work is still running.

This splits the implementation into one using SkTArray and pop_back
for LIFO, and a new one using std::deque and pop_front for FIFO.

Change-Id: Ief203b6869a00f1f8084019431a781d15fc63750
Reviewed-on: https://skia-review.googlesource.com/41849
Commit-Queue: Mike Klein <mtklein@chromium.org>
Commit-Queue: Brian Osman <brianosman@google.com>
Reviewed-by: Yuqian Li <liyuqian@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
604a71a5e08ed33b9c983113852e63120f8616ef 28-Aug-2017 Yuqian Li <liyuqian@google.com> Allow providing SkExecutor to SkThreadedBMPDevice

So that callers could manage the thread pool themselves instead of
relying on SkThreadBMPDevice.

Bug: skia:
Change-Id: Idbeafc9ac5d111370fd1b74f6eab9ac8df179940
Reviewed-on: https://skia-review.googlesource.com/39760
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
54043a0c32daeeba2af6f6a14799e01cf869cf4d 04-Aug-2017 Yuqian Li <liyuqian@google.com> Flush threaded device when reaching max queue size

Our SkThreadedBMPDevice is very experimental so I didn't handle this
edge case earlier. Maybe it's now a good time to fix it.

Bug: skia:
Change-Id: Ie3938475449c1341d34200ff3afe4589836950fc
Reviewed-on: https://skia-review.googlesource.com/31203
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Yuqian Li <liyuqian@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
b964238f0bded00bae59c26c5f366a7780a0ef5f 27-Jun-2017 Hal Canary <halcanary@google.com> SkDevice::drawBitmap takes x,y, not matrix

Motivation: a simpler call should make it easier for SkPDF to learn how
to do drawBitmap with A8 bitmap and a maskfilter.
Change-Id: I1a5d190b40b0e9e08fa8876d265a9835a3e9987d
Reviewed-on: https://skia-review.googlesource.com/20961
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
b15ef6f149232c93303c691b22c9bf368b1043f2 07-Jun-2017 Mike Klein <mtklein@chromium.org> we can std::move work to avoid copying it

clang-tidy pointed out this opportunity in the Google3 build.

Change-Id: Id3c7b291fec12cbf860e7fc2583c1a34ad23f697
Reviewed-on: https://skia-review.googlesource.com/18927
Reviewed-by: Yuqian Li <liyuqian@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkThreadedBMPDevice.cpp
70898afe073c49d8151b25cc5bf234f61c76ffae 05-Jun-2017 Yuqian Li <liyuqian@google.com> Add TiledDrawScheduler so we can concurrently draw and enque
(instead of finishing enque before draw). The highlight is that we can now
achieve 9x speedup compared to 5x in all our previous approaches
(including multi-picture draw).

The schedulers here are experimental. I'd like to move on to try initializing
once for each draw before further polishing and optimizing the schedule
mechanism.

Bug: skia:
Change-Id: Idc3d030d475af9645c24c5372ff62b9a402206cc
Reviewed-on: https://skia-review.googlesource.com/17826
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
/external/skia/src/core/SkThreadedBMPDevice.cpp
b55dd553124cd00260bc9e3a63ec8a8fe09412a8 03-Apr-2017 Yuqian Li <liyuqian@google.com> Add SkThreadedBMPDevice for Threaded Raster Backend

BUG=skia:

Change-Id: I882b6563c735796f3a4dcd19f6c79e7efd8306ae
Reviewed-on: https://skia-review.googlesource.com/10505
Commit-Queue: Yuqian Li <liyuqian@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
/external/skia/src/core/SkThreadedBMPDevice.cpp