diff options
author | ccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-30 05:21:14 +0000 |
---|---|---|
committer | ccameron@chromium.org <ccameron@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-11-30 05:21:14 +0000 |
commit | 9fa7d38937304e85e1cd2d477ad56539e519edf4 (patch) | |
tree | 60e7382741ab4770e0925f642d788aebe8ee8b8a /cc/tiled_layer_unittest.cc | |
parent | 8d3b636ac2dea51a6c09dfbf3e467f118eff7d4e (diff) | |
download | chromium_src-9fa7d38937304e85e1cd2d477ad56539e519edf4.zip chromium_src-9fa7d38937304e85e1cd2d477ad56539e519edf4.tar.gz chromium_src-9fa7d38937304e85e1cd2d477ad56539e519edf4.tar.bz2 |
Use a mutex to deal with concurrent access to the m_evictedBackings
list, instead of passing the list of pointers around.
In ThreadProxy::beginFrame, we unlink all evicted textures, so that
the call to updateLayers will know to re-paint the evicted layers.
In ThreadProxy::scheduleActionCommit, we determine if we can draw now
by checking to see if there exist any linked evicted textures. If there
are none, we can draw what we are in the process of committing.
This assumes that once we get to m_layerTreeHost->willBeginFrame()
in ThreadProxy::beginFrame, the next frame to be commited by
ThreadProxy::scheduleActionCommit be at or after the frame that is
being produced by that call to ThreadProxy::beginFrame.
BUG=158747
Review URL: https://chromiumcodereview.appspot.com/11411251
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170403 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/tiled_layer_unittest.cc')
-rw-r--r-- | cc/tiled_layer_unittest.cc | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/cc/tiled_layer_unittest.cc b/cc/tiled_layer_unittest.cc index 52c4bea..b1336c8 100644 --- a/cc/tiled_layer_unittest.cc +++ b/cc/tiled_layer_unittest.cc @@ -94,9 +94,12 @@ public: }; void resourceManagerClearAllMemory(PrioritizedResourceManager* resourceManager, ResourceProvider* resourceProvider) { - DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked(m_proxy); - resourceManager->clearAllMemory(resourceProvider); - resourceManager->reduceMemory(resourceProvider); + { + DebugScopedSetImplThreadAndMainThreadBlocked implThreadAndMainThreadBlocked(m_proxy); + resourceManager->clearAllMemory(resourceProvider); + resourceManager->reduceMemory(resourceProvider); + } + resourceManager->unlinkAndClearEvictedBackings(); } void updateTextures() { |