我的应用程序详细信息:
运行于: Macbook和4GB内存,ATI Radeon X1600有128 on,Opengl版本:2.1ATI-7.0.52
使用垂直同步(通过CVDisplay):是
Lisp (Lispworks)的FFI到Opengl编程语言
像素格式信息
1=是,0= NO表示布尔型attrib
在我的应用程序中有以下网格:
14静态网格(不变)。我已经为每个静态绘制类型的网格定义了一个VBO。
2动态网格(每帧变化)。我已经为每个网格定义了流绘制类型的VBO。
对于这些动态网格,每帧我使用null指针执行绑定缓冲区数据,然后映射缓冲区、更新映射缓冲区和取消映射缓冲区。
当我运行该应用程序并使用Opengl分析器进行检查时:它显示了以下内容(统计视图):
CGLFlushDrawable:
怪不得我得到一个非常差的FPS约6-7 FPS。
优化CGLFlushDrawable的方法是什么,因为我只是调用flushBuffer,而这反过来又调用了CGLFlushBuffer。
发布于 2012-05-09 19:40:01
嗯,原来是,我的ATI X1600显卡有问题。
没有任何改变,当我在另一个更新的13“Macbook Pro上测试相同的代码时,它有一个带有384 30的DDR3 SDRAM的Intel 3000,这个应用程序可以很好地工作在大约30个FPS上,这正是我所期望的,考虑到我所拥有的动态网格。
而且,在CGLFlushDrawable中没有任何瓶颈,就像我以前的MBP一样。此外,VBO分配后VRAM中可用的内存量保持不变(同样是我所期望的)。这不是我以前的MBP发生的事。
最后,我的MBP显示器已经崩溃(虽然不够经常),外部LCD显示也不能正常工作,这说明我的显卡有问题。
@布拉德,谢谢你的投入。
https://stackoverflow.com/questions/10507190
复制相似问题