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

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

Issue 914403003: cc: Add main frame timing info to frame timing tracker. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: update 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_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 DestroyTileManager(); 275 DestroyTileManager();
276 } 276 }
277 277
278 void LayerTreeHostImpl::BeginMainFrameAborted(CommitEarlyOutReason reason) { 278 void LayerTreeHostImpl::BeginMainFrameAborted(CommitEarlyOutReason reason) {
279 // If the begin frame data was handled, then scroll and scale set was applied 279 // If the begin frame data was handled, then scroll and scale set was applied
280 // by the main thread, so the active tree needs to be updated as if these sent 280 // by the main thread, so the active tree needs to be updated as if these sent
281 // values were applied and committed. 281 // values were applied and committed.
282 if (CommitEarlyOutHandledCommit(reason)) { 282 if (CommitEarlyOutHandledCommit(reason)) {
283 active_tree_->ApplySentScrollAndScaleDeltasFromAbortedCommit(); 283 active_tree_->ApplySentScrollAndScaleDeltasFromAbortedCommit();
284 active_tree_->ResetContentsTexturesPurged(); 284 active_tree_->ResetContentsTexturesPurged();
285 RecordMainFrameTiming();
mithro-old 2015/03/20 02:17:54 The fact that this method is being called in two p
vmpstr 2015/03/20 18:47:26 Whether this is done in the scheduler or in lthi,
mithro-old 2015/03/23 00:15:08 If we aborted the commit, should we be generating
vmpstr 2015/03/23 20:26:43 This happens after apply scroll deltas, animate la
mithro-old 2015/03/24 07:37:42 Despite having worked in this area for a while, I'
285 } 286 }
286 } 287 }
287 288
288 void LayerTreeHostImpl::BeginCommit() { 289 void LayerTreeHostImpl::BeginCommit() {
289 TRACE_EVENT0("cc", "LayerTreeHostImpl::BeginCommit"); 290 TRACE_EVENT0("cc", "LayerTreeHostImpl::BeginCommit");
290 291
291 // Ensure all textures are returned so partial texture updates can happen 292 // Ensure all textures are returned so partial texture updates can happen
292 // during the commit. Impl-side-painting doesn't upload during commits, so 293 // during the commit. Impl-side-painting doesn't upload during commits, so
293 // is unaffected. 294 // is unaffected.
294 if (!settings_.impl_side_painting && output_surface_) 295 if (!settings_.impl_side_painting && output_surface_)
(...skipping 1563 matching lines...) Expand 10 before | Expand all | Expand 10 after
1858 1859
1859 scoped_ptr<PendingPageScaleAnimation> pending_page_scale_animation = 1860 scoped_ptr<PendingPageScaleAnimation> pending_page_scale_animation =
1860 active_tree_->TakePendingPageScaleAnimation(); 1861 active_tree_->TakePendingPageScaleAnimation();
1861 if (pending_page_scale_animation) { 1862 if (pending_page_scale_animation) {
1862 StartPageScaleAnimation( 1863 StartPageScaleAnimation(
1863 pending_page_scale_animation->target_offset, 1864 pending_page_scale_animation->target_offset,
1864 pending_page_scale_animation->use_anchor, 1865 pending_page_scale_animation->use_anchor,
1865 pending_page_scale_animation->scale, 1866 pending_page_scale_animation->scale,
1866 pending_page_scale_animation->duration); 1867 pending_page_scale_animation->duration);
1867 } 1868 }
1869 RecordMainFrameTiming();
1868 } 1870 }
1869 1871
1870 void LayerTreeHostImpl::SetVisible(bool visible) { 1872 void LayerTreeHostImpl::SetVisible(bool visible) {
1871 DCHECK(proxy_->IsImplThread()); 1873 DCHECK(proxy_->IsImplThread());
1872 1874
1873 if (visible_ == visible) 1875 if (visible_ == visible)
1874 return; 1876 return;
1875 visible_ = visible; 1877 visible_ = visible;
1876 DidVisibilityChange(this, visible_); 1878 DidVisibilityChange(this, visible_);
1877 EnforceManagedMemoryPolicy(ActualManagedMemoryPolicy()); 1879 EnforceManagedMemoryPolicy(ActualManagedMemoryPolicy());
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after
2099 *resource_pool = ResourcePool::Create( 2101 *resource_pool = ResourcePool::Create(
2100 resource_provider_.get(), GL_TEXTURE_2D); 2102 resource_provider_.get(), GL_TEXTURE_2D);
2101 2103
2102 *tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create( 2104 *tile_task_worker_pool = PixelBufferTileTaskWorkerPool::Create(
2103 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), context_provider, 2105 task_runner, TileTaskWorkerPool::GetTaskGraphRunner(), context_provider,
2104 resource_provider_.get(), 2106 resource_provider_.get(),
2105 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(), 2107 GetMaxTransferBufferUsageBytes(context_provider->ContextCapabilities(),
2106 settings_.renderer_settings.refresh_rate)); 2108 settings_.renderer_settings.refresh_rate));
2107 } 2109 }
2108 2110
2111 void LayerTreeHostImpl::SetCurrentRequestAnimationFrameTime(
2112 base::TimeTicks frame_time) {
2113 request_animation_frame_time_ = frame_time;
2114 }
2115
2116 void LayerTreeHostImpl::RecordMainFrameTiming() {
2117 std::vector<int64_t> request_ids;
2118 active_tree_->GatherFrameTimingRequestIds(&request_ids);
2119 if (request_ids.empty())
2120 return;
2121
2122 base::TimeTicks end_time =
2123 client_->GetNextPredictedRequestAnimationFrameTime();
2124 frame_timing_tracker_->SaveMainFrameTimeStamps(
2125 request_ids, request_animation_frame_time_, end_time,
2126 active_tree_->source_frame_number());
2127 }
2128
2109 void LayerTreeHostImpl::DestroyTileManager() { 2129 void LayerTreeHostImpl::DestroyTileManager() {
2110 tile_manager_ = nullptr; 2130 tile_manager_ = nullptr;
2111 resource_pool_ = nullptr; 2131 resource_pool_ = nullptr;
2112 staging_resource_pool_ = nullptr; 2132 staging_resource_pool_ = nullptr;
2113 tile_task_worker_pool_ = nullptr; 2133 tile_task_worker_pool_ = nullptr;
2114 rasterizer_ = nullptr; 2134 rasterizer_ = nullptr;
2115 single_thread_synchronous_task_graph_runner_ = nullptr; 2135 single_thread_synchronous_task_graph_runner_ = nullptr;
2116 } 2136 }
2117 2137
2118 bool LayerTreeHostImpl::IsSynchronousSingleThreaded() const { 2138 bool LayerTreeHostImpl::IsSynchronousSingleThreaded() const {
(...skipping 1351 matching lines...) Expand 10 before | Expand all | Expand 10 after
3470 new_target.SetToMin(layer_impl->MaxScrollOffset()); 3490 new_target.SetToMin(layer_impl->MaxScrollOffset());
3471 3491
3472 curve->UpdateTarget( 3492 curve->UpdateTarget(
3473 animation->TrimTimeToCurrentIteration(CurrentBeginFrameArgs().frame_time) 3493 animation->TrimTimeToCurrentIteration(CurrentBeginFrameArgs().frame_time)
3474 .InSecondsF(), 3494 .InSecondsF(),
3475 new_target); 3495 new_target);
3476 3496
3477 return true; 3497 return true;
3478 } 3498 }
3479 } // namespace cc 3499 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698