1

When running the basic sample: http://android-developers.blogspot.com/2009/04/introducing-glsurfaceview.html

Add some basic timing using System.currentTimeMillis() or dropping to native code and using clock_gettime(CLOCK_REALTIME_HR, &res) both yield the same results it appears. I tested with both separately.

I always calculate a frame rate of ~56. That is a rough average of 18ms between frames. I realize the timing of frames is not a perfect science (timer accuracy, device doing stuff in the background). I simply let it run doing absolutely nothing, not even a glClear. After an hour this is the results I got which is about the same as letting it run for 1 minutes.

I've tried many things to achieve a true 59/60fps. I'm beginning to wonder if it is my device (HTC Incredible S). Although I have tried Samsung Galaxy S and Nexus S both with the same results. Tablets do not exhibit this behavior at all. On my EEE Transformer and Xoom I get ~16ms a frame consistently.

This leads me to believe VSYNC is the issue and that the vsync on that generation of Android phones is slow. Really VSYNC should be ~16ms. Achieving a true 60fps is unlikely but 59fps should be common.

Has anyone else experienced this? Any tips for disabling vsync? I don't think that is possible. Any tips for gaining control of controlling the "swap" step of rendering?

Nicol Bolas
  • 449,505
  • 63
  • 781
  • 982
Halsafar
  • 2,540
  • 4
  • 29
  • 52
  • It could be a hardware limitation. But really, why are you worried about a 2ms difference? – NickLH Oct 26 '11 at 05:35
  • Mostly because I'm pushing audio samples at the same time and this 2ms breaks its. – Halsafar Oct 26 '11 at 06:00
  • I'm seeing the same thing on a Nexus S, frame rate is capped to 56fps. – svdree Oct 26 '11 at 07:36
  • It appears many of that generation of Android devices are like that. Samsung Galaxy SII seems to be the start of devices which are not capped at 56fps. – Halsafar Nov 08 '11 at 23:23

0 Answers0