Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1227)

Unified Diff: cc/trees/layer_tree_host_unittest.cc

Issue 2633563003: Revert of Remove ForceReclaimResources (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/trees/layer_tree_host_pixeltest_tiles.cc ('k') | content/renderer/gpu/render_widget_compositor.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/trees/layer_tree_host_unittest.cc
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
index 28395b53acc3437fcefcb6afb0cff4ce2edf91cd..89a082df9ac74340518c46fceaa97cbf71c657d0 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -2929,6 +2929,7 @@
const RendererSettings& renderer_settings,
base::SingleThreadTaskRunner* task_runner,
bool synchronous_composite,
+ bool force_disable_reclaim_resources,
base::Closure invalidate_callback)
: TestCompositorFrameSink(std::move(compositor_context_provider),
std::move(worker_context_provider),
@@ -2936,7 +2937,8 @@
gpu_memory_buffer_manager,
renderer_settings,
task_runner,
- synchronous_composite),
+ synchronous_composite,
+ force_disable_reclaim_resources),
invalidate_callback_(std::move(invalidate_callback)) {}
// TestCompositorFrameSink overrides.
@@ -2972,6 +2974,7 @@
shared_bitmap_manager(), gpu_memory_buffer_manager(),
layer_tree_host()->GetSettings().renderer_settings,
ImplThreadTaskRunner(), false /* synchronous_composite */,
+ false /* force_disable_reclaim_resources */,
std::move(on_draw_callback));
compositor_frame_sink_ = frame_sink.get();
return std::move(frame_sink);
@@ -3111,6 +3114,7 @@
shared_bitmap_manager(), gpu_memory_buffer_manager(),
layer_tree_host()->GetSettings().renderer_settings,
ImplThreadTaskRunner(), false /* synchronous_composite */,
+ false /* force_disable_reclaim_resources */,
std::move(on_draw_callback));
compositor_frame_sink_ = frame_sink.get();
return std::move(frame_sink);
@@ -5629,11 +5633,14 @@
bool synchronous_composite =
!HasImplThread() &&
!layer_tree_host()->GetSettings().single_thread_proxy_scheduler;
+ // Relaiming resources is parameterized for this test.
+ bool force_disable_reclaim_resources = !reclaim_resources_;
return base::MakeUnique<TestCompositorFrameSink>(
compositor_context_provider, std::move(worker_context_provider),
shared_bitmap_manager(), gpu_memory_buffer_manager(),
layer_tree_host()->GetSettings().renderer_settings,
- ImplThreadTaskRunner(), synchronous_composite);
+ ImplThreadTaskRunner(), synchronous_composite,
+ force_disable_reclaim_resources);
}
void BeginTest() override {
@@ -5644,7 +5651,7 @@
std::move(swap_promise0));
layer_tree_host()->Composite(base::TimeTicks::Now());
- // Fail to swap (no damage).
+ // Fail to swap (no damage) if not reclaiming resources from the Display.
std::unique_ptr<SwapPromise> swap_promise1(
new TestSwapPromise(&swap_promise_result_[1]));
layer_tree_host()->GetSwapPromiseManager()->QueueSwapPromise(
@@ -5680,13 +5687,19 @@
EXPECT_TRUE(swap_promise_result_[0].dtor_called);
}
- // Second swap promise fails to swap.
+ // Second swap promise fails to swap if not reclaiming resources from the
+ // Display.
{
base::AutoLock lock(swap_promise_result_[1].lock);
EXPECT_TRUE(swap_promise_result_[1].did_activate_called);
- EXPECT_FALSE(swap_promise_result_[1].did_swap_called);
- EXPECT_TRUE(swap_promise_result_[1].did_not_swap_called);
- EXPECT_EQ(SwapPromise::SWAP_FAILS, swap_promise_result_[1].reason);
+ if (!reclaim_resources_) {
+ EXPECT_FALSE(swap_promise_result_[1].did_swap_called);
+ EXPECT_TRUE(swap_promise_result_[1].did_not_swap_called);
+ EXPECT_EQ(SwapPromise::SWAP_FAILS, swap_promise_result_[1].reason);
+ } else {
+ EXPECT_TRUE(swap_promise_result_[1].did_swap_called);
+ EXPECT_FALSE(swap_promise_result_[1].did_not_swap_called);
+ }
EXPECT_TRUE(swap_promise_result_[1].dtor_called);
}
@@ -5701,12 +5714,20 @@
}
}
+ bool reclaim_resources_;
int commit_count_ = 0;
TestSwapPromiseResult swap_promise_result_[3];
};
-// Synchronous composite is a single-threaded only feature.
-SINGLE_THREAD_TEST_F(LayerTreeHostTestSynchronousCompositeSwapPromise);
+TEST_F(LayerTreeHostTestSynchronousCompositeSwapPromise, NoReclaim) {
+ reclaim_resources_ = false;
+ RunTest(CompositorMode::SINGLE_THREADED);
+}
+
+TEST_F(LayerTreeHostTestSynchronousCompositeSwapPromise, Reclaim) {
+ reclaim_resources_ = true;
+ RunTest(CompositorMode::SINGLE_THREADED);
+}
// Make sure page scale and top control deltas are applied to the client even
// when the LayerTreeHost doesn't have a root layer.
« no previous file with comments | « cc/trees/layer_tree_host_pixeltest_tiles.cc ('k') | content/renderer/gpu/render_widget_compositor.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698