1

我的申请详情:

运行:Macbook pro 4GB RAM,ATI Radeon X1600 128MB VRAM,Opengl 版本:2.1 ATI-7.0.52

使用垂直同步(通过 CVDisplay):是

编程语言:Lisp (Lispworks) with FFI to Opengl

像素格式信息

  • ns-open-gl-pfa-深度大小 32
  • ns-open-gl-pfa-sample-buffers 1
  • ns-open-gl-pfa-samples 6
  • ns-open-gl-pfa-加速 1
  • ns-open-gl-pfa-no-recovery 1
  • ns-open-gl-pfa-backing-store 0
  • ns-open-gl-pfa-virtual-screen-count 1

[1 = YES, 0 = NO] 用于布尔属性

我的应用程序中有以下网格:

14 个静态网格(不会改变)。我已经为每个具有静态绘制类型的网格定义了一个 VBO。

2 个动态网格(每帧更改)。我已经为每个具有流绘制类型的网格定义了一个 VBO。

对于这些动态网格,每帧我使用空指针绑定缓冲区数据,然后映射缓冲区,更新映射缓冲区并取消映射缓冲区。

当我运行应用程序并使用 Opengl 分析器检查时:它显示以下(统计视图):

CGLFlushDrawable:

  • 平均时间(微秒):52990.63 = 52.990 毫秒
  • % GL 时间:98.55
  • % 应用时间:43.96

难怪我的 FPS 很差,大约 6-7 FPS。

优化 CGLFlushDrawable 的方法是什么,因为我只是调用了 flushBuffer,而我相信它又调用了 CGLFlushBuffer。

4

1 回答 1

1

好吧,原来我的ATI Radeon X1600显卡有问题

没有任何改变,当我在另一台更新的 13 英寸 Macbook Pro 上测试相同的代码时,它具有英特尔高清显卡 3000 和 384MB DDR3 SDRAM,考虑到我所期望的动态网格,该应用程序可以在大约 30 FPS 的情况下正常工作有。

此外,CGLFlushDrawable 中没有任何瓶颈,就像我的旧 MBP 一样。此外,在 VBO 分配后可用的 VRAM 中的内存量保持不变(这也是我所期望的)。这不是我的旧 MBP 上发生的事情。

最后,我的 MBP 显示器崩溃了(虽然不够频繁),外接 LCD 显示器也无法正常工作,这表明我的显卡有问题。

@Brad,感谢您的所有投入。

于 2012-05-09T19:40:01.890 回答