RESOLVED WONTFIX 94645
[Chromium] Disable vsync causes compositor to busy wait when texture uploader is blocked.
https://bugs.webkit.org/show_bug.cgi?id=94645
Summary [Chromium] Disable vsync causes compositor to busy wait when texture uploader...
David Reveman
Reported 2012-08-21 16:18:28 PDT
When !m_isTimeSourceThrottling, CCFrameRateController will cause compositor to busy wait by calling CCFrameRateController::postManualTick() repeatedly when the throttled texture uploader need to wait before it can perform another upload. We should probably use the unthrottled texture uploader when vsync is disabled.
Attachments
Trace showing renderer commits blocked on Aura (469.33 KB, application/x-gzip)
2012-08-21 16:51 PDT, Antoine Labour
no flags
Antoine Labour
Comment 1 2012-08-21 16:51:41 PDT
Created attachment 159803 [details] Trace showing renderer commits blocked on Aura
Antoine Labour
Comment 2 2012-08-21 16:54:56 PDT
What I'm seeing on aura (not explicitly disabling vsync) is that the commits are blocked on the main thread, waiting (I assume) for texture uploads, that don't happen until the next vsync tick. Reverting http://svn.webkit.org/repository/webkit/trunk@126055 fixes the problem for me.
Antoine Labour
Comment 3 2012-08-21 17:08:57 PDT
Maybe I wasn't understanding the root cause - but it seems that CCTextureUpdateController::updateMoreTextures gets called with 0, causing updateMoreTexturesIfEnoughTimeRemaining to early exit, and we don't upload until the next vsync tick. Even then we only upload a bit, and even when the timer fires, we skip again.
David Reveman
Comment 4 2012-08-22 09:44:43 PDT
I think there's two different problems causing this behavior. I've filed these bugs and will work on fixing them asap: https://bugs.webkit.org/show_bug.cgi?id=94719 https://bugs.webkit.org/show_bug.cgi?id=94721
Note You need to log in before you can comment on or make changes to this bug.