Changeset 96655 in webkit
- Timestamp:
- Oct 4, 2011 3:38:27 PM (13 years ago)
- Location:
- trunk/Source
- Files:
-
- 3 added
- 13 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r96653 r96655 1 2011-10-04 James Robinson <jamesr@chromium.org> 2 3 [chromium] Extract scheduling logic from CCThreadProxy to its own class 4 https://bugs.webkit.org/show_bug.cgi?id=69049 5 6 Reviewed by Kenneth Russell. 7 8 This partially extracts the commit/draw scheduling from CCThreadProxy to a separate isolated class. This makes 9 the commit/draw logic easier to test, understand and extend. 10 11 There is one subtle behavior change here to the way that the function formerly known as 12 CCLayerTreeHost::setNeedsCommitAndRedraw works. Previously, this would trigger a begin frame message, if one 13 wasn't pending, and then trigger a redraw if one wasn't pending. This was subtly wrong - the intent of that call 14 is that a redraw should happen after the commit. It isn't useful to draw before the commit occurs. This patch 15 changes the name of the function to setNeedsCommitThenRedraw and only requests a redraw after a commit occurs. 16 17 Covered by new CCSchedulerTest unit tests, CCLayerTreeHostTest unit tests, and compositing/ layout tests. 18 19 * WebCore.gypi: 20 * platform/graphics/chromium/cc/CCLayerTreeHost.cpp: 21 (WebCore::CCLayerTreeHost::initialize): 22 (WebCore::CCLayerTreeHost::setZoomAnimatorTransform): 23 (WebCore::CCLayerTreeHost::setNeedsCommitThenRedraw): 24 (WebCore::CCLayerTreeHost::setViewport): 25 (WebCore::CCLayerTreeHost::setVisible): 26 * platform/graphics/chromium/cc/CCLayerTreeHost.h: 27 * platform/graphics/chromium/cc/CCProxy.h: 28 * platform/graphics/chromium/cc/CCScheduler.cpp: Added. 29 (WebCore::CCScheduler::CCScheduler): 30 (WebCore::CCScheduler::requestCommit): 31 (WebCore::CCScheduler::requestCommitThenRedraw): 32 (WebCore::CCScheduler::requestRedraw): 33 (WebCore::CCScheduler::didCommit): 34 (WebCore::CCScheduler::didDraw): 35 * platform/graphics/chromium/cc/CCScheduler.h: Added. 36 (WebCore::CCSchedulerClient::~CCSchedulerClient): 37 (WebCore::CCScheduler::create): 38 (WebCore::CCScheduler::commitPending): 39 (WebCore::CCScheduler::redrawPending): 40 (WebCore::CCScheduler::redrawAfterCommit): 41 * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp: 42 (WebCore::CCSingleThreadProxy::setNeedsCommitThenRedraw): 43 (WebCore::CCSingleThreadProxy::setNeedsRedraw): 44 (WebCore::CCSingleThreadProxy::recreateContextIfNeeded): 45 (WebCore::CCSingleThreadProxy::doComposite): 46 * platform/graphics/chromium/cc/CCSingleThreadProxy.h: 47 * platform/graphics/chromium/cc/CCThreadProxy.cpp: 48 (WebCore::CCThreadProxySchedulerClient::create): 49 (WebCore::CCThreadProxySchedulerClient::~CCThreadProxySchedulerClient): 50 (WebCore::CCThreadProxySchedulerClient::scheduleBeginFrameAndCommit): 51 (WebCore::CCThreadProxySchedulerClient::scheduleDrawAndPresent): 52 (WebCore::CCThreadProxySchedulerClient::CCThreadProxySchedulerClient): 53 (WebCore::CCThreadProxy::CCThreadProxy): 54 (WebCore::CCThreadProxy::compositeAndReadback): 55 (WebCore::CCThreadProxy::initializeLayerRenderer): 56 (WebCore::CCThreadProxy::setNeedsCommit): 57 (WebCore::CCThreadProxy::setNeedsCommitOnCCThread): 58 (WebCore::CCThreadProxy::setNeedsCommitThenRedraw): 59 (WebCore::CCThreadProxy::setNeedsCommitThenRedrawOnCCThread): 60 (WebCore::CCThreadProxy::setNeedsRedraw): 61 (WebCore::CCThreadProxy::setNeedsRedrawOnCCThread): 62 (WebCore::CCThreadProxy::finishAllRenderingOnCCThread): 63 (WebCore::CCThreadProxy::obtainBeginFrameAndCommitTaskFromCCThread): 64 (WebCore::CCThreadProxy::createBeginFrameAndCommitTaskOnCCThread): 65 (WebCore::CCThreadProxy::beginFrameAndCommit): 66 (WebCore::CCThreadProxy::commitOnCCThread): 67 (WebCore::CCThreadProxy::drawLayersAndPresentOnCCThread): 68 (WebCore::CCThreadProxy::initializeImplOnCCThread): 69 * platform/graphics/chromium/cc/CCThreadProxy.h: 70 1 71 2011-10-04 Alexey Proskuryakov <ap@apple.com> 2 72 -
trunk/Source/WebCore/WebCore.gypi
r96599 r96655 3499 3499 'platform/graphics/chromium/cc/CCLayerTilingData.cpp', 3500 3500 'platform/graphics/chromium/cc/CCLayerTilingData.h', 3501 'platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp', 3502 'platform/graphics/chromium/cc/CCLayerTreeHostCommon.h', 3501 3503 'platform/graphics/chromium/cc/CCLayerTreeHost.cpp', 3502 3504 'platform/graphics/chromium/cc/CCLayerTreeHost.h', 3503 'platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp',3504 'platform/graphics/chromium/cc/CCLayerTreeHostCommon.h',3505 3505 'platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp', 3506 3506 'platform/graphics/chromium/cc/CCLayerTreeHostImpl.h', … … 3510 3510 'platform/graphics/chromium/cc/CCPluginLayerImpl.cpp', 3511 3511 'platform/graphics/chromium/cc/CCPluginLayerImpl.h', 3512 'platform/graphics/chromium/cc/CCProxy.cpp', 3512 3513 'platform/graphics/chromium/cc/CCProxy.h', 3513 'platform/graphics/chromium/cc/CCProxy.cpp',3514 'platform/graphics/chromium/cc/CCSingleThreadProxy.h',3515 'platform/graphics/chromium/cc/CCSingleThreadProxy.cpp',3516 3514 'platform/graphics/chromium/cc/CCRenderSurface.cpp', 3517 3515 'platform/graphics/chromium/cc/CCRenderSurface.h', 3516 'platform/graphics/chromium/cc/CCScheduler.cpp', 3517 'platform/graphics/chromium/cc/CCScheduler.h', 3518 'platform/graphics/chromium/cc/CCSingleThreadProxy.cpp', 3519 'platform/graphics/chromium/cc/CCSingleThreadProxy.h', 3518 3520 'platform/graphics/chromium/cc/CCThread.h', 3521 'platform/graphics/chromium/cc/CCThreadProxy.cpp', 3519 3522 'platform/graphics/chromium/cc/CCThreadProxy.h', 3520 'platform/graphics/chromium/cc/CCThreadProxy.cpp',3521 3523 'platform/graphics/chromium/cc/CCThreadTask.h', 3522 3524 'platform/graphics/chromium/cc/CCTiledLayerImpl.cpp', -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.cpp
r96454 r96655 61 61 bool CCLayerTreeHost::initialize() 62 62 { 63 TRACE_EVENT("CCLayerTreeHost::initialize", this, 0); 63 64 if (m_settings.enableCompositorThread) { 64 65 // Accelerated Painting is not supported in threaded mode. Turn it off. … … 79 80 m_settings.acceleratePainting = m_proxy->layerRendererCapabilities().usingAcceleratedPainting; 80 81 81 // We changed the root layer. Tell the proxy a commit is needed. 82 m_proxy->setNeedsCommitAndRedraw(); 82 setNeedsCommitThenRedraw(); 83 83 84 84 m_contentsTextureManager = TextureManager::create(TextureManager::highLimitBytes(), m_proxy->layerRendererCapabilities().maxTextureSize); … … 197 197 198 198 if (zoomChanged) 199 setNeedsCommit AndRedraw();200 } 201 202 void CCLayerTreeHost::setNeedsCommit AndRedraw()199 setNeedsCommitThenRedraw(); 200 } 201 202 void CCLayerTreeHost::setNeedsCommitThenRedraw() 203 203 { 204 204 #if USE(THREADED_COMPOSITING) 205 TRACE_EVENT("CCLayerTreeHost::setNeeds Redraw", this, 0);206 m_proxy->setNeedsCommit AndRedraw();205 TRACE_EVENT("CCLayerTreeHost::setNeedsCommitThenRedraw", this, 0); 206 m_proxy->setNeedsCommitThenRedraw(); 207 207 #else 208 208 m_client->scheduleComposite(); … … 222 222 { 223 223 m_viewportSize = viewportSize; 224 setNeedsCommit AndRedraw();224 setNeedsCommitThenRedraw(); 225 225 } 226 226 … … 229 229 m_visible = visible; 230 230 if (visible) 231 m_proxy->setNeedsCommitAndRedraw();231 setNeedsCommitThenRedraw(); 232 232 else { 233 233 m_contentsTextureManager->reduceMemoryToLimit(TextureManager::lowLimitBytes()); -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHost.h
r96454 r96655 136 136 void loseCompositorContext(int numTimes); 137 137 138 void setNeedsCommit AndRedraw();138 void setNeedsCommitThenRedraw(); 139 139 void setNeedsRedraw(); 140 140 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCProxy.h
r96454 r96655 64 64 65 65 virtual void setNeedsCommit() = 0; 66 virtual void setNeedsCommit AndRedraw() = 0;66 virtual void setNeedsCommitThenRedraw() = 0; 67 67 virtual void setNeedsRedraw() = 0; 68 68 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.cpp
r96454 r96655 157 157 } 158 158 159 void CCSingleThreadProxy::setNeedsCommit AndRedraw()159 void CCSingleThreadProxy::setNeedsCommitThenRedraw() 160 160 { 161 161 ASSERT(CCProxy::isMainThread()); … … 172 172 // FIXME: Once we move render_widget scheduling into this class, we can 173 173 // treat redraw requests more efficiently than commitAndRedraw requests. 174 setNeedsCommit AndRedraw();174 setNeedsCommitThenRedraw(); 175 175 } 176 176 … … 234 234 m_numFailedRecreateAttempts++; 235 235 if (m_numFailedRecreateAttempts < 5) { 236 setNeedsCommit AndRedraw();236 setNeedsCommitThenRedraw(); 237 237 return false; 238 238 } … … 277 277 m_graphicsContextLost = true; 278 278 m_numFailedRecreateAttempts = 0; 279 setNeedsCommit AndRedraw();279 setNeedsCommitThenRedraw(); 280 280 return false; 281 281 } -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCSingleThreadProxy.h
r96529 r96655 49 49 virtual void loseCompositorContext(int numTimes); 50 50 virtual void setNeedsCommit(); 51 virtual void setNeedsCommit AndRedraw();51 virtual void setNeedsCommitThenRedraw(); 52 52 virtual void setNeedsRedraw(); 53 53 virtual void start(); -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.cpp
r96454 r96655 31 31 #include "cc/CCLayerTreeHost.h" 32 32 #include "cc/CCMainThreadTask.h" 33 #include "cc/CCScheduler.h" 33 34 #include "cc/CCThreadTask.h" 34 35 #include <wtf/CurrentTime.h> … … 48 49 #endif 49 50 } 51 52 class CCThreadProxySchedulerClient : public CCSchedulerClient { 53 public: 54 static PassOwnPtr<CCThreadProxySchedulerClient> create(CCThreadProxy* proxy) 55 { 56 return adoptPtr(new CCThreadProxySchedulerClient(proxy)); 57 } 58 virtual ~CCThreadProxySchedulerClient() { } 59 60 virtual void scheduleBeginFrameAndCommit() 61 { 62 CCMainThread::postTask(m_proxy->createBeginFrameAndCommitTaskOnCCThread()); 63 } 64 65 virtual void scheduleDrawAndPresent() 66 { 67 m_proxy->drawLayersAndPresentOnCCThread(); 68 } 69 70 private: 71 explicit CCThreadProxySchedulerClient(CCThreadProxy* proxy) 72 { 73 m_proxy = proxy; 74 } 75 76 CCThreadProxy* m_proxy; 77 }; 50 78 51 79 PassOwnPtr<CCProxy> CCThreadProxy::create(CCLayerTreeHost* layerTreeHost) … … 60 88 , m_lastExecutedBeginFrameAndCommitSequenceNumber(-1) 61 89 , m_numBeginFrameAndCommitsIssuedOnCCThread(0) 62 , m_beginFrameAndCommitPendingOnCCThread(false)63 , m_drawTaskPostedOnCCThread(false)64 , m_redrawRequestedOnCCThread(false)65 90 { 66 91 TRACE_EVENT("CCThreadProxy::CCThreadProxy", this, 0); … … 77 102 bool CCThreadProxy::compositeAndReadback(void *pixels, const IntRect& rect) 78 103 { 104 TRACE_EVENT("CCThreadPRoxy::compositeAndReadback", this, 0); 79 105 ASSERT(isMainThread()); 80 106 ASSERT(m_layerTreeHost); … … 143 169 bool CCThreadProxy::initializeLayerRenderer() 144 170 { 171 TRACE_EVENT("CCThreadProxy::initializeLayerRenderer", this, 0); 145 172 RefPtr<GraphicsContext3D> context = m_layerTreeHost->createLayerTreeHostContext3D(); 146 173 if (!context) … … 184 211 TRACE_EVENT("CCThreadProxy::setNeedsCommit", this, 0); 185 212 m_commitRequested = true; 186 s_ccThread->postTask(createCCThreadTask(this, &CCThreadProxy::updateSchedulerStateOnCCThread, m_commitRequested, true)); 187 } 188 189 void CCThreadProxy::setNeedsCommitAndRedraw() 190 { 191 ASSERT(isMainThread()); 192 if (m_commitRequested) 193 return; 194 m_commitRequested = true; 195 196 TRACE_EVENT("CCThreadProxy::setNeedsCommitAndRedraw", this, 0); 197 s_ccThread->postTask(createCCThreadTask(this, &CCThreadProxy::updateSchedulerStateOnCCThread, m_commitRequested, true)); 213 s_ccThread->postTask(createCCThreadTask(this, &CCThreadProxy::setNeedsCommitOnCCThread)); 214 } 215 216 void CCThreadProxy::setNeedsCommitThenRedraw() 217 { 218 ASSERT(isMainThread()); 219 m_redrawAfterCommit = true; 220 setNeedsCommit(); 221 } 222 223 void CCThreadProxy::setNeedsCommitOnCCThread() 224 { 225 ASSERT(isImplThread()); 226 TRACE_EVENT("CCThreadProxy::setNeedsCommitOnCCThread", this, 0); 227 m_schedulerOnCCThread->requestCommit(); 198 228 } 199 229 … … 201 231 { 202 232 ASSERT(isMainThread()); 203 if (m_commitRequested) // Implies that a commit is in flight.204 return;205 // Unlike setNeedsCommit that tracks whether a commit message has been sent,206 // setNeedsRedraw always sends a message to the compositor thread. This is207 // because the compositor thread can draw without telling the main208 // thread. This should not be much of a problem because calls to209 // setNeedsRedraw messages are uncommon (only triggered by WM_PAINT/etc),210 // compared to setNeedsCommitAndRedraw messages.211 233 TRACE_EVENT("CCThreadProxy::setNeedsRedraw", this, 0); 212 s_ccThread->postTask(createCCThreadTask(this, &CCThreadProxy::updateSchedulerStateOnCCThread, false, true)); 234 s_ccThread->postTask(createCCThreadTask(this, &CCThreadProxy::setNeedsRedrawOnCCThread)); 235 } 236 237 void CCThreadProxy::setNeedsRedrawOnCCThread() 238 { 239 ASSERT(isImplThread()); 240 TRACE_EVENT("CCThreadProxy::setNeedsRedrawOnCCThread", this, 0); 241 m_schedulerOnCCThread->requestRedraw(); 213 242 } 214 243 … … 245 274 TRACE_EVENT("CCThreadProxy::finishAllRenderingOnCCThread", this, 0); 246 275 ASSERT(isImplThread()); 247 ASSERT(!m_beginFrameAndCommitPendingOnCCThread); 248 if (m_redrawRequestedOnCCThread) { 276 if (m_schedulerOnCCThread->redrawPending()) { 249 277 drawLayersOnCCThread(); 250 278 m_layerTreeHostImpl->present(); 251 m_ redrawRequestedOnCCThread = false;279 m_schedulerOnCCThread->didDraw(); 252 280 } 253 281 m_layerTreeHostImpl->finishAllRendering(); … … 267 295 ASSERT(isImplThread()); 268 296 double frameBeginTime = currentTime(); 269 m_beginFrameAndCommitPendingOnCCThread = true;270 297 271 298 // NOTE, it is possible to receieve a request for a … … 329 356 m_layerTreeHost->commitComplete(); 330 357 358 if (m_redrawAfterCommit) 359 setNeedsRedraw(); 360 m_redrawAfterCommit = false; 361 331 362 ASSERT(m_lastExecutedBeginFrameAndCommitSequenceNumber == sequenceNumber); 332 363 } … … 336 367 TRACE_EVENT("CCThreadProxy::beginFrameAndCommitOnCCThread", this, 0); 337 368 ASSERT(isImplThread()); 338 ASSERT(m_beginFrameAndCommitPendingOnCCThread); 339 m_beginFrameAndCommitPendingOnCCThread = false; 369 ASSERT(m_schedulerOnCCThread->commitPending()); 340 370 if (!m_layerTreeHostImpl) { 341 371 completion->signal(); … … 348 378 completion->signal(); 349 379 350 if (m_redrawRequestedOnCCThread) 351 scheduleDrawTaskOnCCThread(); 352 } 353 354 void CCThreadProxy::scheduleDrawTaskOnCCThread() 355 { 356 ASSERT(isImplThread()); 357 if (m_drawTaskPostedOnCCThread) 358 return; 359 TRACE_EVENT("CCThreadProxy::scheduleDrawTaskOnCCThread", this, 0); 360 ASSERT(m_layerTreeHostImpl); 361 m_drawTaskPostedOnCCThread = true; 362 s_ccThread->postTask(createCCThreadTask(this, &CCThreadProxy::drawLayersAndPresentOnCCThread)); 380 m_schedulerOnCCThread->didCommit(); 363 381 } 364 382 … … 372 390 drawLayersOnCCThread(); 373 391 m_layerTreeHostImpl->present(); 374 m_redrawRequestedOnCCThread = false; 375 m_drawTaskPostedOnCCThread = false; 392 m_schedulerOnCCThread->didDraw(); 376 393 } 377 394 … … 386 403 } 387 404 388 void CCThreadProxy::updateSchedulerStateOnCCThread(bool commitRequested, bool redrawRequested)389 {390 TRACE_EVENT("CCThreadProxy::updateSchedulerStateOnCCThread", this, 0);391 ASSERT(isImplThread());392 ASSERT(m_layerTreeHostImpl);393 394 // FIXME: use CCScheduler to decide when to manage the conversion of this395 // commit request into an actual createBeginFrameAndCommitTaskOnCCThread call.396 m_redrawRequestedOnCCThread |= redrawRequested;397 if (commitRequested && !m_beginFrameAndCommitPendingOnCCThread) {398 CCMainThread::postTask(createBeginFrameAndCommitTaskOnCCThread());399 return;400 }401 402 // If no commit is pending, but a redraw is requested, then post a redraw right away403 if (m_redrawRequestedOnCCThread)404 scheduleDrawTaskOnCCThread();405 }406 407 405 void CCThreadProxy::initializeImplOnCCThread(CCCompletionEvent* completion) 408 406 { … … 410 408 ASSERT(isImplThread()); 411 409 m_layerTreeHostImpl = m_layerTreeHost->createLayerTreeHostImpl(); 410 m_schedulerClientOnCCThread = CCThreadProxySchedulerClient::create(this); 411 m_schedulerOnCCThread = CCScheduler::create(m_schedulerClientOnCCThread.get()); 412 412 completion->signal(); 413 413 } -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCThreadProxy.h
r96454 r96655 35 35 36 36 class CCLayerTreeHost; 37 class CCScheduler; 37 38 class CCThread; 39 class CCThreadProxySchedulerClient; 38 40 39 41 class CCThreadProxy : public CCProxy { 42 friend class CCThreadProxySchedulerClient; 40 43 public: 41 44 static void setThread(CCThread*); … … 54 57 virtual void loseCompositorContext(int numTimes); 55 58 virtual void setNeedsCommit(); 56 virtual void setNeedsCommit AndRedraw();59 virtual void setNeedsCommitThenRedraw(); 57 60 virtual void setNeedsRedraw(); 58 61 virtual void start(); … … 76 79 void initializeLayerRendererOnCCThread(GraphicsContext3D*, CCCompletionEvent*, bool* initializeSucceeded, LayerRendererCapabilities*); 77 80 void setNeedsCommitOnCCThread(); 78 void updateSchedulerStateOnCCThread(bool commitRequested, bool redrawRequested); 81 void setNeedsRedrawOnCCThread(); 82 void setNeedsCommitThenRedrawOnCCThread(); 79 83 void layerTreeHostClosedOnCCThread(CCCompletionEvent*); 80 void scheduleDrawTaskOnCCThread();81 84 82 85 // Accessed on main thread only. 83 86 bool m_commitRequested; 87 bool m_redrawAfterCommit; 84 88 CCLayerTreeHost* m_layerTreeHost; 85 89 LayerRendererCapabilities m_layerRendererCapabilitiesMainThreadCopy; … … 90 94 OwnPtr<CCLayerTreeHostImpl> m_layerTreeHostImpl; 91 95 int m_numBeginFrameAndCommitsIssuedOnCCThread; 92 bool m_beginFrameAndCommitPendingOnCCThread; 93 bool m_drawTaskPostedOnCCThread;94 bool m_redrawRequestedOnCCThread;96 97 OwnPtr<CCScheduler> m_schedulerOnCCThread; 98 OwnPtr<CCThreadProxySchedulerClient> m_schedulerClientOnCCThread; 95 99 96 100 static CCThread* s_ccThread; -
trunk/Source/WebKit/chromium/ChangeLog
r96654 r96655 1 2011-10-04 James Robinson <jamesr@chromium.org> 2 3 [chromium] Extract scheduling logic from CCThreadProxy to its own class 4 https://bugs.webkit.org/show_bug.cgi?id=69049 5 6 Reviewed by Kenneth Russell. 7 8 Adds some unit tests for the new CCScheduler class. Since the class is very simple today, the tests are 9 similarly quite simple. 10 11 * WebKit.gypi: 12 * src/WebViewImpl.cpp: 13 (WebKit::WebViewImpl::setRootLayerNeedsDisplay): 14 * tests/CCLayerTreeHostTest.cpp: 15 (WTF::CCLayerTreeHostTest::postSetNeedsCommitThenRedrawToMainThread): 16 (WTF::CCLayerTreeHostTest::dispatchSetNeedsCommitThenRedraw): 17 (WTF::CCLayerTreeHostTestShortlived2::beginTest): 18 (WTF::CCLayerTreeHostTestCommitingWithContinuousRedraw::beginTest): 19 (WTF::CCLayerTreeHostTestCommitingWithContinuousRedraw::drawLayersOnCCThread): 20 (WTF::CCLayerTreeHostTestSetNeedsCommit1::beginTest): 21 (WTF::CCLayerTreeHostTestSetNeedsCommit2::beginTest): 22 (WTF::CCLayerTreeHostTestSetNeedsCommit2::drawLayersOnCCThread): 23 (WTF::CCLayerTreeHostTestSetNeedsRedraw::beginTest): 24 * tests/CCSchedulerTest.cpp: Added. 25 1 26 2011-10-04 Scott Graham <scottmg@chromium.org> 2 27 -
trunk/Source/WebKit/chromium/WebKit.gypi
r96529 r96655 56 56 'tests/AssociatedURLLoaderTest.cpp', 57 57 'tests/CCLayerSorterTest.cpp', 58 'tests/CCLayerTreeHostImplTest.cpp', 58 59 'tests/CCLayerTreeHostTest.cpp', 59 'tests/CC LayerTreeHostImplTest.cpp',60 'tests/CCSchedulerTest.cpp', 60 61 'tests/CCThreadTaskTest.cpp', 61 62 'tests/CCThreadTest.cpp', -
trunk/Source/WebKit/chromium/src/WebViewImpl.cpp
r96654 r96655 2575 2575 #if USE(THREADED_COMPOSITING) 2576 2576 if (m_layerTreeHost) 2577 m_layerTreeHost->setNeedsCommit AndRedraw();2577 m_layerTreeHost->setNeedsCommitThenRedraw(); 2578 2578 #else 2579 2579 m_client->scheduleComposite(); -
trunk/Source/WebKit/chromium/tests/CCLayerTreeHostTest.cpp
r96529 r96655 198 198 void endTest(); 199 199 200 void postSetNeedsCommitT oMainThread()201 { 202 callOnMainThread(CCLayerTreeHostTest::dispatchSetNeedsCommit , this);200 void postSetNeedsCommitThenRedrawToMainThread() 201 { 202 callOnMainThread(CCLayerTreeHostTest::dispatchSetNeedsCommitThenRedraw, this); 203 203 } 204 204 … … 240 240 } 241 241 242 static void dispatchSetNeedsCommit (void* self)242 static void dispatchSetNeedsCommitThenRedraw(void* self) 243 243 { 244 244 ASSERT(isMainThread()); … … 246 246 ASSERT(test); 247 247 if (test->m_layerTreeHost) 248 test->m_layerTreeHost->setNeedsCommit AndRedraw();248 test->m_layerTreeHost->setNeedsCommitThenRedraw(); 249 249 } 250 250 … … 365 365 virtual void beginTest() 366 366 { 367 postSetNeedsCommitT oMainThread();367 postSetNeedsCommitThenRedrawToMainThread(); 368 368 endTest(); 369 369 } … … 409 409 virtual void beginTest() 410 410 { 411 postSetNeedsCommitT oMainThread();411 postSetNeedsCommitThenRedrawToMainThread(); 412 412 endTest(); 413 413 } … … 423 423 { 424 424 if (m_numDraws == 1) 425 postSetNeedsCommitT oMainThread();425 postSetNeedsCommitThenRedrawToMainThread(); 426 426 m_numDraws++; 427 427 postSetNeedsRedrawToMainThread(); … … 453 453 virtual void beginTest() 454 454 { 455 postSetNeedsCommitT oMainThread();456 postSetNeedsCommitT oMainThread();455 postSetNeedsCommitThenRedrawToMainThread(); 456 postSetNeedsCommitThenRedrawToMainThread(); 457 457 } 458 458 … … 496 496 virtual void beginTest() 497 497 { 498 postSetNeedsCommitT oMainThread();498 postSetNeedsCommitThenRedrawToMainThread(); 499 499 } 500 500 … … 502 502 { 503 503 if (!impl->sourceFrameNumber()) 504 postSetNeedsCommitT oMainThread();504 postSetNeedsCommitThenRedrawToMainThread(); 505 505 else if (impl->sourceFrameNumber() == 1) 506 506 endTest(); … … 539 539 virtual void beginTest() 540 540 { 541 postSetNeedsCommitT oMainThread();541 postSetNeedsCommitThenRedrawToMainThread(); 542 542 } 543 543 … … 587 587 m_layerTreeHost->rootLayer()->setMaxScrollPosition(IntSize(100, 100)); 588 588 m_layerTreeHost->rootLayer()->setScrollPosition(m_initialScroll); 589 postSetNeedsCommitT oMainThread();589 postSetNeedsCommitThenRedrawToMainThread(); 590 590 } 591 591 … … 613 613 EXPECT_EQ(root->scrollPosition(), m_initialScroll); 614 614 EXPECT_EQ(root->scrollDelta(), m_scrollAmount); 615 postSetNeedsCommitT oMainThread();615 postSetNeedsCommitThenRedrawToMainThread(); 616 616 } else if (impl->frameNumber() == 2) { 617 617 EXPECT_EQ(root->scrollPosition(), m_secondScroll); … … 656 656 m_layerTreeHost->rootLayer()->setMaxScrollPosition(IntSize(100, 100)); 657 657 m_layerTreeHost->rootLayer()->setScrollPosition(m_initialScroll); 658 postSetNeedsCommitT oMainThread();658 postSetNeedsCommitThenRedrawToMainThread(); 659 659 } 660 660 … … 687 687 688 688 EXPECT_EQ(root->scrollPosition(), m_initialScroll); 689 postSetNeedsCommitT oMainThread();689 postSetNeedsCommitThenRedrawToMainThread(); 690 690 } else if (impl->frameNumber() == 3) { 691 691 EXPECT_EQ(root->scrollDelta(), IntSize());
Note: See TracChangeset
for help on using the changeset viewer.