diff options
Diffstat (limited to 'tests/DeferredDisplayListTest.cpp')
-rw-r--r-- | tests/DeferredDisplayListTest.cpp | 35 |
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 |