ubuntu-phone team mailing list archive
-
ubuntu-phone team
-
Mailing list archive
-
Message #01791
HW VSYNC question
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) {