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

Side by Side Diff: cc/thread_proxy.cc

Issue 10690168: Aura: Resize locks with --ui-enable-threaded-compositing (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address jamesr@ comments. 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "config.h" 5 #include "config.h"
6 6
7 #include "cc/thread_proxy.h" 7 #include "cc/thread_proxy.h"
8 8
9 #include "CCDelayBasedTimeSource.h" 9 #include "CCDelayBasedTimeSource.h"
10 #include "CCDrawQuad.h" 10 #include "CCDrawQuad.h"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 , m_texturesAcquired(true) 46 , m_texturesAcquired(true)
47 , m_inCompositeAndReadback(false) 47 , m_inCompositeAndReadback(false)
48 , m_mainThreadProxy(ScopedThreadProxy::create(Proxy::mainThread())) 48 , m_mainThreadProxy(ScopedThreadProxy::create(Proxy::mainThread()))
49 , m_beginFrameCompletionEventOnImplThread(0) 49 , m_beginFrameCompletionEventOnImplThread(0)
50 , m_readbackRequestOnImplThread(0) 50 , m_readbackRequestOnImplThread(0)
51 , m_commitCompletionEventOnImplThread(0) 51 , m_commitCompletionEventOnImplThread(0)
52 , m_textureAcquisitionCompletionEventOnImplThread(0) 52 , m_textureAcquisitionCompletionEventOnImplThread(0)
53 , m_nextFrameIsNewlyCommittedFrameOnImplThread(false) 53 , m_nextFrameIsNewlyCommittedFrameOnImplThread(false)
54 , m_renderVSyncEnabled(layerTreeHost->settings().renderVSyncEnabled) 54 , m_renderVSyncEnabled(layerTreeHost->settings().renderVSyncEnabled)
55 , m_totalCommitCount(0) 55 , m_totalCommitCount(0)
56 , m_deferCommits(false)
56 { 57 {
57 TRACE_EVENT0("cc", "ThreadProxy::ThreadProxy"); 58 TRACE_EVENT0("cc", "ThreadProxy::ThreadProxy");
58 DCHECK(isMainThread()); 59 DCHECK(isMainThread());
59 } 60 }
60 61
61 ThreadProxy::~ThreadProxy() 62 ThreadProxy::~ThreadProxy()
62 { 63 {
63 TRACE_EVENT0("cc", "ThreadProxy::~ThreadProxy"); 64 TRACE_EVENT0("cc", "ThreadProxy::~ThreadProxy");
64 DCHECK(isMainThread()); 65 DCHECK(isMainThread());
65 DCHECK(!m_started); 66 DCHECK(!m_started);
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 } 367 }
367 368
368 void ThreadProxy::setNeedsRedraw() 369 void ThreadProxy::setNeedsRedraw()
369 { 370 {
370 DCHECK(isMainThread()); 371 DCHECK(isMainThread());
371 TRACE_EVENT0("cc", "ThreadProxy::setNeedsRedraw"); 372 TRACE_EVENT0("cc", "ThreadProxy::setNeedsRedraw");
372 Proxy::implThread()->postTask(createThreadTask(this, &ThreadProxy::setFullRo otLayerDamageOnImplThread)); 373 Proxy::implThread()->postTask(createThreadTask(this, &ThreadProxy::setFullRo otLayerDamageOnImplThread));
373 Proxy::implThread()->postTask(createThreadTask(this, &ThreadProxy::setNeedsR edrawOnImplThread)); 374 Proxy::implThread()->postTask(createThreadTask(this, &ThreadProxy::setNeedsR edrawOnImplThread));
374 } 375 }
375 376
377 void ThreadProxy::setDeferCommits(bool deferCommits)
378 {
379 DCHECK(isMainThread());
380 if (m_deferCommits == deferCommits)
jamesr 2012/10/23 21:24:34 redundant calls would probably be a caller error a
jonathan.backer 2012/10/24 16:42:14 Done. Good idea. Let's not make this recursive (I
381 return;
382 m_deferCommits = deferCommits;
383
384 if (m_deferCommits)
385 TRACE_EVENT_ASYNC_BEGIN0("cc", "ThreadProxy::setDeferCommits", this);
386 else
387 TRACE_EVENT_ASYNC_END0("cc", "ThreadProxy::setDeferCommits", this);
388
389 if (!m_deferCommits && m_pendingBeginFrameRequest)
390 m_mainThreadProxy->postTask(createThreadTask(this, &ThreadProxy::beginFr ame));
391 }
392
393 bool ThreadProxy::deferCommits() const
394 {
395 DCHECK(isMainThread());
396 return m_deferCommits;
397 }
398
376 bool ThreadProxy::commitRequested() const 399 bool ThreadProxy::commitRequested() const
377 { 400 {
378 DCHECK(isMainThread()); 401 DCHECK(isMainThread());
379 return m_commitRequested; 402 return m_commitRequested;
380 } 403 }
381 404
382 void ThreadProxy::setNeedsRedrawOnImplThread() 405 void ThreadProxy::setNeedsRedrawOnImplThread()
383 { 406 {
384 DCHECK(isImplThread()); 407 DCHECK(isImplThread());
385 TRACE_EVENT0("cc", "ThreadProxy::setNeedsRedrawOnImplThread"); 408 TRACE_EVENT0("cc", "ThreadProxy::setNeedsRedrawOnImplThread");
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 } 503 }
481 } 504 }
482 505
483 void ThreadProxy::beginFrame() 506 void ThreadProxy::beginFrame()
484 { 507 {
485 TRACE_EVENT0("cc", "ThreadProxy::beginFrame"); 508 TRACE_EVENT0("cc", "ThreadProxy::beginFrame");
486 DCHECK(isMainThread()); 509 DCHECK(isMainThread());
487 if (!m_layerTreeHost) 510 if (!m_layerTreeHost)
488 return; 511 return;
489 512
513 if (m_layerTreeHost->deferCommits()) {
514 TRACE_EVENT0("cc", "EarlyOut_DeferCommits");
515 return;
516 }
517
490 if (!m_pendingBeginFrameRequest) { 518 if (!m_pendingBeginFrameRequest) {
491 TRACE_EVENT0("cc", "EarlyOut_StaleBeginFrameMessage"); 519 TRACE_EVENT0("cc", "EarlyOut_StaleBeginFrameMessage");
492 return; 520 return;
493 } 521 }
494 522
495 if (m_layerTreeHost->needsSharedContext() && !WebSharedGraphicsContext3D::ha veCompositorThreadContext()) 523 if (m_layerTreeHost->needsSharedContext() && !WebSharedGraphicsContext3D::ha veCompositorThreadContext())
496 WebSharedGraphicsContext3D::createCompositorThreadContext(); 524 WebSharedGraphicsContext3D::createCompositorThreadContext();
497 525
498 scoped_ptr<BeginFrameAndCommitState> request(m_pendingBeginFrameRequest.Pass ()); 526 scoped_ptr<BeginFrameAndCommitState> request(m_pendingBeginFrameRequest.Pass ());
499 527
(...skipping 448 matching lines...) Expand 10 before | Expand all | Expand 10 after
948 ThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState() 976 ThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState()
949 : monotonicFrameBeginTime(0) 977 : monotonicFrameBeginTime(0)
950 { 978 {
951 } 979 }
952 980
953 ThreadProxy::BeginFrameAndCommitState::~BeginFrameAndCommitState() 981 ThreadProxy::BeginFrameAndCommitState::~BeginFrameAndCommitState()
954 { 982 {
955 } 983 }
956 984
957 } // namespace cc 985 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698