OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/resources/raster_worker_pool.h" | 5 #include "cc/resources/raster_worker_pool.h" |
6 | 6 |
7 #include "base/json/json_writer.h" | 7 #include "base/json/json_writer.h" |
8 #include "base/metrics/histogram.h" | 8 #include "base/metrics/histogram.h" |
9 #include "base/values.h" | 9 #include "base/values.h" |
10 #include "cc/debug/devtools_instrumentation.h" | 10 #include "cc/debug/devtools_instrumentation.h" |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 metadata_(metadata), | 87 metadata_(metadata), |
88 rendering_stats_(rendering_stats), | 88 rendering_stats_(rendering_stats), |
89 reply_(reply) {} | 89 reply_(reply) {} |
90 | 90 |
91 void RunAnalysisOnThread(unsigned thread_index) { | 91 void RunAnalysisOnThread(unsigned thread_index) { |
92 TRACE_EVENT1("cc", | 92 TRACE_EVENT1("cc", |
93 "RasterWorkerPoolTaskImpl::RunAnalysisOnThread", | 93 "RasterWorkerPoolTaskImpl::RunAnalysisOnThread", |
94 "metadata", | 94 "metadata", |
95 TracedValue::FromValue(metadata_.AsValue().release())); | 95 TracedValue::FromValue(metadata_.AsValue().release())); |
96 | 96 |
97 DCHECK(picture_pile_); | 97 DCHECK(picture_pile_.get()); |
98 DCHECK(rendering_stats_); | 98 DCHECK(rendering_stats_); |
99 | 99 |
100 PicturePileImpl* picture_clone = | 100 PicturePileImpl* picture_clone = |
101 picture_pile_->GetCloneForDrawingOnThread(thread_index); | 101 picture_pile_->GetCloneForDrawingOnThread(thread_index); |
102 | 102 |
103 DCHECK(picture_clone); | 103 DCHECK(picture_clone); |
104 | 104 |
105 base::TimeTicks start_time = rendering_stats_->StartRecording(); | 105 base::TimeTicks start_time = rendering_stats_->StartRecording(); |
106 picture_clone->AnalyzeInRect(content_rect_, contents_scale_, &analysis_); | 106 picture_clone->AnalyzeInRect(content_rect_, contents_scale_, &analysis_); |
107 base::TimeDelta duration = rendering_stats_->EndRecording(start_time); | 107 base::TimeDelta duration = rendering_stats_->EndRecording(start_time); |
108 | 108 |
109 // Record the solid color prediction. | 109 // Record the solid color prediction. |
110 UMA_HISTOGRAM_BOOLEAN("Renderer4.SolidColorTilesAnalyzed", | 110 UMA_HISTOGRAM_BOOLEAN("Renderer4.SolidColorTilesAnalyzed", |
111 analysis_.is_solid_color); | 111 analysis_.is_solid_color); |
112 rendering_stats_->AddTileAnalysisResult(duration, | 112 rendering_stats_->AddTileAnalysisResult(duration, |
113 analysis_.is_solid_color); | 113 analysis_.is_solid_color); |
114 | 114 |
115 // Clear the flag if we're not using the estimator. | 115 // Clear the flag if we're not using the estimator. |
116 analysis_.is_solid_color &= use_color_estimator_; | 116 analysis_.is_solid_color &= use_color_estimator_; |
117 } | 117 } |
118 | 118 |
119 bool RunRasterOnThread(SkDevice* device, unsigned thread_index) { | 119 bool RunRasterOnThread(SkDevice* device, unsigned thread_index) { |
120 TRACE_EVENT1( | 120 TRACE_EVENT1( |
121 "cc", "RasterWorkerPoolTaskImpl::RunRasterOnThread", | 121 "cc", "RasterWorkerPoolTaskImpl::RunRasterOnThread", |
122 "metadata", TracedValue::FromValue(metadata_.AsValue().release())); | 122 "metadata", TracedValue::FromValue(metadata_.AsValue().release())); |
123 devtools_instrumentation::ScopedLayerTask raster_task( | 123 devtools_instrumentation::ScopedLayerTask raster_task( |
124 devtools_instrumentation::kRasterTask, metadata_.layer_id); | 124 devtools_instrumentation::kRasterTask, metadata_.layer_id); |
125 | 125 |
126 DCHECK(picture_pile_); | 126 DCHECK(picture_pile_.get()); |
127 DCHECK(device); | 127 DCHECK(device); |
128 | 128 |
129 if (analysis_.is_solid_color) | 129 if (analysis_.is_solid_color) |
130 return false; | 130 return false; |
131 | 131 |
132 PicturePileImpl* picture_clone = | 132 PicturePileImpl* picture_clone = |
133 picture_pile_->GetCloneForDrawingOnThread(thread_index); | 133 picture_pile_->GetCloneForDrawingOnThread(thread_index); |
134 | 134 |
135 SkCanvas canvas(device); | 135 SkCanvas canvas(device); |
136 | 136 |
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
411 scoped_refptr<internal::WorkerPoolTask> new_root(root.internal_); | 411 scoped_refptr<internal::WorkerPoolTask> new_root(root.internal_); |
412 | 412 |
413 TaskGraph graph; | 413 TaskGraph graph; |
414 BuildTaskGraph(new_root, &graph); | 414 BuildTaskGraph(new_root, &graph); |
415 WorkerPool::SetTaskGraph(&graph); | 415 WorkerPool::SetTaskGraph(&graph); |
416 | 416 |
417 root_.swap(new_root); | 417 root_.swap(new_root); |
418 } | 418 } |
419 | 419 |
420 } // namespace cc | 420 } // namespace cc |
OLD | NEW |