summaryrefslogtreecommitdiffstats
path: root/cc/trees
diff options
context:
space:
mode:
Diffstat (limited to 'cc/trees')
-rw-r--r--cc/trees/layer_tree_host_impl.cc9
-rw-r--r--cc/trees/layer_tree_host_impl.h3
-rw-r--r--cc/trees/layer_tree_host_unittest_no_message_loop.cc249
-rw-r--r--cc/trees/layer_tree_settings.cc1
-rw-r--r--cc/trees/layer_tree_settings.h1
5 files changed, 4 insertions, 259 deletions
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index 2ef7bef..c92cb44 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -1035,7 +1035,7 @@ DrawResult LayerTreeHostImpl::PrepareToDraw(FrameData* frame) {
// This will cause NotifyTileStateChanged() to be called for any visible tiles
// that completed, which will add damage to the frame for them so they appear
// as part of the current frame being drawn.
- if (tile_manager_)
+ if (settings_.impl_side_painting)
tile_manager_->UpdateVisibleTiles(global_tile_state_);
frame->render_surface_layer_list = &active_tree_->RenderSurfaceLayerList();
@@ -1527,7 +1527,7 @@ void LayerTreeHostImpl::DrawLayers(FrameData* frame) {
!output_surface_->context_provider());
rendering_stats_instrumentation_->IncrementFrameCount(1);
- if (tile_manager_) {
+ if (settings_.impl_side_painting) {
memory_history_->SaveEntry(
tile_manager_->memory_stats_from_last_assign());
}
@@ -1827,8 +1827,7 @@ void LayerTreeHostImpl::UpdateViewportContainerSizes() {
void LayerTreeHostImpl::SynchronouslyInitializeAllTiles() {
// Only valid for the single-threaded non-scheduled/synchronous case
// using the zero copy raster worker pool.
- if (tile_manager_)
- single_thread_synchronous_task_graph_runner_->RunUntilIdle();
+ single_thread_synchronous_task_graph_runner_->RunUntilIdle();
}
void LayerTreeHostImpl::DidLoseOutputSurface() {
@@ -2270,7 +2269,7 @@ bool LayerTreeHostImpl::InitializeRenderer(
// Since the new renderer may be capable of MSAA, update status here.
UpdateGpuRasterizationStatus();
- if (settings_.impl_side_painting && settings_.raster_enabled)
+ if (settings_.impl_side_painting)
CreateAndSetTileManager();
RecreateTreeResources();
diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h
index 6551255..bce1a81 100644
--- a/cc/trees/layer_tree_host_impl.h
+++ b/cc/trees/layer_tree_host_impl.h
@@ -655,9 +655,6 @@ class CC_EXPORT LayerTreeHostImpl
scoped_ptr<OutputSurface> output_surface_;
- // |resource_provider_| and |tile_manager_| can be NULL, e.g. when using tile-
- // free rendering - see OutputSurface::ForcedDrawToSoftwareDevice().
- // |tile_manager_| can also be NULL when raster_enabled is false.
scoped_ptr<ResourceProvider> resource_provider_;
scoped_ptr<TileManager> tile_manager_;
bool content_is_suitable_for_gpu_rasterization_;
diff --git a/cc/trees/layer_tree_host_unittest_no_message_loop.cc b/cc/trees/layer_tree_host_unittest_no_message_loop.cc
deleted file mode 100644
index cd13240..0000000
--- a/cc/trees/layer_tree_host_unittest_no_message_loop.cc
+++ /dev/null
@@ -1,249 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "base/thread_task_runner_handle.h"
-#include "base/threading/simple_thread.h"
-#include "cc/layers/delegated_frame_provider.h"
-#include "cc/layers/delegated_frame_resource_collection.h"
-#include "cc/layers/delegated_renderer_layer.h"
-#include "cc/layers/layer.h"
-#include "cc/layers/solid_color_layer.h"
-#include "cc/output/delegated_frame_data.h"
-#include "cc/output/output_surface.h"
-#include "cc/output/output_surface_client.h"
-#include "cc/resources/resource_provider.h"
-#include "cc/scheduler/begin_frame_source.h"
-#include "cc/test/fake_delegated_renderer_layer.h"
-#include "cc/test/test_context_provider.h"
-#include "cc/trees/layer_tree_host.h"
-#include "cc/trees/layer_tree_host_client.h"
-#include "cc/trees/layer_tree_host_single_thread_client.h"
-#include "testing/gtest/include/gtest/gtest.h"
-#include "third_party/skia/include/core/SkColor.h"
-
-namespace cc {
-namespace {
-
-class NoMessageLoopOutputSurface : public OutputSurface {
- public:
- NoMessageLoopOutputSurface() : OutputSurface(TestContextProvider::Create()) {}
- ~NoMessageLoopOutputSurface() override {}
-
- // OutputSurface overrides.
- void SwapBuffers(CompositorFrame* frame) override {
- DCHECK(client_);
- client_->DidSwapBuffers();
- client_->DidSwapBuffersComplete();
- }
-};
-
-class LayerTreeHostNoMessageLoopTest
- : public testing::Test,
- public base::DelegateSimpleThread::Delegate,
- public LayerTreeHostClient,
- public LayerTreeHostSingleThreadClient {
- public:
- LayerTreeHostNoMessageLoopTest()
- : did_initialize_output_surface_(false),
- did_commit_(false),
- did_commit_and_draw_frame_(false),
- size_(100, 100),
- no_loop_thread_(this, "LayerTreeHostNoMessageLoopTest") {}
- ~LayerTreeHostNoMessageLoopTest() override {}
-
- // LayerTreeHostClient overrides.
- void WillBeginMainFrame() override {}
- void BeginMainFrame(const BeginFrameArgs& args) override {}
- void BeginMainFrameNotExpectedSoon() override {}
- void DidBeginMainFrame() override {}
- void Layout() override {}
- void ApplyViewportDeltas(const gfx::Vector2dF& inner_delta,
- const gfx::Vector2dF& outer_delta,
- const gfx::Vector2dF& elastic_overscroll_delta,
- float page_scale,
- float top_controls_delta) override {}
- void RequestNewOutputSurface() override {
- layer_tree_host_->SetOutputSurface(
- make_scoped_ptr<OutputSurface>(new NoMessageLoopOutputSurface));
- }
- void DidInitializeOutputSurface() override {
- did_initialize_output_surface_ = true;
- }
- void DidFailToInitializeOutputSurface() override {}
- void WillCommit() override {}
- void DidCommit() override { did_commit_ = true; }
- void DidCommitAndDrawFrame() override { did_commit_and_draw_frame_ = true; }
- void DidCompleteSwapBuffers() override {}
- void DidCompletePageScaleAnimation() override {}
- void RecordFrameTimingEvents(
- scoped_ptr<FrameTimingTracker::CompositeTimingSet> composite_events,
- scoped_ptr<FrameTimingTracker::MainFrameTimingSet> main_frame_events)
- override {}
-
- // LayerTreeHostSingleThreadClient overrides.
- void DidPostSwapBuffers() override {}
- void DidAbortSwapBuffers() override {}
-
- void RunTest() {
- no_loop_thread_.Start();
- no_loop_thread_.Join();
- }
-
- // base::DelegateSimpleThread::Delegate override.
- void Run() override {
- ASSERT_FALSE(base::ThreadTaskRunnerHandle::IsSet());
- RunTestWithoutMessageLoop();
- EXPECT_FALSE(base::ThreadTaskRunnerHandle::IsSet());
- }
-
- protected:
- virtual void RunTestWithoutMessageLoop() = 0;
-
- void SetupLayerTreeHost() {
- LayerTreeSettings settings;
- settings.single_thread_proxy_scheduler = false;
- settings.verify_property_trees = false;
- settings.raster_enabled = false;
-
- LayerTreeHost::InitParams params;
- params.client = this;
- params.settings = &settings;
- layer_tree_host_ = LayerTreeHost::CreateSingleThreaded(this, &params);
- layer_tree_host_->SetViewportSize(size_);
- layer_tree_host_->SetRootLayer(root_layer_);
- }
-
- void Composite() {
- did_commit_ = false;
- did_commit_and_draw_frame_ = false;
- layer_tree_host_->Composite(base::TimeTicks::Now());
- EXPECT_TRUE(did_initialize_output_surface_);
- EXPECT_TRUE(did_commit_);
- EXPECT_TRUE(did_commit_and_draw_frame_);
- }
-
- void TearDownLayerTreeHost() {
- // Explicit teardown to make failures easier to debug.
- layer_tree_host_ = nullptr;
- root_layer_ = nullptr;
- }
-
- // All protected member variables are accessed only on |no_loop_thread_|.
- scoped_ptr<LayerTreeHost> layer_tree_host_;
- scoped_refptr<Layer> root_layer_;
-
- bool did_initialize_output_surface_;
- bool did_commit_;
- bool did_commit_and_draw_frame_;
- gfx::Size size_;
-
- private:
- base::DelegateSimpleThread no_loop_thread_;
-};
-
-class LayerTreeHostNoMessageLoopSmokeTest
- : public LayerTreeHostNoMessageLoopTest {
- protected:
- void RunTestWithoutMessageLoop() override {
- gfx::Size size(100, 100);
-
- // Set up root layer.
- {
- scoped_refptr<SolidColorLayer> solid_color_layer =
- SolidColorLayer::Create(LayerSettings());
- solid_color_layer->SetBackgroundColor(SK_ColorRED);
- solid_color_layer->SetBounds(size_);
- solid_color_layer->SetIsDrawable(true);
- root_layer_ = solid_color_layer;
- }
-
- SetupLayerTreeHost();
- Composite();
- TearDownLayerTreeHost();
- }
-};
-
-TEST_F(LayerTreeHostNoMessageLoopSmokeTest, SmokeTest) {
- RunTest();
-}
-
-class LayerTreeHostNoMessageLoopDelegatedLayer
- : public LayerTreeHostNoMessageLoopTest,
- public DelegatedFrameResourceCollectionClient {
- protected:
- void RunTestWithoutMessageLoop() override {
- resource_collection_ = new DelegatedFrameResourceCollection;
- frame_provider_ = new DelegatedFrameProvider(
- resource_collection_.get(), CreateFrameDataWithResource(998));
-
- LayerSettings layer_settings;
- root_layer_ = Layer::Create(layer_settings);
- delegated_layer_ = FakeDelegatedRendererLayer::Create(
- layer_settings, frame_provider_.get());
- delegated_layer_->SetBounds(size_);
- delegated_layer_->SetIsDrawable(true);
- root_layer_->AddChild(delegated_layer_);
-
- SetupLayerTreeHost();
-
- // Draw first frame.
- Composite();
-
- // Prepare and draw second frame.
- frame_provider_->SetFrameData(CreateFrameDataWithResource(999));
- Composite();
-
- // Resource from first frame should be returned.
- CheckReturnedResource(1u);
-
- TearDownLayerTreeHost();
- delegated_layer_ = NULL;
- frame_provider_ = NULL;
-
- // Resource from second frame should be returned.
- CheckReturnedResource(1u);
- resource_collection_ = NULL;
- }
-
- // DelegatedFrameResourceCollectionClient overrides.
- void UnusedResourcesAreAvailable() override {}
-
- private:
- scoped_ptr<DelegatedFrameData> CreateFrameDataWithResource(
- ResourceId resource_id) {
- scoped_ptr<DelegatedFrameData> frame(new DelegatedFrameData);
- gfx::Rect frame_rect(size_);
-
- scoped_ptr<RenderPass> root_pass(RenderPass::Create());
- root_pass->SetNew(
- RenderPassId(1, 1), frame_rect, frame_rect, gfx::Transform());
- frame->render_pass_list.push_back(root_pass.Pass());
-
- TransferableResource resource;
- resource.id = resource_id;
- resource.mailbox_holder.texture_target = GL_TEXTURE_2D;
- resource.mailbox_holder.mailbox = gpu::Mailbox::Generate();
- frame->resource_list.push_back(resource);
-
- return frame.Pass();
- }
-
- void CheckReturnedResource(size_t expected_num) {
- ReturnedResourceArray returned_resources;
- resource_collection_->TakeUnusedResourcesForChildCompositor(
- &returned_resources);
- EXPECT_EQ(expected_num, returned_resources.size());
- }
-
- scoped_refptr<DelegatedFrameResourceCollection> resource_collection_;
- scoped_refptr<DelegatedFrameProvider> frame_provider_;
- scoped_refptr<DelegatedRendererLayer> delegated_layer_;
-};
-
-TEST_F(LayerTreeHostNoMessageLoopDelegatedLayer, SingleDelegatedLayer) {
- RunTest();
-}
-
-} // namespace
-} // namespace cc
diff --git a/cc/trees/layer_tree_settings.cc b/cc/trees/layer_tree_settings.cc
index 1043f1e..5b82456 100644
--- a/cc/trees/layer_tree_settings.cc
+++ b/cc/trees/layer_tree_settings.cc
@@ -21,7 +21,6 @@ LayerSettings::~LayerSettings() {
LayerTreeSettings::LayerTreeSettings()
: impl_side_painting(false),
- raster_enabled(true),
single_thread_proxy_scheduler(true),
use_external_begin_frame_source(false),
main_frame_before_activation_enabled(false),
diff --git a/cc/trees/layer_tree_settings.h b/cc/trees/layer_tree_settings.h
index 36ace43..2d47aef 100644
--- a/cc/trees/layer_tree_settings.h
+++ b/cc/trees/layer_tree_settings.h
@@ -30,7 +30,6 @@ class CC_EXPORT LayerTreeSettings {
RendererSettings renderer_settings;
bool impl_side_painting;
- bool raster_enabled;
bool single_thread_proxy_scheduler;
bool use_external_begin_frame_source;
bool main_frame_before_activation_enabled;