流逝的时光
总有一天我们都会离去 email: zzxhang@gmail.com
posts - 21,comments - 111,trackbacks - 0
    图形开发确是一件麻烦事,把效果弄好就不易,还得忍受不同卡不同驱动带来的差异化问题,比如这几天遇到的与驱动有关的问题就让我吐血,素闻N卡驱动比A卡驱动稳定,原先一直半信半疑,因为刚好我家里的机器是A卡,公司的机器是N卡,因此在开发引擎的过程中对两者间的差异有了切身的体会.以下记下碰到的这两个问题,留待日后查询

   问题1:引擎的地形在公司的9600GT上跑一直都有1000fps左右,前些天拿回到家里的4850跑下一看,结果大跌眼镜,FPS掉到了100,9600GT和4850应该说是同一级别的显卡,虽说貌似A卡在游戏这一项的性能不如N卡,但也不能给我锉到差10倍吧,于是开debug 版DX调试看看,发现SetIndices时不时报参数索引长度与流大小不一致错误,再一跟踪,原来由于疏忽,主线程某个函数修改了渲染线程中正在使用的索引缓冲指针,导致SetIndice传的IndexBuffer和VertexBuffer数据对不上,表现到视觉上是远处的地形会时不时闪烁一下,这个现象在9600GT的机器上也有,不过由于当时专注于效率问题还没空去查,想不到在A卡上竟然会导致FPS大幅降低,呵呵,改正这个BUG后FPS上到了1K,与9600GT差不多

  问题2:还是A卡和  N卡的效率差异问题,看来只有效率能挑动我的神经了,呵呵。。这次是模型的渲染出了问题,同屏渲染100个骨骼动画模型 + 地形9600GT有200FPS,4850只有10FPS不到。。开debug版DX调试没有发现任何问题,再用PIX运行帧分析,按F12的一刻直接崩掉,输出的log也没发现有什么问题,崩溃。。总而言之,费了很大功夫,终于发现原来是因为没有清空instancing渲染状态,导致后面的所有模型都多画了N次,还是疏忽阿,为啥在N卡上没有问题?

  关于这里面深层次的原因我没去追究,有明白的朋友一定告诉我,总体上, N卡驱动所表现出的容错性的确比A卡驱动好,但换个角度来看,也许隐藏了错误并不是件好事,A卡这样更加有助于开发者早期发现错误,避免拖到后面付出更大的代价
posted on 2010-09-22 13:32 清風 阅读(3344) 评论(4)  编辑 收藏 引用 所属分类: 图形

FeedBack:
# re: 关于A卡和N卡驱动
2010-09-22 15:54 | 空明流转
A卡在DX驱动上问题不多,如果有一般都是开发者问题。
GL上就不一样了,如果有问题,至少有一半可能是A卡Driver造成的。  回复  更多评论
  
# re: 关于A卡和N卡驱动
2010-09-22 16:04 | 哈哈
说明n卡驱动下的功夫足啊,把程序员能犯的错误都给兼容了。  回复  更多评论
  
# re: 关于A卡和N卡驱动
2010-09-22 19:55 | 好看网
刚学DX的大三菜鸟来膜拜楼主。。 不知道楼主混到这个境界用了几年。。 我啥时候有楼主这等功力?  回复  更多评论
  
# re: 关于A卡和N卡驱动
2010-09-30 13:39 | ATI
ATI在OpenGL上的表现很差,d3d倒是还好。
渲染模型时的体会。  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理