aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/DeferredDisplayListTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/DeferredDisplayListTest.cpp')
-rw-r--r--tests/DeferredDisplayListTest.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/tests/DeferredDisplayListTest.cpp b/tests/DeferredDisplayListTest.cpp
index b6839afa1a..fc9fbfed25 100644
--- a/tests/DeferredDisplayListTest.cpp
+++ b/tests/DeferredDisplayListTest.cpp
@@ -137,6 +137,41 @@ DEF_GPUTEST_FOR_ALL_CONTEXTS(SkSurfaceCharacterization, reporter, ctxInfo) {
REPORTER_ASSERT(reporter, !s->draw(ddl.get()));
}
+
+ // Next test the compatibility of resource cache parameters
+ {
+ const SurfaceParameters params;
+ sk_sp<SkSurface> s = params.make(context);
+
+ int maxResourceCount;
+ size_t maxResourceBytes;
+ context->getResourceCacheLimits(&maxResourceCount, &maxResourceBytes);
+
+ context->setResourceCacheLimits(maxResourceCount/2, maxResourceBytes);
+ REPORTER_ASSERT(reporter, !s->draw(ddl.get()));
+
+ context->setResourceCacheLimits(maxResourceCount, maxResourceBytes/2);
+ REPORTER_ASSERT(reporter, !s->draw(ddl.get()));
+
+ // resource limits >= those at characterization time are accepted
+ context->setResourceCacheLimits(2*maxResourceCount, maxResourceBytes);
+ REPORTER_ASSERT(reporter, s->draw(ddl.get()));
+
+ context->setResourceCacheLimits(maxResourceCount, 2*maxResourceBytes);
+ REPORTER_ASSERT(reporter, s->draw(ddl.get()));
+
+ context->setResourceCacheLimits(maxResourceCount, maxResourceBytes);
+ REPORTER_ASSERT(reporter, s->draw(ddl.get()));
+ }
+
+ // Make sure non-GPU-backed surfaces fail characterization
+ {
+ SkImageInfo ii = SkImageInfo::MakeN32(64, 64, kOpaque_SkAlphaType);
+
+ sk_sp<SkSurface> rasterSurface = SkSurface::MakeRaster(ii);
+ SkSurfaceCharacterization c;
+ REPORTER_ASSERT(reporter, !rasterSurface->characterize(&c));
+ }
}
#endif