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

Side by Side Diff: cc/trees/layer_tree_host.cc

Issue 999173004: cc: Move worker threads to content. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: comment and webview fix Created 5 years, 9 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 unified diff | Download patch
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <stack> 8 #include <stack>
9 #include <string> 9 #include <string>
10 10
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 namespace { 49 namespace {
50 static base::StaticAtomicSequenceNumber s_layer_tree_host_sequence_number; 50 static base::StaticAtomicSequenceNumber s_layer_tree_host_sequence_number;
51 } 51 }
52 52
53 namespace cc { 53 namespace cc {
54 54
55 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateThreaded( 55 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateThreaded(
56 LayerTreeHostClient* client, 56 LayerTreeHostClient* client,
57 SharedBitmapManager* shared_bitmap_manager, 57 SharedBitmapManager* shared_bitmap_manager,
58 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, 58 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
59 TaskGraphRunner* task_graph_runner,
59 const LayerTreeSettings& settings, 60 const LayerTreeSettings& settings,
60 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, 61 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
61 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner, 62 scoped_refptr<base::SingleThreadTaskRunner> impl_task_runner,
62 scoped_ptr<BeginFrameSource> external_begin_frame_source) { 63 scoped_ptr<BeginFrameSource> external_begin_frame_source) {
63 DCHECK(main_task_runner.get()); 64 DCHECK(main_task_runner.get());
64 DCHECK(impl_task_runner.get()); 65 DCHECK(impl_task_runner.get());
65 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( 66 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost(
66 client, shared_bitmap_manager, gpu_memory_buffer_manager, settings)); 67 client, shared_bitmap_manager, gpu_memory_buffer_manager,
68 task_graph_runner, settings));
67 layer_tree_host->InitializeThreaded(main_task_runner, 69 layer_tree_host->InitializeThreaded(main_task_runner,
68 impl_task_runner, 70 impl_task_runner,
69 external_begin_frame_source.Pass()); 71 external_begin_frame_source.Pass());
70 return layer_tree_host.Pass(); 72 return layer_tree_host.Pass();
71 } 73 }
72 74
73 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateSingleThreaded( 75 scoped_ptr<LayerTreeHost> LayerTreeHost::CreateSingleThreaded(
74 LayerTreeHostClient* client, 76 LayerTreeHostClient* client,
75 LayerTreeHostSingleThreadClient* single_thread_client, 77 LayerTreeHostSingleThreadClient* single_thread_client,
76 SharedBitmapManager* shared_bitmap_manager, 78 SharedBitmapManager* shared_bitmap_manager,
77 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, 79 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
80 TaskGraphRunner* task_graph_runner,
78 const LayerTreeSettings& settings, 81 const LayerTreeSettings& settings,
79 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, 82 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
80 scoped_ptr<BeginFrameSource> external_begin_frame_source) { 83 scoped_ptr<BeginFrameSource> external_begin_frame_source) {
81 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost( 84 scoped_ptr<LayerTreeHost> layer_tree_host(new LayerTreeHost(
82 client, shared_bitmap_manager, gpu_memory_buffer_manager, settings)); 85 client, shared_bitmap_manager, gpu_memory_buffer_manager,
86 task_graph_runner, settings));
83 layer_tree_host->InitializeSingleThreaded(single_thread_client, 87 layer_tree_host->InitializeSingleThreaded(single_thread_client,
84 main_task_runner, 88 main_task_runner,
85 external_begin_frame_source.Pass()); 89 external_begin_frame_source.Pass());
86 return layer_tree_host.Pass(); 90 return layer_tree_host.Pass();
87 } 91 }
88 92
89 LayerTreeHost::LayerTreeHost( 93 LayerTreeHost::LayerTreeHost(
90 LayerTreeHostClient* client, 94 LayerTreeHostClient* client,
91 SharedBitmapManager* shared_bitmap_manager, 95 SharedBitmapManager* shared_bitmap_manager,
92 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, 96 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
97 TaskGraphRunner* task_graph_runner,
93 const LayerTreeSettings& settings) 98 const LayerTreeSettings& settings)
94 : micro_benchmark_controller_(this), 99 : micro_benchmark_controller_(this),
95 next_ui_resource_id_(1), 100 next_ui_resource_id_(1),
96 inside_begin_main_frame_(false), 101 inside_begin_main_frame_(false),
97 needs_full_tree_sync_(true), 102 needs_full_tree_sync_(true),
98 client_(client), 103 client_(client),
99 source_frame_number_(0), 104 source_frame_number_(0),
100 rendering_stats_instrumentation_(RenderingStatsInstrumentation::Create()), 105 rendering_stats_instrumentation_(RenderingStatsInstrumentation::Create()),
101 output_surface_lost_(true), 106 output_surface_lost_(true),
102 settings_(settings), 107 settings_(settings),
(...skipping 11 matching lines...) Expand all
114 gpu_rasterization_histogram_recorded_(false), 119 gpu_rasterization_histogram_recorded_(false),
115 background_color_(SK_ColorWHITE), 120 background_color_(SK_ColorWHITE),
116 has_transparent_background_(false), 121 has_transparent_background_(false),
117 partial_texture_update_requests_(0), 122 partial_texture_update_requests_(0),
118 did_complete_scale_animation_(false), 123 did_complete_scale_animation_(false),
119 in_paint_layer_contents_(false), 124 in_paint_layer_contents_(false),
120 id_(s_layer_tree_host_sequence_number.GetNext() + 1), 125 id_(s_layer_tree_host_sequence_number.GetNext() + 1),
121 next_commit_forces_redraw_(false), 126 next_commit_forces_redraw_(false),
122 shared_bitmap_manager_(shared_bitmap_manager), 127 shared_bitmap_manager_(shared_bitmap_manager),
123 gpu_memory_buffer_manager_(gpu_memory_buffer_manager), 128 gpu_memory_buffer_manager_(gpu_memory_buffer_manager),
129 task_graph_runner_(task_graph_runner),
124 surface_id_namespace_(0u), 130 surface_id_namespace_(0u),
125 next_surface_sequence_(1u) { 131 next_surface_sequence_(1u) {
126 if (settings_.accelerated_animation_enabled) 132 if (settings_.accelerated_animation_enabled)
127 animation_registrar_ = AnimationRegistrar::Create(); 133 animation_registrar_ = AnimationRegistrar::Create();
128 rendering_stats_instrumentation_->set_record_rendering_stats( 134 rendering_stats_instrumentation_->set_record_rendering_stats(
129 debug_state_.RecordRenderingStats()); 135 debug_state_.RecordRenderingStats());
130 } 136 }
131 137
132 void LayerTreeHost::InitializeThreaded( 138 void LayerTreeHost::InitializeThreaded(
133 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner, 139 scoped_refptr<base::SingleThreadTaskRunner> main_task_runner,
(...skipping 289 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 } 429 }
424 430
425 void LayerTreeHost::DidFailToInitializeOutputSurface() { 431 void LayerTreeHost::DidFailToInitializeOutputSurface() {
426 DCHECK(output_surface_lost_); 432 DCHECK(output_surface_lost_);
427 client_->DidFailToInitializeOutputSurface(); 433 client_->DidFailToInitializeOutputSurface();
428 } 434 }
429 435
430 scoped_ptr<LayerTreeHostImpl> LayerTreeHost::CreateLayerTreeHostImpl( 436 scoped_ptr<LayerTreeHostImpl> LayerTreeHost::CreateLayerTreeHostImpl(
431 LayerTreeHostImplClient* client) { 437 LayerTreeHostImplClient* client) {
432 DCHECK(proxy_->IsImplThread()); 438 DCHECK(proxy_->IsImplThread());
433 scoped_ptr<LayerTreeHostImpl> host_impl = 439 scoped_ptr<LayerTreeHostImpl> host_impl = LayerTreeHostImpl::Create(
434 LayerTreeHostImpl::Create(settings_, 440 settings_, client, proxy_.get(), rendering_stats_instrumentation_.get(),
435 client, 441 shared_bitmap_manager_, gpu_memory_buffer_manager_, task_graph_runner_,
436 proxy_.get(), 442 id_);
437 rendering_stats_instrumentation_.get(),
438 shared_bitmap_manager_,
439 gpu_memory_buffer_manager_,
440 id_);
441 host_impl->SetUseGpuRasterization(UseGpuRasterization()); 443 host_impl->SetUseGpuRasterization(UseGpuRasterization());
442 shared_bitmap_manager_ = NULL; 444 shared_bitmap_manager_ = NULL;
443 gpu_memory_buffer_manager_ = NULL; 445 gpu_memory_buffer_manager_ = NULL;
446 task_graph_runner_ = NULL;
444 top_controls_manager_weak_ptr_ = 447 top_controls_manager_weak_ptr_ =
445 host_impl->top_controls_manager()->AsWeakPtr(); 448 host_impl->top_controls_manager()->AsWeakPtr();
446 input_handler_weak_ptr_ = host_impl->AsWeakPtr(); 449 input_handler_weak_ptr_ = host_impl->AsWeakPtr();
447 return host_impl.Pass(); 450 return host_impl.Pass();
448 } 451 }
449 452
450 void LayerTreeHost::DidLoseOutputSurface() { 453 void LayerTreeHost::DidLoseOutputSurface() {
451 TRACE_EVENT0("cc", "LayerTreeHost::DidLoseOutputSurface"); 454 TRACE_EVENT0("cc", "LayerTreeHost::DidLoseOutputSurface");
452 DCHECK(proxy_->IsMainThread()); 455 DCHECK(proxy_->IsMainThread());
453 456
(...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after
1264 bool children_need_begin_frames) const { 1267 bool children_need_begin_frames) const {
1265 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames); 1268 proxy_->SetChildrenNeedBeginFrames(children_need_begin_frames);
1266 } 1269 }
1267 1270
1268 void LayerTreeHost::SendBeginFramesToChildren( 1271 void LayerTreeHost::SendBeginFramesToChildren(
1269 const BeginFrameArgs& args) const { 1272 const BeginFrameArgs& args) const {
1270 client_->SendBeginFramesToChildren(args); 1273 client_->SendBeginFramesToChildren(args);
1271 } 1274 }
1272 1275
1273 } // namespace cc 1276 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698