SkBlitter is not thread safe; make one for each thread.
Otherwise, GM fancy_gradients would be drawn incorrectly and TSAN
will issue alerts as SkARGB32_Shader_Blitter has its own memory
that may be written during blitting.
As we make one blitter for each thread, we also don't need to
send in a thread-alloc for blitCoverageDeltas
Bug: skia:
Change-Id: Ie4ee0886b88c797ab57c65674b0b7527501b164f
Reviewed-on: https://skia-review.googlesource.com/120641
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
diff --git a/src/core/SkScan_DAAPath.cpp b/src/core/SkScan_DAAPath.cpp
index cce759d..a0d656f 100644
--- a/src/core/SkScan_DAAPath.cpp
+++ b/src/core/SkScan_DAAPath.cpp
@@ -379,8 +379,7 @@
if (record->fType == SkDAARecord::Type::kMask) {
blitter->blitMask(record->fMask, clippedIR);
} else {
- blitter->blitCoverageDeltas(record->fList,
- clipBounds, isEvenOdd, isInverse, isConvex, alloc);
+ blitter->blitCoverageDeltas(record->fList, clipBounds, isEvenOdd, isInverse, isConvex);
}
}
}