我在我的游戏中添加了一个分析器并隔离了此功能。它有时会导致FPS下降。这是我的结果:presentRenderbuffer:GL_RENDERBUFFER_OES需要很长时间
Present buffer time: 22
Present buffer time: 1
Present buffer time: 9
Present buffer time: 1
Present buffer time: 20
Present buffer time: 6
Present buffer time: 4
Present buffer time: 4
Present buffer time: 22
Present buffer time: 4
Present buffer time: 8
Present buffer time: 4
Present buffer time: 4
Present buffer time: 15
Present buffer time: 1
Present buffer time: 1
Present buffer time: 1
Present buffer time: 11
Present buffer time: 1
Present buffer time: 6
Present buffer time: 1
Present buffer time: 1
Present buffer time: 25
Present buffer time: 6
Present buffer time: 7
Present buffer time: 1
Present buffer time: 10
Present buffer time: 7
Present buffer time: 3
Present buffer time: 1
Present buffer time: 12
Present buffer time: 9
Present buffer time: 6
Present buffer time: 9
你知道为什么在每隔几帧这个功能需要更多时间吗?
这是我的代码:
f64 time = -System::GetTime();
[m_context presentRenderbuffer:GL_RENDERBUFFER_OES];
Log("Present buffer time: %d\n", u32((System::GetTime() + time) * 1000.));
你说得对。如果我使用glFlush(),这个函数会在常量(almoust)中执行。你知道为什么glFlush在不同的画面中需要不同的时间吗?我有相同的内容,但glFlush时间从1ms到30ms不等!感谢帮助! – Felics 2011-02-28 19:58:39
@Felics。也许一些其他的GPU任务正在运行......你是在全屏模式下工作吗? – kvark 2011-02-28 20:33:41
此代码在iPhone上。它是全屏的,我在一个线程中使用了opengl。我添加了与此相关的其他问题:http://stackoverflow.com/questions/5146987/glflush-time-varies-from-frame-to-frame-with-same-content-on-iphone – Felics 2011-02-28 20:40:46