From fd61ed0d7929cf85e0b936f48c72035af4c0a4b3 Mon Sep 17 00:00:00 2001 From: robertphillips Date: Tue, 28 Oct 2014 07:21:44 -0700 Subject: Alter layer hoisting to only hoist layers for one canvas at a time This CL alters layer hoisting to defer creation of the free floating layers until they are actually needed (rather than creating _all_ the hoisted layers at the start). It also fixes a pre vs. post Concat bug with how matrices were being accumulated. BUG=skia:2315 Review URL: https://codereview.chromium.org/657383004 --- tests/GpuLayerCacheTest.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'tests/GpuLayerCacheTest.cpp') diff --git a/tests/GpuLayerCacheTest.cpp b/tests/GpuLayerCacheTest.cpp index 62f6ec7a8c..0a8d0d2442 100644 --- a/tests/GpuLayerCacheTest.cpp +++ b/tests/GpuLayerCacheTest.cpp @@ -66,10 +66,14 @@ static void lock_layer(skiatest::Reporter* reporter, desc.fHeight = 512; desc.fConfig = kSkia8888_GrPixelConfig; - bool needsRerendering = cache->lock(layer, desc, false); + bool needsRerendering; + bool inAtlas = cache->tryToAtlas(layer, desc, &needsRerendering); + if (!inAtlas) { + cache->lock(layer, desc, &needsRerendering); + } REPORTER_ASSERT(reporter, needsRerendering); - needsRerendering = cache->lock(layer, desc, false); + cache->lock(layer, desc, &needsRerendering); REPORTER_ASSERT(reporter, !needsRerendering); REPORTER_ASSERT(reporter, layer->texture()); -- cgit v1.2.3