move GrTextBlobCache to GrContextThreadSafeProxy
ninja -C out/Release -j 800 skpbench && ./out/Release/skpbench \
--config gl --ddl --src skps/desk_nytimes.skp \
--ddlTilingWidthHeight 3 --gpuThreads 0 \
--pr ~small ~nvpr --cachePathMasks false --comparableDDL
Reports:
with out cl:
1.949 1.842 3.979 1.802 29% 99 50 cpu ms gl desk_nytimes.skp
this cl:
1.476 1.388 3.342 1.365 34.2% 99 50 cpu ms gl desk_nytimes.skp
Non-ddl perf:
./out/Release/skpbench --config gl --ddl --src skps/desk_nytimes.skp \
--ddlTilingWidthHeight 3 --gpuThreads 0 --pr ~small ~nvpr \
--cachePathMasks false --comparableSKP
1.368 1.31 2.276 1.273 15.3% 99 50 cpu ms gl desk_nytimes.skp
Change-Id: I879f779e34b5c717ab5602f23374aedaff56f96b
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/299197
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Herb Derby <herb@google.com>
diff --git a/src/gpu/GrContextThreadSafeProxyPriv.h b/src/gpu/GrContextThreadSafeProxyPriv.h
index c4873bb..e644fb1 100644
--- a/src/gpu/GrContextThreadSafeProxyPriv.h
+++ b/src/gpu/GrContextThreadSafeProxyPriv.h
@@ -12,6 +12,7 @@
#include "include/private/GrContext_Base.h"
#include "src/gpu/GrCaps.h"
+#include "src/gpu/text/GrTextBlobCache.h"
/**
* Class that adds methods to GrContextThreadSafeProxy that are only intended for use internal to
@@ -20,7 +21,9 @@
*/
class GrContextThreadSafeProxyPriv {
public:
- void init(sk_sp<const GrCaps> caps) const { fProxy->init(std::move(caps)); }
+ void init(sk_sp<const GrCaps> caps) const {
+ fProxy->init(std::move(caps));
+ }
bool matches(GrContext_Base* candidate) const {
return fProxy == candidate->threadSafeProxy().get();
@@ -33,6 +36,9 @@
const GrCaps* caps() const { return fProxy->fCaps.get(); }
sk_sp<const GrCaps> refCaps() const { return fProxy->fCaps; }
+ GrTextBlobCache* getTextBlobCache() { return fProxy->fTextBlobCache.get(); }
+ const GrTextBlobCache* getTextBlobCache() const { return fProxy->fTextBlobCache.get(); }
+
void abandonContext() { fProxy->abandonContext(); }
bool abandoned() const { return fProxy->abandoned(); }