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

Side by Side Diff: cc/scheduler/scheduler_state_machine.cc

Issue 23686011: CC: Fix missing swap-used-incomplete-tile updates (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 7 years, 3 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/scheduler/scheduler_state_machine.h ('k') | cc/test/layer_tree_test.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 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/scheduler/scheduler_state_machine.h" 5 #include "cc/scheduler/scheduler_state_machine.h"
6 6
7 #include "base/format_macros.h" 7 #include "base/format_macros.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "base/values.h" 10 #include "base/values.h"
(...skipping 655 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 commit_state_ = COMMIT_STATE_IDLE; 666 commit_state_ = COMMIT_STATE_IDLE;
667 } 667 }
668 668
669 if (texture_state_ == LAYER_TEXTURE_STATE_ACQUIRED_BY_IMPL_THREAD) 669 if (texture_state_ == LAYER_TEXTURE_STATE_ACQUIRED_BY_IMPL_THREAD)
670 texture_state_ = LAYER_TEXTURE_STATE_UNLOCKED; 670 texture_state_ = LAYER_TEXTURE_STATE_UNLOCKED;
671 671
672 needs_redraw_ = false; 672 needs_redraw_ = false;
673 draw_if_possible_failed_ = false; 673 draw_if_possible_failed_ = false;
674 active_tree_needs_first_draw_ = false; 674 active_tree_needs_first_draw_ = false;
675 675
676 if (did_swap) { 676 if (did_swap)
677 swap_used_incomplete_tile_ = false;
678 last_frame_number_swap_performed_ = current_frame_number_; 677 last_frame_number_swap_performed_ = current_frame_number_;
679 }
680 } 678 }
681 679
682 void SchedulerStateMachine::SetMainThreadNeedsLayerTextures() { 680 void SchedulerStateMachine::SetMainThreadNeedsLayerTextures() {
683 DCHECK(!main_thread_needs_layer_textures_); 681 DCHECK(!main_thread_needs_layer_textures_);
684 DCHECK_NE(texture_state_, LAYER_TEXTURE_STATE_ACQUIRED_BY_MAIN_THREAD); 682 DCHECK_NE(texture_state_, LAYER_TEXTURE_STATE_ACQUIRED_BY_MAIN_THREAD);
685 main_thread_needs_layer_textures_ = true; 683 main_thread_needs_layer_textures_ = true;
686 } 684 }
687 685
688 // These are the cases where we definitely (or almost definitely) have a 686 // These are the cases where we definitely (or almost definitely) have a
689 // new frame to draw and can draw. 687 // new frame to draw and can draw.
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 } 750 }
753 751
754 void SchedulerStateMachine::DidLeaveBeginFrame() { 752 void SchedulerStateMachine::DidLeaveBeginFrame() {
755 inside_begin_frame_ = false; 753 inside_begin_frame_ = false;
756 } 754 }
757 755
758 void SchedulerStateMachine::SetVisible(bool visible) { visible_ = visible; } 756 void SchedulerStateMachine::SetVisible(bool visible) { visible_ = visible; }
759 757
760 void SchedulerStateMachine::SetNeedsRedraw() { needs_redraw_ = true; } 758 void SchedulerStateMachine::SetNeedsRedraw() { needs_redraw_ = true; }
761 759
762 void SchedulerStateMachine::DidSwapUseIncompleteTile() { 760 void SchedulerStateMachine::SetSwapUsedIncompleteTile(
763 swap_used_incomplete_tile_ = true; 761 bool used_incomplete_tile) {
762 swap_used_incomplete_tile_ = used_incomplete_tile;
764 } 763 }
765 764
766 void SchedulerStateMachine::DidDrawIfPossibleCompleted(bool success) { 765 void SchedulerStateMachine::DidDrawIfPossibleCompleted(bool success) {
767 draw_if_possible_failed_ = !success; 766 draw_if_possible_failed_ = !success;
768 if (draw_if_possible_failed_) { 767 if (draw_if_possible_failed_) {
769 needs_redraw_ = true; 768 needs_redraw_ = true;
770 needs_commit_ = true; 769 needs_commit_ = true;
771 consecutive_failed_draws_++; 770 consecutive_failed_draws_++;
772 if (settings_.timeout_and_draw_when_animation_checkerboards && 771 if (settings_.timeout_and_draw_when_animation_checkerboards &&
773 consecutive_failed_draws_ >= 772 consecutive_failed_draws_ >=
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
858 case OUTPUT_SURFACE_ACTIVE: 857 case OUTPUT_SURFACE_ACTIVE:
859 case OUTPUT_SURFACE_WAITING_FOR_FIRST_COMMIT: 858 case OUTPUT_SURFACE_WAITING_FOR_FIRST_COMMIT:
860 case OUTPUT_SURFACE_WAITING_FOR_FIRST_ACTIVATION: 859 case OUTPUT_SURFACE_WAITING_FOR_FIRST_ACTIVATION:
861 return true; 860 return true;
862 } 861 }
863 NOTREACHED(); 862 NOTREACHED();
864 return false; 863 return false;
865 } 864 }
866 865
867 } // namespace cc 866 } // namespace cc
OLDNEW
« no previous file with comments | « cc/scheduler/scheduler_state_machine.h ('k') | cc/test/layer_tree_test.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698