summaryrefslogtreecommitdiffstats
path: root/cc/surfaces
diff options
context:
space:
mode:
authorjbauman <jbauman@chromium.org>2015-04-17 19:22:07 -0700
committerCommit bot <commit-bot@chromium.org>2015-04-18 02:22:28 +0000
commit7d1228f6466c56bd6fe751b86419df256937d5a0 (patch)
tree216ade3aee04725c8beed07906a66daba95c73e5 /cc/surfaces
parent09b70b872a2ac5219de146e54d5614fde585569c (diff)
downloadchromium_src-7d1228f6466c56bd6fe751b86419df256937d5a0.zip
chromium_src-7d1228f6466c56bd6fe751b86419df256937d5a0.tar.gz
chromium_src-7d1228f6466c56bd6fe751b86419df256937d5a0.tar.bz2
Pass ResourceIdSet into ResourceProvider::DeclareUsedResourceFromChild.
Avoid constructing a temporary resource id set (in parent id space) by having the caller construct one (in child id space). Also get rid of Child::in_use_resources, as it's only used for DCHECKs. Also, switch ResourceIdSet to use base::hash_set, as that seems to have better performance. This improves performance on SurfaceAggregatorPerfTest.ManySurfacesTransparent by around 15 percent on x86. BUG=449319 Review URL: https://codereview.chromium.org/1084333002 Cr-Commit-Position: refs/heads/master@{#325763}
Diffstat (limited to 'cc/surfaces')
-rw-r--r--cc/surfaces/surface_aggregator.cc7
1 files changed, 3 insertions, 4 deletions
diff --git a/cc/surfaces/surface_aggregator.cc b/cc/surfaces/surface_aggregator.cc
index dd4a13b..627bc14 100644
--- a/cc/surfaces/surface_aggregator.cc
+++ b/cc/surfaces/surface_aggregator.cc
@@ -146,7 +146,7 @@ static ResourceProvider::ResourceId ResourceRemapHelper(
static ResourceProvider::ResourceId ValidateResourceHelper(
bool* invalid_frame,
const ResourceProvider::ResourceIdMap& child_to_parent_map,
- ResourceProvider::ResourceIdArray* resources_in_frame,
+ ResourceProvider::ResourceIdSet* resources_in_frame,
ResourceProvider::ResourceId id) {
ResourceProvider::ResourceIdMap::const_iterator it =
child_to_parent_map.find(id);
@@ -154,7 +154,7 @@ static ResourceProvider::ResourceId ValidateResourceHelper(
*invalid_frame = true;
return id;
}
- resources_in_frame->push_back(id);
+ resources_in_frame->insert(id);
return id;
}
@@ -169,8 +169,7 @@ bool SurfaceAggregator::ValidateResources(
surface->factory()->RefResources(frame_data->resource_list);
provider_->ReceiveFromChild(child_id, frame_data->resource_list);
- typedef ResourceProvider::ResourceIdArray IdArray;
- IdArray referenced_resources;
+ ResourceProvider::ResourceIdSet referenced_resources;
bool invalid_frame = false;
DrawQuad::ResourceIteratorCallback remap =