- 精华
- 0
- 帖子
- 194
- 威望
- 0 点
- 积分
- 211 点
- 种子
- 5 点
- 注册时间
- 2009-12-29
- 最后登录
- 2024-6-6
|
发表于 2013-8-14 17:29 · 浙江
|
显示全部楼层
本帖最后由 kdzx1121 于 2013-8-14 17:31 编辑
o_sharp 发表于 2013-8-14 15:03
可能有几个原因。
首先,你要完全排除cpu的原因。
cpu原因可以完全排除的,因为我用的是vbo生成的面片,面片的增加量完全是gpu运算量和显存容量,cpu唯一的工作只是调用vbo句柄而已,cpu增加的运算量几乎为0,cpu和内存我都是监视的,该程序的cpu占用率并没有上升,内存占用量也没变大。而我上面提到的帧数都是稳定时的帧率,并没有浮动。
我看了下你提供老外链接,按老外的说法,真37 用这种30-60帧之间浮动的表现方式略蛋,老外说宁可帧数锁30帧然后把多出来的性能提升画面效果。不过老外的“It's fair to say that we're not particularly fond of double-buffered v-sync with an unlocked frame-rate” 这句话感觉确实隐喻了这个情况是 双缓冲+垂直同步 造成的。
另外再看了些老外的其他论坛,大部分都表示 双缓冲+垂直同步 会使得游戏只在30,60之间跳转,但是也有不少人表示开了垂直同步帧数固定在40-50的情况,毕竟我自己试验的情况也是有40-50的情况,所以也没法完全赞同。
最后问下,按你说的gpu瓶颈时,帧率只会是60/n, 但是cpu瓶颈确不会,这就有些矛盾了, 按一般的机制,cpu完成数据准备,gpu才会开始渲染那些数据,反过来,gpu若是没有完成渲染,cpu也不会开始准备下一帧的数据,这样一来,那么就算是cpu瓶颈一样会是60/n的情况,你说的30-50是怎么得出来的,你指定cpu draw call是怎么样的机制?
|
|