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

Unified Diff: cc/layer_tree_host.cc

Issue 10690168: Aura: Resize locks with --ui-enable-threaded-compositing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Defer commits and rebase. Created 8 years, 2 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/layer_tree_host.cc
diff --git a/cc/layer_tree_host.cc b/cc/layer_tree_host.cc
index ebc998ed856ed26077d979a67eb4c0e403b75039..1323ce7d97f2a41c101bb1eee2dbfb214dbbaa7b 100644
--- a/cc/layer_tree_host.cc
+++ b/cc/layer_tree_host.cc
@@ -110,6 +110,7 @@ LayerTreeHost::LayerTreeHost(LayerTreeHostClient* client, const LayerTreeSetting
, m_backgroundColor(SK_ColorWHITE)
, m_hasTransparentBackground(false)
, m_partialTextureUpdateRequests(0)
+ , m_deferCommits(false)
jamesr 2012/10/23 17:50:44 There's no reason to shadow state here on LayerTre
jonathan.backer 2012/10/23 19:26:42 Done.
{
DCHECK(Proxy::isMainThread());
numLayerTreeInstances++;
@@ -330,6 +331,9 @@ void LayerTreeHost::didLoseContext()
bool LayerTreeHost::compositeAndReadback(void *pixels, const IntRect& rect)
{
+ // Clear any pending commits.
+ setDeferCommits(false);
jamesr 2012/10/23 17:50:44 This doesn't look right at all - what this will do
jonathan.backer 2012/10/23 19:26:42 We're more than happy to bail out of non-deferred
+
m_triggerIdleUpdates = false;
bool ret = m_proxy->compositeAndReadback(pixels, rect);
m_triggerIdleUpdates = true;
@@ -340,9 +344,27 @@ void LayerTreeHost::finishAllRendering()
{
if (!m_rendererInitialized)
return;
+
+ // Clear any pending commits.
+ setDeferCommits(false);
jamesr 2012/10/23 17:50:44 There are the same sorts of problems here as with
jonathan.backer 2012/10/23 19:26:42 'git gs' says no. Just doing it for completeness.
+
m_proxy->finishAllRendering();
}
+void LayerTreeHost::setDeferCommits(bool deferCommits)
+{
+ if (m_deferCommits == deferCommits)
+ return;
+ m_deferCommits = deferCommits;
+
+ if (deferCommits)
+ TRACE_EVENT_ASYNC_BEGIN0("cc", "LayerTreeHost::setDeferCommits", this);
+ else
+ TRACE_EVENT_ASYNC_END0("cc", "LayerTreeHost::setDeferCommits", this);
+
+ m_proxy->setDeferCommits(deferCommits);
+}
+
void LayerTreeHost::renderingStats(RenderingStats* stats) const
{
*stats = m_renderingStats;

Powered by Google App Engine
This is Rietveld 408576698