Add gltestpersistentcache config that tests GrContextOption's cache.
Uses a new GPU sink that runs each test twice, once to populate the
cache and then again with a new GrContext but a warmed cache. It
verifies that the two generated images are the same.
Change-Id: Iaba195a69751f14ea946afe7174228a813b83a63
Reviewed-on: https://skia-review.googlesource.com/140567
Commit-Queue: Brian Salomon <bsalomon@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
diff --git a/dm/DM.cpp b/dm/DM.cpp
index b8714d3..5b3642a 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -862,11 +862,18 @@
return nullptr;
}
if (gpuConfig->getTestThreading()) {
+ SkASSERT(!gpuConfig->getTestPersistentCache());
return new GPUThreadTestingSink(
contextType, contextOverrides, gpuConfig->getSurfType(),
gpuConfig->getSamples(), gpuConfig->getUseDIText(),
gpuConfig->getColorType(), gpuConfig->getAlphaType(),
sk_ref_sp(gpuConfig->getColorSpace()), FLAGS_gpu_threading, grCtxOptions);
+ } else if (gpuConfig->getTestPersistentCache()) {
+ return new GPUPersistentCacheTestingSink(
+ contextType, contextOverrides, gpuConfig->getSurfType(),
+ gpuConfig->getSamples(), gpuConfig->getUseDIText(),
+ gpuConfig->getColorType(), gpuConfig->getAlphaType(),
+ sk_ref_sp(gpuConfig->getColorSpace()), FLAGS_gpu_threading, grCtxOptions);
} else {
return new GPUSink(contextType, contextOverrides, gpuConfig->getSurfType(),
gpuConfig->getSamples(), gpuConfig->getUseDIText(),