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

Unified Diff: cc/trees/layer_tree_host_common.cc

Issue 1231453002: Compute if a layer is clipped outside CalcDrawProps (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: DrawProperties is_clipped removed Created 5 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: cc/trees/layer_tree_host_common.cc
diff --git a/cc/trees/layer_tree_host_common.cc b/cc/trees/layer_tree_host_common.cc
index ffd16907d1b446d9a4e81d232ef2185f8d13b9ef..0df4d941769b1868f9a4d5f58e1bb84dc1cacff6 100644
--- a/cc/trees/layer_tree_host_common.cc
+++ b/cc/trees/layer_tree_host_common.cc
@@ -186,7 +186,7 @@ static void UpdateClipRectsForClipChild(
// Grab the cached values.
*clip_rect_in_parent_target_space = clip_parent->clip_rect();
- *subtree_should_be_clipped = clip_parent->is_clipped();
+ *subtree_should_be_clipped = clip_parent->is_clipped_from_property_tree();
// We may have to project the clip rect into our parent's target space. Note,
// it must be our parent's target space, not ours. For one, we haven't
@@ -261,7 +261,7 @@ void UpdateAccumulatedSurfaceState(
gfx::ToEnclosedRect(layer->render_surface()->DrawableContentRect());
}
- if (render_target->is_clipped()) {
+ if (render_target->is_clipped_from_property_tree()) {
gfx::Rect clip_rect = render_target->clip_rect();
// If the layer has a clip parent, the clip rect may be in the wrong space,
// so we'll need to transform it before it is applied.
@@ -2061,7 +2061,8 @@ static void CalculateDrawPropertiesInternal(
// reduce how much would be drawn, and instead it would create unnecessary
// changes to scissor state affecting GPU performance. Our clip information
// is used in the recursion below, so we must set it beforehand.
- layer_draw_properties.is_clipped = layer_or_ancestor_clips_descendants;
+ CHECK_EQ(layer_or_ancestor_clips_descendants,
+ layer->is_clipped_from_property_tree());
if (layer_or_ancestor_clips_descendants) {
layer_draw_properties.clip_rect = clip_rect_in_target_space;
} else {
@@ -2501,6 +2502,7 @@ void VerifyPropertyTreeValuesForLayer(LayerImpl* current_layer,
<< "expected: " << current_layer->draw_opacity()
<< " actual: " << DrawOpacityFromPropertyTrees(
current_layer, property_trees->opacity_tree);
+
Ian Vollick 2015/07/09 14:26:27 nit: spurious ws.
jaydasika 2015/07/09 15:11:49 Done.
const bool can_use_lcd_text_match =
CanUseLcdTextFromPropertyTrees(
current_layer, layers_always_allowed_lcd_text, can_use_lcd_text,
@@ -2555,12 +2557,6 @@ void CalculateDrawPropertiesAndVerify(LayerTreeHostCommon::CalcDrawPropsInputs<
"LayerTreeHostCommon::CalculateDrawProperties");
}
Ian Vollick 2015/07/09 14:26:27 This TRACE_EVENT_BEGIN0 and TRACE_EVENT_END0 here
jaydasika 2015/07/09 15:11:49 Done.
- std::vector<AccumulatedSurfaceState<LayerType>> accumulated_surface_state;
- CalculateDrawPropertiesInternal<LayerType>(
- inputs->root_layer, globals, data_for_recursion,
- inputs->render_surface_layer_list, &dummy_layer_list,
- &accumulated_surface_state, inputs->current_render_surface_layer_list_id);
-
if (should_measure_property_tree_performance) {
TRACE_EVENT_END0(TRACE_DISABLED_BY_DEFAULT("cc.debug.cdp-perf"),
"LayerTreeHostCommon::CalculateDrawProperties");
@@ -2608,9 +2604,16 @@ void CalculateDrawPropertiesAndVerify(LayerTreeHostCommon::CalcDrawPropsInputs<
break;
}
}
+ }
+ std::vector<AccumulatedSurfaceState<LayerType>> accumulated_surface_state;
+ CalculateDrawPropertiesInternal<LayerType>(
+ inputs->root_layer, globals, data_for_recursion,
+ inputs->render_surface_layer_list, &dummy_layer_list,
+ &accumulated_surface_state, inputs->current_render_surface_layer_list_id);
+
+ if (inputs->verify_property_trees)
VerifyPropertyTreeValues(inputs);
- }
// The dummy layer list should not have been used.
DCHECK_EQ(0u, dummy_layer_list.size());

Powered by Google App Engine
This is Rietveld 408576698