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

Unified Diff: cc/layers/heads_up_display_layer_impl_unittest.cc

Issue 2752833002: cc: Use gpu raster in HUD. (Closed)
Patch Set: review comments updated. Created 3 years, 6 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
Index: cc/layers/heads_up_display_layer_impl_unittest.cc
diff --git a/cc/layers/heads_up_display_layer_impl_unittest.cc b/cc/layers/heads_up_display_layer_impl_unittest.cc
index 722e5615fc8705811963581109befcadc51e24a1..ddfb058ef65cefbf2fe8eb799f4a8723a45167c4 100644
--- a/cc/layers/heads_up_display_layer_impl_unittest.cc
+++ b/cc/layers/heads_up_display_layer_impl_unittest.cc
@@ -18,18 +18,21 @@ namespace {
void CheckDrawLayer(HeadsUpDisplayLayerImpl* layer,
ResourceProvider* resource_provider,
+ ContextProvider* context_provider,
DrawMode draw_mode) {
std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
AppendQuadsData data;
bool will_draw = layer->WillDraw(draw_mode, resource_provider);
if (will_draw)
layer->AppendQuads(render_pass.get(), &data);
- layer->UpdateHudTexture(draw_mode, resource_provider);
+ layer->UpdateHudTexture(draw_mode, resource_provider, context_provider);
if (will_draw)
layer->DidDraw(resource_provider);
size_t expected_quad_list_size = will_draw ? 1 : 0;
EXPECT_EQ(expected_quad_list_size, render_pass->quad_list.size());
+ EXPECT_EQ(0u, data.num_missing_tiles);
+ EXPECT_EQ(0u, data.num_incomplete_tiles);
}
TEST(HeadsUpDisplayLayerImplTest, ResourcelessSoftwareDrawAfterResourceLoss) {
@@ -51,15 +54,44 @@ TEST(HeadsUpDisplayLayerImplTest, ResourcelessSoftwareDrawAfterResourceLoss) {
host_impl.pending_tree()->BuildLayerListAndPropertyTreesForTesting();
// Check regular hardware draw is ok.
- CheckDrawLayer(layer, host_impl.resource_provider(), DRAW_MODE_HARDWARE);
+ CheckDrawLayer(layer, host_impl.resource_provider(),
+ compositor_frame_sink->context_provider(), DRAW_MODE_HARDWARE);
// Simulate a resource loss on transitioning to resourceless software mode.
layer->ReleaseResources();
// Should skip resourceless software draw and not crash in UpdateHudTexture.
CheckDrawLayer(layer, host_impl.resource_provider(),
+ compositor_frame_sink->context_provider(),
DRAW_MODE_RESOURCELESS_SOFTWARE);
}
+TEST(HeadsUpDisplayLayerImplTest, CPUAndGPURasterCanvas) {
+ FakeImplTaskRunnerProvider task_runner_provider;
+ TestTaskGraphRunner task_graph_runner;
+ std::unique_ptr<CompositorFrameSink> compositor_frame_sink =
+ FakeCompositorFrameSink::Create3d();
+ FakeLayerTreeHostImpl host_impl(&task_runner_provider, &task_graph_runner);
+ host_impl.CreatePendingTree();
+ host_impl.SetVisible(true);
+ host_impl.InitializeRenderer(compositor_frame_sink.get());
+ std::unique_ptr<HeadsUpDisplayLayerImpl> layer_ptr =
+ HeadsUpDisplayLayerImpl::Create(host_impl.pending_tree(), 1);
+ layer_ptr->SetBounds(gfx::Size(100, 100));
+
+ HeadsUpDisplayLayerImpl* layer = layer_ptr.get();
+
+ host_impl.pending_tree()->SetRootLayerForTesting(std::move(layer_ptr));
+ host_impl.pending_tree()->BuildLayerListAndPropertyTreesForTesting();
+
+ // Check Ganesh canvas drawing is ok.
+ CheckDrawLayer(layer, host_impl.resource_provider(),
+ compositor_frame_sink->context_provider(), DRAW_MODE_HARDWARE);
+
+ // Check SW canvas drawing is ok.
+ CheckDrawLayer(layer, host_impl.resource_provider(), NULL,
+ DRAW_MODE_SOFTWARE);
+}
+
} // namespace
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698