diff options
12 files changed, 16 insertions, 0 deletions
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp index a086094414..bab344b1e5 100644 --- a/dm/DMSrcSink.cpp +++ b/dm/DMSrcSink.cpp @@ -418,6 +418,7 @@ static void draw_to_canvas(SkCanvas* canvas, const SkImageInfo& info, void* pixe premultiply_if_necessary(bitmap); swap_rb_if_necessary(bitmap, dstColorType); canvas->drawBitmap(bitmap, left, top); + canvas->flush(); } // For codec srcs, we want the "draw" step to be a memcpy. Any interesting color space or diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h index 5ba11e57be..d98b4a093d 100644 --- a/dm/DMSrcSink.h +++ b/dm/DMSrcSink.h @@ -433,6 +433,9 @@ class ThreadedSink : public RasterSink { public: explicit ThreadedSink(SkColorType, sk_sp<SkColorSpace> = nullptr); Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override; + SinkFlags flags() const override { + return SinkFlags{ SinkFlags::kRaster, SinkFlags::kIndirect }; + } private: std::unique_ptr<SkExecutor> fExecutor; diff --git a/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN.json b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN.json index 2eb8dc731a..4d382843c3 100644 --- a/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN.json +++ b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-ASAN.json @@ -170,6 +170,7 @@ "f16", "lite-8888", "gbr-8888", + "t8888", "serialize-8888", "tiles_rt-8888", "pic-8888", diff --git a/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-MSAN.json b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-MSAN.json index 96c90fe23e..07478cb258 100644 --- a/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-MSAN.json +++ b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-MSAN.json @@ -169,6 +169,7 @@ "f16", "lite-8888", "gbr-8888", + "t8888", "serialize-8888", "tiles_rt-8888", "pic-8888", diff --git a/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json index fe97a1a059..99e4abfa9b 100644 --- a/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json +++ b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-All-SK_USE_DISCARDABLE_SCALEDIMAGECACHE.json @@ -269,6 +269,7 @@ "f16", "lite-8888", "gbr-8888", + "t8888", "serialize-8888", "tiles_rt-8888", "pic-8888", diff --git a/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-shard_00_10-Coverage.json b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-shard_00_10-Coverage.json index 0e57f1262a..73d6462985 100644 --- a/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-shard_00_10-Coverage.json +++ b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Debug-shard_00_10-Coverage.json @@ -175,6 +175,7 @@ "f16", "lite-8888", "gbr-8888", + "t8888", "serialize-8888", "tiles_rt-8888", "pic-8888", diff --git a/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN.json b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN.json index 3d70ca33b2..79b1f3ea19 100644 --- a/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN.json +++ b/infra/bots/recipes/test.expected/Test-Debian9-Clang-GCE-CPU-AVX2-x86_64-Release-All-TSAN.json @@ -170,6 +170,7 @@ "f16", "lite-8888", "gbr-8888", + "t8888", "serialize-8888", "tiles_rt-8888", "pic-8888", diff --git a/infra/bots/recipes/test.expected/Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Debug-All.json b/infra/bots/recipes/test.expected/Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Debug-All.json index b5f36cadaa..d690228ed7 100644 --- a/infra/bots/recipes/test.expected/Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Debug-All.json +++ b/infra/bots/recipes/test.expected/Test-Debian9-GCC-GCE-CPU-AVX2-x86_64-Debug-All.json @@ -265,6 +265,7 @@ "f16", "lite-8888", "gbr-8888", + "t8888", "serialize-8888", "tiles_rt-8888", "pic-8888", diff --git a/infra/bots/recipes/test.expected/failed_dm.json b/infra/bots/recipes/test.expected/failed_dm.json index 3d0a9bd4e9..83b9178288 100644 --- a/infra/bots/recipes/test.expected/failed_dm.json +++ b/infra/bots/recipes/test.expected/failed_dm.json @@ -265,6 +265,7 @@ "f16", "lite-8888", "gbr-8888", + "t8888", "serialize-8888", "tiles_rt-8888", "pic-8888", diff --git a/infra/bots/recipes/test.expected/trybot.json b/infra/bots/recipes/test.expected/trybot.json index 1b5de9bea7..21042d2a6e 100644 --- a/infra/bots/recipes/test.expected/trybot.json +++ b/infra/bots/recipes/test.expected/trybot.json @@ -266,6 +266,7 @@ "f16", "lite-8888", "gbr-8888", + "t8888", "serialize-8888", "tiles_rt-8888", "pic-8888", diff --git a/infra/bots/recipes/test.py b/infra/bots/recipes/test.py index 837317961d..372ab958f3 100644 --- a/infra/bots/recipes/test.py +++ b/infra/bots/recipes/test.py @@ -105,6 +105,9 @@ def dm_flags(api, bot): configs.extend(['lite-8888']) # Experimental display list. configs.extend(['gbr-8888']) + if '64' in bot: + configs.extend(['t8888']) + configs.extend(mode + '-8888' for mode in ['serialize', 'tiles_rt', 'pic']) # This bot only differs from vanilla CPU bots in 8888 config. diff --git a/src/core/SkDraw.cpp b/src/core/SkDraw.cpp index 362c8b50fd..e3c81ba258 100644 --- a/src/core/SkDraw.cpp +++ b/src/core/SkDraw.cpp @@ -1019,6 +1019,7 @@ void SkDraw::drawDevPath(const SkPath& devPath, const SkPaint& paint, bool drawC // existing drawXXX commands: simply send in SkInitOnceData, do as much init work as // possible, and finally wrap the remaining work into iData->fElement->fDrawFn. SkASSERT(customBlitter == nullptr); + devPath.updateBoundsCache(); // make it thread safe iData->fElement->setDrawFn([proc, devPath, paint, drawCoverage](SkArenaAlloc* alloc, const SkThreadedBMPDevice::DrawState& ds, const SkIRect& tileBounds) { SkThreadedBMPDevice::TileDraw tileDraw(ds, tileBounds); |