2

我已经挣扎了好几天,试图理解为什么我在 Android 上的 OpenGL ES 2.0 应用程序不稳定。每秒帧数相当高,一般保持在 60 fps,但游戏似乎并不流畅。在排除了诸如我的时间步长(相同的应用程序使用 OpenGL ES 1.0 运行良好)和重载数学和帧(应用程序已简化为一个简单的旋转三角形)等简单问题后,我遇到了 OpenGL Trace。

我找不到任何信息来准确解释 OpenGL Trace 发生了什么。所以我在这里有点摸不着头脑,但我看到了奇怪的行为,例如 glClear (mask = 256) 函数需要 2,533,190 纳秒的壁时间和只有 61,040 纳秒的线程时间。这会发生一次,然后在几帧内一切都会正常。

另一个例子是 glDrawElements。274,684 纳秒的壁时间,61,040 线程时间。

这可能向我暗示,通过我尝试和错误的方法来理解 Trace 中的任何信息,引擎盖下发生了一些事情导致了减速。

它实际上暗示了什么?标准还是奇怪的行为?如果奇怪,这种行为的一些原因是什么?

如果你这么好心,谁能给我指点信息,这样我就可以理解我在 Trace 中看到的内容。

我正在尽我最大的努力,并且希望能够重新开始处理我的申请。谢谢阅读。

4

0 回答 0