|
发表于 2008-1-2 21:08:00
|
显示全部楼层
Re: 关于游戏中显存的管理,讨论
xwq: 关于游戏中显存的管理,讨论
最近碰到一个问题,我在游戏中运行时间长了,发现游戏很卡,后来通过程序查看,原来每当在我显存用完的时候...
这个问题归根到底是显存用尽了,幸亏你用了 managed 方式,否则恐怕都无法渲染了,managed 方式并不是造成显存用尽的根本原因,真正的原因是你的程序没有对资源进行有效的管理,当显存不够时,调用 EvictManagedResources 会清除掉 d3d runtime 认为不需要使用的资源,但是如果这时清除的显存资源还需要在这一帧渲染的话,就会出现频繁的卸载、上传得情况,而这时需要经过总线进行传输,所以卡是必然的了。这种情况下你最好检查一下渲染资源的方式,不需要渲染的资源就不需要送入渲染管线。如果你的程序确实需要渲染这么多资源,而你还要控制进行精确的资源的卸载和上传,那就要自己代替 d3d 的资源管理,使用 default 方式创建资源,这样可以有更大的灵活性,不过自己管理资源要做很多工作,做得不好的话还不如让 d3d 帮你管理资源。 |
|