关于之前提到vbo速度的问题
2006-02-13 10:25
344 查看
之前因为要用到NVPerfHud,所以装的是78.01的driver
然后结果即像提到的那样,不管如何优化,vbo相比var,fps总会掉近1/5
怎么试都是一样,情况不像想象中那么简单: 应该会和D3D中VB的lock/unlock一样吧(<--- 天真)
最后看到有人说nvidia和ati的实现不一样,nvidia有做MRU之类的优化,ati则在处理STATIC_DRAW会简单得video memory > AGP memory > system memory,最重要的是OpenGL是依赖于driver的
所以去下了个最新的81.98装上
结果发现差距没有了,晕~
结论:
1. 因为目前ogl的驱动已经很成熟的情况下,一些过去的Efficient方法,现在并不一定实用了:像是说带Range的比普通DrawElements要快一说
2. var是system memory级,在draw时会copy到AGP或Video的memory中;而vbo会由client指定由driver决定将data放在哪,通常会放在“比较合适”的地方
3. vbo在create和lock时要注意,类似D3D的VB在使用中要注意的:WRITE_ONLY、DISCARD、NOOVERWRITE,这些flag的使用,会很大程度上影响到效率,以下是说明
非WRITE_ONLY的数据,即会READ,而我们知道Video memory在READ起来是很慢的
在lock住VB写数据时,DISCARD会告诉driver,不需要等待GPU的同步,因为不需要之前旧的数据
在lock住VB写数据时,NOOVERWRITE会告诉driver,不需要等待GPU的同步,因为不会影响到已有的数据
4. vbo适合static buffer,这时通常会比var快近一倍;而dynamic buffer,就目前来看,至少OpenGL在nvidia的drvier实现中差别不大
5. vbo是存在有“最佳传输量”的,在不同的显卡上,其“最佳数据量/fps影响”也不同,有人做了专门的benchmark
PS,以上乱说一气,保持了一直以来的记流水帐的风格,见谅见谅~
然后结果即像提到的那样,不管如何优化,vbo相比var,fps总会掉近1/5
怎么试都是一样,情况不像想象中那么简单: 应该会和D3D中VB的lock/unlock一样吧(<--- 天真)
最后看到有人说nvidia和ati的实现不一样,nvidia有做MRU之类的优化,ati则在处理STATIC_DRAW会简单得video memory > AGP memory > system memory,最重要的是OpenGL是依赖于driver的
所以去下了个最新的81.98装上
结果发现差距没有了,晕~
结论:
1. 因为目前ogl的驱动已经很成熟的情况下,一些过去的Efficient方法,现在并不一定实用了:像是说带Range的比普通DrawElements要快一说
2. var是system memory级,在draw时会copy到AGP或Video的memory中;而vbo会由client指定由driver决定将data放在哪,通常会放在“比较合适”的地方
3. vbo在create和lock时要注意,类似D3D的VB在使用中要注意的:WRITE_ONLY、DISCARD、NOOVERWRITE,这些flag的使用,会很大程度上影响到效率,以下是说明
非WRITE_ONLY的数据,即会READ,而我们知道Video memory在READ起来是很慢的
在lock住VB写数据时,DISCARD会告诉driver,不需要等待GPU的同步,因为不需要之前旧的数据
在lock住VB写数据时,NOOVERWRITE会告诉driver,不需要等待GPU的同步,因为不会影响到已有的数据
4. vbo适合static buffer,这时通常会比var快近一倍;而dynamic buffer,就目前来看,至少OpenGL在nvidia的drvier实现中差别不大
5. vbo是存在有“最佳传输量”的,在不同的显卡上,其“最佳数据量/fps影响”也不同,有人做了专门的benchmark
PS,以上乱说一气,保持了一直以来的记流水帐的风格,见谅见谅~
相关文章推荐
- 关于第一次搜索的速度问题--HubbleDotNet----Hubble.net
- 关于JOS 未对所有内存分页映射之前 物理地址映射问题的思考
- 求救一个关于commons-httpclient组件在网络连接过程中的速度问题,好奇怪啊。。。
- 关于您提到使用WebServices时候遇到“基础连接以关闭”的问题
- 关于mysql的远程连接速度慢得问题. (反向解析, skip-name-resolve)
- 关于之前发表的des遇到的问题的新的解决方案
- 关于ssh连接速度慢及系统启动停在starting sendmail和starting sm-client的问题
- 【解答】关于内核中没开MMU之前的虚拟地址物理地址转换问题
- 关于润乾报表里SQL执行速度的问题处理方式
- 关于windows右键反应速度变慢的问题
- 关于之前Komodo IDE、Perl Dev Kit注册问题补充
- 关于GBA模拟器悲惨的速度问题
- 关于无线WLAN漫游与移动速度的问题
- 关于code::blocks的编译速度问题
- 关于JOS 未对全部内存分页映射之前 物理地址映射问题的思考
- 既然在 关于动态写入表格问题的扩展 中提到了iFrame,咱就不能不说说iFrame高度自适应问题
- 关于vs2005调试mobile5.0时 Deploy速度慢的问题[Teaks]
- 关于笔记本共享wifi(wifi共享精灵,猎豹wif)经常断线速度非常慢的问题
- 关于C和C++,还有c#,还有java程序的速度问题!(二)