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

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

Issue 2409923002: cc: Rename SwapBuffers on CompositorFrameSink to SubmitCompositorFrame (Closed)
Patch Set: swap-to-submit: rebase Created 4 years, 2 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 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 void ProxyImpl::SetBeginFrameSource(BeginFrameSource* source) { 261 void ProxyImpl::SetBeginFrameSource(BeginFrameSource* source) {
262 // During shutdown, destroying the CompositorFrameSink may unset the 262 // During shutdown, destroying the CompositorFrameSink may unset the
263 // BeginFrameSource. 263 // BeginFrameSource.
264 if (scheduler_) { 264 if (scheduler_) {
265 // TODO(enne): this overrides any preexisting begin frame source. Those 265 // TODO(enne): this overrides any preexisting begin frame source. Those
266 // other sources will eventually be removed and this will be the only path. 266 // other sources will eventually be removed and this will be the only path.
267 scheduler_->SetBeginFrameSource(source); 267 scheduler_->SetBeginFrameSource(source);
268 } 268 }
269 } 269 }
270 270
271 void ProxyImpl::DidSwapBuffersCompleteOnImplThread() { 271 void ProxyImpl::DidReceiveCompositorFrameAckOnImplThread() {
272 TRACE_EVENT0("cc,benchmark", "ProxyImpl::DidSwapBuffersCompleteOnImplThread"); 272 TRACE_EVENT0("cc,benchmark",
273 "ProxyImpl::DidReceiveCompositorFrameAckOnImplThread");
273 DCHECK(IsImplThread()); 274 DCHECK(IsImplThread());
274 scheduler_->DidSwapBuffersComplete(); 275 scheduler_->DidReceiveCompositorFrameAck();
275 channel_impl_->DidCompleteSwapBuffers(); 276 channel_impl_->DidReceiveCompositorFrameAck();
276 } 277 }
277 278
278 void ProxyImpl::OnCanDrawStateChanged(bool can_draw) { 279 void ProxyImpl::OnCanDrawStateChanged(bool can_draw) {
279 TRACE_EVENT1("cc", "ProxyImpl::OnCanDrawStateChanged", "can_draw", can_draw); 280 TRACE_EVENT1("cc", "ProxyImpl::OnCanDrawStateChanged", "can_draw", can_draw);
280 DCHECK(IsImplThread()); 281 DCHECK(IsImplThread());
281 scheduler_->SetCanDraw(can_draw); 282 scheduler_->SetCanDraw(can_draw);
282 } 283 }
283 284
284 void ProxyImpl::NotifyReadyToActivate() { 285 void ProxyImpl::NotifyReadyToActivate() {
285 TRACE_EVENT0("cc", "ProxyImpl::NotifyReadyToActivate"); 286 TRACE_EVENT0("cc", "ProxyImpl::NotifyReadyToActivate");
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 begin_main_frame_state->begin_frame_callbacks = 442 begin_main_frame_state->begin_frame_callbacks =
442 layer_tree_host_impl_->ProcessLayerTreeMutations(); 443 layer_tree_host_impl_->ProcessLayerTreeMutations();
443 begin_main_frame_state->scroll_info = 444 begin_main_frame_state->scroll_info =
444 layer_tree_host_impl_->ProcessScrollDeltas(); 445 layer_tree_host_impl_->ProcessScrollDeltas();
445 begin_main_frame_state->evicted_ui_resources = 446 begin_main_frame_state->evicted_ui_resources =
446 layer_tree_host_impl_->EvictedUIResourcesExist(); 447 layer_tree_host_impl_->EvictedUIResourcesExist();
447 channel_impl_->BeginMainFrame(std::move(begin_main_frame_state)); 448 channel_impl_->BeginMainFrame(std::move(begin_main_frame_state));
448 devtools_instrumentation::DidRequestMainThreadFrame(layer_tree_host_id_); 449 devtools_instrumentation::DidRequestMainThreadFrame(layer_tree_host_id_);
449 } 450 }
450 451
451 DrawResult ProxyImpl::ScheduledActionDrawAndSwapIfPossible() { 452 DrawResult ProxyImpl::ScheduledActionDrawIfPossible() {
452 TRACE_EVENT0("cc", "ProxyImpl::ScheduledActionDrawAndSwap"); 453 TRACE_EVENT0("cc", "ProxyImpl::ScheduledActionDraw");
453 DCHECK(IsImplThread()); 454 DCHECK(IsImplThread());
454 455
455 // SchedulerStateMachine::DidDrawIfPossibleCompleted isn't set up to 456 // The scheduler should never generate this call when it can't draw.
456 // handle DRAW_ABORTED_CANT_DRAW. Moreover, the scheduler should
457 // never generate this call when it can't draw.
458 DCHECK(layer_tree_host_impl_->CanDraw()); 457 DCHECK(layer_tree_host_impl_->CanDraw());
459 458
460 bool forced_draw = false; 459 bool forced_draw = false;
461 return DrawAndSwapInternal(forced_draw); 460 return DrawInternal(forced_draw);
462 } 461 }
463 462
464 DrawResult ProxyImpl::ScheduledActionDrawAndSwapForced() { 463 DrawResult ProxyImpl::ScheduledActionDrawForced() {
465 TRACE_EVENT0("cc", "ProxyImpl::ScheduledActionDrawAndSwapForced"); 464 TRACE_EVENT0("cc", "ProxyImpl::ScheduledActionDrawForced");
466 DCHECK(IsImplThread()); 465 DCHECK(IsImplThread());
467 bool forced_draw = true; 466 bool forced_draw = true;
468 return DrawAndSwapInternal(forced_draw); 467 return DrawInternal(forced_draw);
469 } 468 }
470 469
471 void ProxyImpl::ScheduledActionCommit() { 470 void ProxyImpl::ScheduledActionCommit() {
472 TRACE_EVENT0("cc", "ProxyImpl::ScheduledActionCommit"); 471 TRACE_EVENT0("cc", "ProxyImpl::ScheduledActionCommit");
473 DCHECK(IsImplThread()); 472 DCHECK(IsImplThread());
474 DCHECK(IsMainThreadBlocked()); 473 DCHECK(IsMainThreadBlocked());
475 DCHECK(commit_completion_event_); 474 DCHECK(commit_completion_event_);
476 475
477 layer_tree_host_impl_->BeginCommit(); 476 layer_tree_host_impl_->BeginCommit();
478 blocked_main_commit().layer_tree_host->FinishCommitOnImplThread( 477 blocked_main_commit().layer_tree_host->FinishCommitOnImplThread(
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
531 DCHECK(IsImplThread()); 530 DCHECK(IsImplThread());
532 DCHECK(layer_tree_host_impl_->compositor_frame_sink()); 531 DCHECK(layer_tree_host_impl_->compositor_frame_sink());
533 layer_tree_host_impl_->compositor_frame_sink()->Invalidate(); 532 layer_tree_host_impl_->compositor_frame_sink()->Invalidate();
534 } 533 }
535 534
536 void ProxyImpl::SendBeginMainFrameNotExpectedSoon() { 535 void ProxyImpl::SendBeginMainFrameNotExpectedSoon() {
537 DCHECK(IsImplThread()); 536 DCHECK(IsImplThread());
538 channel_impl_->BeginMainFrameNotExpectedSoon(); 537 channel_impl_->BeginMainFrameNotExpectedSoon();
539 } 538 }
540 539
541 DrawResult ProxyImpl::DrawAndSwapInternal(bool forced_draw) { 540 DrawResult ProxyImpl::DrawInternal(bool forced_draw) {
542 TRACE_EVENT_SYNTHETIC_DELAY("cc.DrawAndSwap"); 541 TRACE_EVENT_SYNTHETIC_DELAY("cc.Draw");
543 542
544 DCHECK(IsImplThread()); 543 DCHECK(IsImplThread());
545 DCHECK(layer_tree_host_impl_.get()); 544 DCHECK(layer_tree_host_impl_.get());
546 545
547 base::AutoReset<bool> mark_inside(&inside_draw_, true); 546 base::AutoReset<bool> mark_inside(&inside_draw_, true);
548 547
549 if (layer_tree_host_impl_->pending_tree()) { 548 if (layer_tree_host_impl_->pending_tree()) {
550 bool update_lcd_text = false; 549 bool update_lcd_text = false;
551 layer_tree_host_impl_->pending_tree()->UpdateDrawProperties( 550 layer_tree_host_impl_->pending_tree()->UpdateDrawProperties(
552 update_lcd_text); 551 update_lcd_text);
(...skipping 16 matching lines...) Expand all
569 DrawResult result; 568 DrawResult result;
570 if (layer_tree_host_impl_->CanDraw()) { 569 if (layer_tree_host_impl_->CanDraw()) {
571 result = layer_tree_host_impl_->PrepareToDraw(&frame); 570 result = layer_tree_host_impl_->PrepareToDraw(&frame);
572 draw_frame = forced_draw || result == DRAW_SUCCESS; 571 draw_frame = forced_draw || result == DRAW_SUCCESS;
573 } else { 572 } else {
574 result = DRAW_ABORTED_CANT_DRAW; 573 result = DRAW_ABORTED_CANT_DRAW;
575 } 574 }
576 575
577 if (draw_frame) { 576 if (draw_frame) {
578 if (layer_tree_host_impl_->DrawLayers(&frame)) 577 if (layer_tree_host_impl_->DrawLayers(&frame))
579 scheduler_->DidSwapBuffers(); 578 // Drawing implies we submitted a frame to the CompositorFrameSink.
579 scheduler_->DidSubmitCompositorFrame();
580 result = DRAW_SUCCESS; 580 result = DRAW_SUCCESS;
581 } else { 581 } else {
582 DCHECK_NE(DRAW_SUCCESS, result); 582 DCHECK_NE(DRAW_SUCCESS, result);
583 } 583 }
584 584
585 layer_tree_host_impl_->DidDrawAllLayers(frame); 585 layer_tree_host_impl_->DidDrawAllLayers(frame);
586 586
587 bool start_ready_animations = draw_frame; 587 bool start_ready_animations = draw_frame;
588 layer_tree_host_impl_->UpdateAnimationState(start_ready_animations); 588 layer_tree_host_impl_->UpdateAnimationState(start_ready_animations);
589 589
(...skipping 14 matching lines...) Expand all
604 bool ProxyImpl::IsMainThreadBlocked() const { 604 bool ProxyImpl::IsMainThreadBlocked() const {
605 return task_runner_provider_->IsMainThreadBlocked(); 605 return task_runner_provider_->IsMainThreadBlocked();
606 } 606 }
607 607
608 ProxyImpl::BlockedMainCommitOnly& ProxyImpl::blocked_main_commit() { 608 ProxyImpl::BlockedMainCommitOnly& ProxyImpl::blocked_main_commit() {
609 DCHECK(IsMainThreadBlocked() && commit_completion_event_); 609 DCHECK(IsMainThreadBlocked() && commit_completion_event_);
610 return main_thread_blocked_commit_vars_unsafe_; 610 return main_thread_blocked_commit_vars_unsafe_;
611 } 611 }
612 612
613 } // namespace cc 613 } // 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