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

Unified Diff: cc/surfaces/surface_aggregator.h

Issue 2873593002: Force use of and cache render surface. (Closed)
Patch Set: Fix compile error. Created 3 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/surfaces/surface_aggregator.h
diff --git a/cc/surfaces/surface_aggregator.h b/cc/surfaces/surface_aggregator.h
index fc712845ad6ba5d6566fab09ff412d5e05772043..d5d9f1db56443d24809dd8add86cd6a78d2bc378 100644
--- a/cc/surfaces/surface_aggregator.h
+++ b/cc/surfaces/surface_aggregator.h
@@ -132,7 +132,7 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
// child surfaces.
void ProcessAddedAndRemovedSurfaces();
- void PropagateCopyRequestPasses();
+ void PropagatePasses(base::flat_set<RenderPassId>* passes);
int ChildIdForSurface(Surface* surface);
gfx::Rect DamageRectForSurface(const Surface* surface,
@@ -186,6 +186,8 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
// This is the pass list for the aggregated frame.
RenderPassList* dest_pass_list_;
+ // This maps pass id to itself.
+ base::flat_map<RenderPassId, RenderPass*> passes_id_map;
vmpstr 2017/07/13 18:01:03 nit: id_to_render_pass_map_
wutao 2017/07/14 00:02:53 Done.
// This is the set of aggregated pass ids that are affected by filters that
// move pixels.
@@ -195,6 +197,11 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
// should not have their damage rects clipped to the root damage rect.
base::flat_set<RenderPassId> copy_request_passes_;
+ // This is the set of aggregated pass ids that are drawn by force render
+ // surface, so should not have their damage rects clipped to the root damage
+ // rect.
+ base::flat_set<RenderPassId> cache_render_surface_passes_;
vmpstr 2017/07/13 18:01:03 nit: cached
wutao 2017/07/14 00:02:53 Done.
+
// This maps each aggregated pass id to the set of (aggregated) pass ids
// that its RenderPassDrawQuads depend on
base::flat_map<RenderPassId, base::flat_set<RenderPassId>>
@@ -207,6 +214,10 @@ class CC_SURFACES_EXPORT SurfaceAggregator {
// This is valid during Aggregate after PrewalkTree is called.
bool has_copy_requests_;
+ // True if the frame that's currently being aggregated has force render
+ // surface. This is valid during Aggregate after PrewalkTree is called.
+ bool has_cache_render_surfaces_;
vmpstr 2017/07/13 18:01:03 nit: cached
wutao 2017/07/14 00:02:53 Done.
+
// Tracks UMA stats for SurfaceDrawQuads during a call to Aggregate().
SurfaceDrawQuadUmaStats uma_stats_;

Powered by Google App Engine
This is Rietveld 408576698