diff options
author | jbauman <jbauman@chromium.org> | 2015-04-17 19:22:07 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-04-18 02:22:28 +0000 |
commit | 7d1228f6466c56bd6fe751b86419df256937d5a0 (patch) | |
tree | 216ade3aee04725c8beed07906a66daba95c73e5 /cc/surfaces | |
parent | 09b70b872a2ac5219de146e54d5614fde585569c (diff) | |
download | chromium_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.cc | 7 |
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 = |