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

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

Issue 1044093005: Preliminary compositor disabling patch. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: remove renderpass calculation Created 5 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/damage_tracker.cc ('k') | content/browser/compositor/buffer_queue.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/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 672 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 DCHECK(CanDraw()); 683 DCHECK(CanDraw());
684 DCHECK(active_tree_->root_layer()); 684 DCHECK(active_tree_->root_layer());
685 685
686 TrackDamageForAllSurfaces(active_tree_->root_layer(), 686 TrackDamageForAllSurfaces(active_tree_->root_layer(),
687 *frame->render_surface_layer_list); 687 *frame->render_surface_layer_list);
688 688
689 // If the root render surface has no visible damage, then don't generate a 689 // If the root render surface has no visible damage, then don't generate a
690 // frame at all. 690 // frame at all.
691 RenderSurfaceImpl* root_surface = 691 RenderSurfaceImpl* root_surface =
692 active_tree_->root_layer()->render_surface(); 692 active_tree_->root_layer()->render_surface();
693 gfx::Rect damage_rect_with_overlays =
694 gfx::UnionRects(root_surface->damage_tracker()->current_damage_rect(),
695 root_surface->damage_tracker()->current_overlay_rect());
693 bool root_surface_has_no_visible_damage = 696 bool root_surface_has_no_visible_damage =
694 !root_surface->damage_tracker()->current_damage_rect().Intersects( 697 !damage_rect_with_overlays.Intersects(root_surface->content_rect());
695 root_surface->content_rect()); 698 bool root_surface_has_no_contributing_layers =
696 bool root_surface_has_contributing_layers =
697 !root_surface->layer_list().empty(); 699 !root_surface->layer_list().empty();
698 bool hud_wants_to_draw_ = active_tree_->hud_layer() && 700 bool hud_wants_to_draw_ = active_tree_->hud_layer() &&
699 active_tree_->hud_layer()->IsAnimatingHUDContents(); 701 active_tree_->hud_layer()->IsAnimatingHUDContents();
700 if (root_surface_has_contributing_layers && 702 if (root_surface_has_no_contributing_layers &&
701 root_surface_has_no_visible_damage && 703 root_surface_has_no_visible_damage &&
702 active_tree_->LayersWithCopyOutputRequest().empty() && 704 active_tree_->LayersWithCopyOutputRequest().empty() &&
703 !output_surface_->capabilities().can_force_reclaim_resources && 705 !output_surface_->capabilities().can_force_reclaim_resources &&
704 !hud_wants_to_draw_) { 706 !hud_wants_to_draw_) {
705 TRACE_EVENT0("cc", 707 TRACE_EVENT0("cc",
706 "LayerTreeHostImpl::CalculateRenderPasses::EmptyDamageRect"); 708 "LayerTreeHostImpl::CalculateRenderPasses::EmptyDamageRect");
707 frame->has_no_damage = true; 709 frame->has_no_damage = true;
708 DCHECK(!output_surface_->capabilities() 710 DCHECK(!output_surface_->capabilities()
709 .draw_and_swap_full_viewport_every_frame); 711 .draw_and_swap_full_viewport_every_frame);
710 return DRAW_SUCCESS; 712 return DRAW_SUCCESS;
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
892 894
893 if (!active_tree_->has_transparent_background()) { 895 if (!active_tree_->has_transparent_background()) {
894 frame->render_passes.back()->has_transparent_background = false; 896 frame->render_passes.back()->has_transparent_background = false;
895 AppendQuadsToFillScreen( 897 AppendQuadsToFillScreen(
896 active_tree_->RootScrollLayerDeviceViewportBounds(), 898 active_tree_->RootScrollLayerDeviceViewportBounds(),
897 frame->render_passes.back(), active_tree_->root_layer(), 899 frame->render_passes.back(), active_tree_->root_layer(),
898 active_tree_->background_color(), unoccluded_screen_space_region); 900 active_tree_->background_color(), unoccluded_screen_space_region);
899 } 901 }
900 902
901 RemoveRenderPasses(CullRenderPassesWithNoQuads(), frame); 903 RemoveRenderPasses(CullRenderPassesWithNoQuads(), frame);
904
905 // Only the root render pass is allowed to have overlays, so we can merge
906 // in all quad damage for the other ones now.
907 for (size_t i = 0; i < frame->render_passes.size() - 1; ++i) {
908 RenderPass* pass = frame->render_passes.at(i);
909 pass->damage_rect.Union(pass->overlay_rect);
910 pass->overlay_rect = gfx::Rect();
911 }
912
902 renderer_->DecideRenderPassAllocationsForFrame(frame->render_passes); 913 renderer_->DecideRenderPassAllocationsForFrame(frame->render_passes);
903 914
904 // Any copy requests left in the tree are not going to get serviced, and 915 // Any copy requests left in the tree are not going to get serviced, and
905 // should be aborted. 916 // should be aborted.
906 ScopedPtrVector<CopyOutputRequest> requests_to_abort; 917 ScopedPtrVector<CopyOutputRequest> requests_to_abort;
907 while (!active_tree_->LayersWithCopyOutputRequest().empty()) { 918 while (!active_tree_->LayersWithCopyOutputRequest().empty()) {
908 LayerImpl* layer = active_tree_->LayersWithCopyOutputRequest().back(); 919 LayerImpl* layer = active_tree_->LayersWithCopyOutputRequest().back();
909 layer->TakeCopyRequestsAndTransformToTarget(&requests_to_abort); 920 layer->TakeCopyRequestsAndTransformToTarget(&requests_to_abort);
910 } 921 }
911 for (size_t i = 0; i < requests_to_abort.size(); ++i) 922 for (size_t i = 0; i < requests_to_abort.size(); ++i)
(...skipping 2555 matching lines...) Expand 10 before | Expand all | Expand 10 after
3467 new_target.SetToMin(layer_impl->MaxScrollOffset()); 3478 new_target.SetToMin(layer_impl->MaxScrollOffset());
3468 3479
3469 curve->UpdateTarget( 3480 curve->UpdateTarget(
3470 animation->TrimTimeToCurrentIteration(CurrentBeginFrameArgs().frame_time) 3481 animation->TrimTimeToCurrentIteration(CurrentBeginFrameArgs().frame_time)
3471 .InSecondsF(), 3482 .InSecondsF(),
3472 new_target); 3483 new_target);
3473 3484
3474 return true; 3485 return true;
3475 } 3486 }
3476 } // namespace cc 3487 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/damage_tracker.cc ('k') | content/browser/compositor/buffer_queue.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698