On a Huawei Ascend P1 device I am testing I have a very sluggish UI and logcat has lots of these: W/SurfaceFlinger( 136): Timed out waiting for hw vsync; faking it
Not knowing much about SurfaceFlinger and the HWComposer (version 1.0 used here based on ICS proprietary blobs and libraries) I managed to get decent performance by forcing software VSYNC, that causes timeouts of only 16ms instead of 1s. This should probably have a proper fix but I am not sure whether it's egl settings or some other PVR GPU changes are needed. Any ideas where I should look? This is an OMAP 4660 SoC with a PowerVR SGX 540 GPU. thanks Jani project frameworks/native/ diff --git a/services/surfaceflinger/EventThread.cpp b/services/surfaceflinger/EventThread.cpp index edb9fa5..40bec1c 100644 --- a/services/surfaceflinger/EventThread.cpp +++ b/services/surfaceflinger/EventThread.cpp @@ -277,6 +277,7 @@ Vector< sp<EventThread::Connection> > EventThread::waitForEvent( // use a (long) timeout when waiting for h/w vsync, and // generate fake events when necessary. bool softwareSync = mUseSoftwareVSync; + softwareSync = true; nsecs_t timeout = softwareSync ? ms2ns(16) : ms2ns(1000); if (mCondition.waitRelative(mLock, timeout) == TIMED_OUT) { if (!softwareSync) { -- Mailing list: https://launchpad.net/~ubuntu-phone Post to : ubuntu-phone@lists.launchpad.net Unsubscribe : https://launchpad.net/~ubuntu-phone More help : https://help.launchpad.net/ListHelp