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

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

Issue 1897123002: Remove current implementation of frame timing events. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 8 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
« no previous file with comments | « cc/trees/proxy_impl.h ('k') | cc/trees/proxy_main.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/proxy_impl.h" 5 #include "cc/trees/proxy_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 CommitEarlyOutReason reason, 181 CommitEarlyOutReason reason,
182 base::TimeTicks main_thread_start_time) { 182 base::TimeTicks main_thread_start_time) {
183 TRACE_EVENT1("cc", "ProxyImpl::BeginMainFrameAbortedOnImplThread", "reason", 183 TRACE_EVENT1("cc", "ProxyImpl::BeginMainFrameAbortedOnImplThread", "reason",
184 CommitEarlyOutReasonToString(reason)); 184 CommitEarlyOutReasonToString(reason));
185 DCHECK(IsImplThread()); 185 DCHECK(IsImplThread());
186 DCHECK(scheduler_->CommitPending()); 186 DCHECK(scheduler_->CommitPending());
187 DCHECK(!layer_tree_host_impl_->pending_tree()); 187 DCHECK(!layer_tree_host_impl_->pending_tree());
188 188
189 if (CommitEarlyOutHandledCommit(reason)) { 189 if (CommitEarlyOutHandledCommit(reason)) {
190 SetInputThrottledUntilCommitOnImpl(false); 190 SetInputThrottledUntilCommitOnImpl(false);
191 last_processed_begin_main_frame_args_ = last_begin_main_frame_args_;
192 } 191 }
193 layer_tree_host_impl_->BeginMainFrameAborted(reason); 192 layer_tree_host_impl_->BeginMainFrameAborted(reason);
194 scheduler_->NotifyBeginMainFrameStarted(main_thread_start_time); 193 scheduler_->NotifyBeginMainFrameStarted(main_thread_start_time);
195 scheduler_->BeginMainFrameAborted(reason); 194 scheduler_->BeginMainFrameAborted(reason);
196 } 195 }
197 196
198 void ProxyImpl::FinishAllRenderingOnImpl(CompletionEvent* completion) { 197 void ProxyImpl::FinishAllRenderingOnImpl(CompletionEvent* completion) {
199 TRACE_EVENT0("cc", "ProxyImpl::FinishAllRenderingOnImplThread"); 198 TRACE_EVENT0("cc", "ProxyImpl::FinishAllRenderingOnImplThread");
200 DCHECK(IsImplThread()); 199 DCHECK(IsImplThread());
201 layer_tree_host_impl_->FinishAllRendering(); 200 layer_tree_host_impl_->FinishAllRendering();
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 DCHECK(IsImplThread()); 448 DCHECK(IsImplThread());
450 449
451 if (next_commit_waits_for_activation_) { 450 if (next_commit_waits_for_activation_) {
452 TRACE_EVENT_INSTANT0("cc", "ReleaseCommitbyActivation", 451 TRACE_EVENT_INSTANT0("cc", "ReleaseCommitbyActivation",
453 TRACE_EVENT_SCOPE_THREAD); 452 TRACE_EVENT_SCOPE_THREAD);
454 DCHECK(commit_completion_event_); 453 DCHECK(commit_completion_event_);
455 commit_completion_event_->Signal(); 454 commit_completion_event_->Signal();
456 commit_completion_event_ = nullptr; 455 commit_completion_event_ = nullptr;
457 next_commit_waits_for_activation_ = false; 456 next_commit_waits_for_activation_ = false;
458 } 457 }
459
460 last_processed_begin_main_frame_args_ = last_begin_main_frame_args_;
461 } 458 }
462 459
463 void ProxyImpl::WillPrepareTiles() { 460 void ProxyImpl::WillPrepareTiles() {
464 DCHECK(IsImplThread()); 461 DCHECK(IsImplThread());
465 scheduler_->WillPrepareTiles(); 462 scheduler_->WillPrepareTiles();
466 } 463 }
467 464
468 void ProxyImpl::DidPrepareTiles() { 465 void ProxyImpl::DidPrepareTiles() {
469 DCHECK(IsImplThread()); 466 DCHECK(IsImplThread());
470 scheduler_->DidPrepareTiles(); 467 scheduler_->DidPrepareTiles();
471 } 468 }
472 469
473 void ProxyImpl::DidCompletePageScaleAnimationOnImplThread() { 470 void ProxyImpl::DidCompletePageScaleAnimationOnImplThread() {
474 DCHECK(IsImplThread()); 471 DCHECK(IsImplThread());
475 channel_impl_->DidCompletePageScaleAnimation(); 472 channel_impl_->DidCompletePageScaleAnimation();
476 } 473 }
477 474
478 void ProxyImpl::OnDrawForOutputSurface(bool resourceless_software_draw) { 475 void ProxyImpl::OnDrawForOutputSurface(bool resourceless_software_draw) {
479 DCHECK(IsImplThread()); 476 DCHECK(IsImplThread());
480 scheduler_->OnDrawForOutputSurface(resourceless_software_draw); 477 scheduler_->OnDrawForOutputSurface(resourceless_software_draw);
481 } 478 }
482 479
483 void ProxyImpl::PostFrameTimingEventsOnImplThread(
484 std::unique_ptr<FrameTimingTracker::CompositeTimingSet> composite_events,
485 std::unique_ptr<FrameTimingTracker::MainFrameTimingSet> main_frame_events) {
486 DCHECK(IsImplThread());
487 channel_impl_->PostFrameTimingEventsOnMain(std::move(composite_events),
488 std::move(main_frame_events));
489 }
490
491 void ProxyImpl::WillBeginImplFrame(const BeginFrameArgs& args) { 480 void ProxyImpl::WillBeginImplFrame(const BeginFrameArgs& args) {
492 DCHECK(IsImplThread()); 481 DCHECK(IsImplThread());
493 layer_tree_host_impl_->WillBeginImplFrame(args); 482 layer_tree_host_impl_->WillBeginImplFrame(args);
494 if (last_processed_begin_main_frame_args_.IsValid()) {
495 // Last processed begin main frame args records the frame args that we sent
496 // to the main thread for the last frame that we've processed. If that is
497 // set, that means the current frame is one past the frame in which we've
498 // finished the processing.
499 layer_tree_host_impl_->RecordMainFrameTiming(
500 last_processed_begin_main_frame_args_, args);
501 last_processed_begin_main_frame_args_ = BeginFrameArgs();
502 }
503 } 483 }
504 484
505 void ProxyImpl::DidFinishImplFrame() { 485 void ProxyImpl::DidFinishImplFrame() {
506 DCHECK(IsImplThread()); 486 DCHECK(IsImplThread());
507 layer_tree_host_impl_->DidFinishImplFrame(); 487 layer_tree_host_impl_->DidFinishImplFrame();
508 } 488 }
509 489
510 void ProxyImpl::ScheduledActionSendBeginMainFrame(const BeginFrameArgs& args) { 490 void ProxyImpl::ScheduledActionSendBeginMainFrame(const BeginFrameArgs& args) {
511 DCHECK(IsImplThread()); 491 DCHECK(IsImplThread());
512 unsigned int begin_frame_id = nextBeginFrameId++; 492 unsigned int begin_frame_id = nextBeginFrameId++;
513 benchmark_instrumentation::ScopedBeginFrameTask begin_frame_task( 493 benchmark_instrumentation::ScopedBeginFrameTask begin_frame_task(
514 benchmark_instrumentation::kSendBeginFrame, begin_frame_id); 494 benchmark_instrumentation::kSendBeginFrame, begin_frame_id);
515 std::unique_ptr<BeginMainFrameAndCommitState> begin_main_frame_state( 495 std::unique_ptr<BeginMainFrameAndCommitState> begin_main_frame_state(
516 new BeginMainFrameAndCommitState); 496 new BeginMainFrameAndCommitState);
517 begin_main_frame_state->begin_frame_id = begin_frame_id; 497 begin_main_frame_state->begin_frame_id = begin_frame_id;
518 begin_main_frame_state->begin_frame_args = args; 498 begin_main_frame_state->begin_frame_args = args;
519 begin_main_frame_state->begin_frame_callbacks = 499 begin_main_frame_state->begin_frame_callbacks =
520 layer_tree_host_impl_->ProcessLayerTreeMutations(); 500 layer_tree_host_impl_->ProcessLayerTreeMutations();
521 begin_main_frame_state->scroll_info = 501 begin_main_frame_state->scroll_info =
522 layer_tree_host_impl_->ProcessScrollDeltas(); 502 layer_tree_host_impl_->ProcessScrollDeltas();
523 begin_main_frame_state->memory_allocation_limit_bytes = 503 begin_main_frame_state->memory_allocation_limit_bytes =
524 layer_tree_host_impl_->memory_allocation_limit_bytes(); 504 layer_tree_host_impl_->memory_allocation_limit_bytes();
525 begin_main_frame_state->evicted_ui_resources = 505 begin_main_frame_state->evicted_ui_resources =
526 layer_tree_host_impl_->EvictedUIResourcesExist(); 506 layer_tree_host_impl_->EvictedUIResourcesExist();
527 // TODO(vmpstr): This needs to be fixed if
528 // main_frame_before_activation_enabled is set, since we might run this code
529 // twice before recording a duration. crbug.com/469824
530 last_begin_main_frame_args_ = begin_main_frame_state->begin_frame_args;
531 channel_impl_->BeginMainFrame(std::move(begin_main_frame_state)); 507 channel_impl_->BeginMainFrame(std::move(begin_main_frame_state));
532 devtools_instrumentation::DidRequestMainThreadFrame(layer_tree_host_id_); 508 devtools_instrumentation::DidRequestMainThreadFrame(layer_tree_host_id_);
533 } 509 }
534 510
535 DrawResult ProxyImpl::ScheduledActionDrawAndSwapIfPossible() { 511 DrawResult ProxyImpl::ScheduledActionDrawAndSwapIfPossible() {
536 TRACE_EVENT0("cc", "ProxyImpl::ScheduledActionDrawAndSwap"); 512 TRACE_EVENT0("cc", "ProxyImpl::ScheduledActionDrawAndSwap");
537 DCHECK(IsImplThread()); 513 DCHECK(IsImplThread());
538 514
539 // SchedulerStateMachine::DidDrawIfPossibleCompleted isn't set up to 515 // SchedulerStateMachine::DidDrawIfPossibleCompleted isn't set up to
540 // handle DRAW_ABORTED_CANT_DRAW. Moreover, the scheduler should 516 // handle DRAW_ABORTED_CANT_DRAW. Moreover, the scheduler should
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
686 bool ProxyImpl::IsMainThreadBlocked() const { 662 bool ProxyImpl::IsMainThreadBlocked() const {
687 return task_runner_provider_->IsMainThreadBlocked(); 663 return task_runner_provider_->IsMainThreadBlocked();
688 } 664 }
689 665
690 ProxyImpl::BlockedMainCommitOnly& ProxyImpl::blocked_main_commit() { 666 ProxyImpl::BlockedMainCommitOnly& ProxyImpl::blocked_main_commit() {
691 DCHECK(IsMainThreadBlocked() && commit_completion_event_); 667 DCHECK(IsMainThreadBlocked() && commit_completion_event_);
692 return main_thread_blocked_commit_vars_unsafe_; 668 return main_thread_blocked_commit_vars_unsafe_;
693 } 669 }
694 670
695 } // namespace cc 671 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/proxy_impl.h ('k') | cc/trees/proxy_main.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698