2

我正在制作一个 Mac OS X (10.8.3) OpenGL 应用程序,使用 NSOpenGLView 和 CVDisplayLink 来管理对渲染方法的调用。

该应用程序工作正常,但是当窗口被覆盖或位于其他空间时(基本上是由于某种原因不可见时),整个系统开始变慢。

我以多种方式对其进行了测试和分析,这就是我发现的:

  • CPU没问题,没有CPU消耗增加
  • 内存也很好,分配的内存量不会改变
  • 在 OpenGL 驱动程序监视器中,“CPU 等待 GPU”时间增加
  • “CPU等待免费OpenGL命令缓冲区”也有(我认为这是问题所在)
  • 如果没有生成 OpenGL 绘制调用,则计算机运行良好。

我猜一个不可见的 NSOpenGLView 以某种方式改变了行为,它使我的应用程序更加消耗 GPU。

知道可能出了什么问题吗?

4

0 回答 0