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

Unified Diff: cc/quads/render_pass.cc

Issue 2873593002: Force use of and cache render surface. (Closed)
Patch Set: Calculate damage of |force_render_surface|. Created 3 years, 7 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/quads/render_pass.cc
diff --git a/cc/quads/render_pass.cc b/cc/quads/render_pass.cc
index de49a226a22219eec482bce284fd3d18c67bd86a..034ebc270639564f25f38114f6d7bbb9e4a9d15f 100644
--- a/cc/quads/render_pass.cc
+++ b/cc/quads/render_pass.cc
@@ -71,6 +71,9 @@ RenderPass::RenderPass()
// is a good hint for what to reserve here.
RenderPass::RenderPass(size_t num_layers)
: has_transparent_background(true),
+ force_render_surface(false),
+ has_property_change_on_contributing_render_surface(false),
+ has_damage_on_surface_quad(false),
quad_list(kDefaultNumQuadsToReserve),
shared_quad_state_list(ALIGNOF(SharedQuadState),
sizeof(SharedQuadState),
@@ -79,6 +82,9 @@ RenderPass::RenderPass(size_t num_layers)
RenderPass::RenderPass(size_t shared_quad_state_list_size,
size_t quad_list_size)
: has_transparent_background(true),
+ force_render_surface(false),
+ has_property_change_on_contributing_render_surface(false),
+ has_damage_on_surface_quad(false),
quad_list(quad_list_size),
shared_quad_state_list(ALIGNOF(SharedQuadState),
sizeof(SharedQuadState),
@@ -95,7 +101,9 @@ std::unique_ptr<RenderPass> RenderPass::Copy(int new_id) const {
Create(shared_quad_state_list.size(), quad_list.size()));
copy_pass->SetAll(new_id, output_rect, damage_rect, transform_to_root_target,
filters, background_filters, color_space,
- has_transparent_background);
+ has_transparent_background, force_render_surface,
+ has_property_change_on_contributing_render_surface,
+ has_damage_on_surface_quad);
return copy_pass;
}
@@ -108,7 +116,9 @@ std::unique_ptr<RenderPass> RenderPass::DeepCopy() const {
Create(shared_quad_state_list.size(), quad_list.size()));
copy_pass->SetAll(id, output_rect, damage_rect, transform_to_root_target,
filters, background_filters, color_space,
- has_transparent_background);
+ has_transparent_background, force_render_surface,
+ has_property_change_on_contributing_render_surface,
+ has_damage_on_surface_quad);
for (auto* shared_quad_state : shared_quad_state_list) {
SharedQuadState* copy_shared_quad_state =
copy_pass->CreateAndAppendSharedQuadState();
@@ -171,7 +181,10 @@ void RenderPass::SetAll(int id,
const FilterOperations& filters,
const FilterOperations& background_filters,
const gfx::ColorSpace& color_space,
- bool has_transparent_background) {
+ bool has_transparent_background,
+ bool force_render_surface,
+ bool has_property_change_on_contributing_render_surface,
+ bool has_damage_on_surface_quad) {
DCHECK(id);
this->id = id;
@@ -182,6 +195,10 @@ void RenderPass::SetAll(int id,
this->background_filters = background_filters;
this->color_space = color_space;
this->has_transparent_background = has_transparent_background;
+ this->force_render_surface = force_render_surface;
+ this->has_property_change_on_contributing_render_surface =
+ has_property_change_on_contributing_render_surface;
+ this->has_damage_on_surface_quad = has_damage_on_surface_quad;
DCHECK(quad_list.empty());
DCHECK(shared_quad_state_list.empty());
@@ -192,6 +209,10 @@ void RenderPass::AsValueInto(base::trace_event::TracedValue* value) const {
MathUtil::AddToTracedValue("damage_rect", damage_rect, value);
value->SetBoolean("has_transparent_background", has_transparent_background);
+ value->SetBoolean("force_render_surface", force_render_surface);
+ value->SetBoolean("has_property_change_on_contributing_render_surface",
+ has_property_change_on_contributing_render_surface);
+ value->SetBoolean("has_damage_on_surface_quad", has_damage_on_surface_quad);
value->SetInteger("copy_requests",
base::saturated_cast<int>(copy_requests.size()));

Powered by Google App Engine
This is Rietveld 408576698