Android OpenGL ES 1.1在ICS下性能不佳 - eglSwapBuffers需要60 + ms

时间:2012-11-10 04:49:43

标签: android performance opengl-es frame-rate tegra

我目前正在开发一个opengl ES 1.1游戏,min sdk 8,目标sdk 17,我看到eggSwapBuffers在我有权访问的4.0.3平板电脑上出现异常大的延迟,不会出现在更新或更旧版本上android版本。我也很幸运能够访问两台华硕变压器T101,其中一台运行Honeycomb,因此可以排除这是硬件的限制。

下表显示了许多设备及其性能。

Model           OS      FPS     Max/avg eglSwapBuffer time (ms)
Acer A500       4.0.3   12.5    70 /67
Asus T101       3.1     21.8    30/21
Asus T101       4.0.3   12.2    79/65
HTC One X       4.0.4   35.9    14/5
Nexus 7         4.1.2   35.6    16/5
Samsung GTP1000 2.2     24.5    36/28

你可以看到,即使是古老的单核GTP1000也会使双核4.0.3设备的帧率提高一倍。

我正在运行4个线程,一个2D Canvas,GL,UI和一个每200毫秒更新一次AI的心跳。在执行GL线程的eglSwapBuffers调用期间,CPU几乎没有做任何事情。感觉我正在触发某种省电或GPU限制,但我无法找到任何有关此信息的信息。

如果所有其他操作都没有成本,则单独使用交换缓冲区所花费的时间会将帧速率限制为<15FPS。我每帧画150个带纹理的三角形条纹四边形。

如果你能指出我正确的方向,我会感到非常激动,我一直在用一个砖墙敲打我的头。

0 个答案:

没有答案