怎么我搞的东西这么慢?

vertex 2001-05-22 11:07:00
我把800*600*16bit的内存拷贝到另一个800*600*16bit的内存(都是系统内存),然后把第二块内存copy到DX的BackSurface上,然后把PrimarySurface Flip一次,就这个简单的过程,居然只有60多FPS,为什么哩?
两次内存拷贝我都用的"rep movsd"指令,还有什么更快的吗?MMX不提.
最耗时的应该是copy到BackSurfac的过程,因为那是video mem.....可,咋办哩?烦恼.
...全文
161 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
vertex 2001-05-23
  • 打赏
  • 举报
回复
多谢kevin和Neo2d
我试了把800*600*16bit的内存Surface Blt到显存的BackSuface,速度没有提高多少.......
唉,这个问题就先这样吧
我试了只执行一次内存==>内存copy或者只一次内存=>BackSurface然后Flip都可以100FPS以上...先搞其他的...呵呵
vertex 2001-05-22
  • 打赏
  • 举报
回复
wu,刚才和一位老兄聊了聊......我好像记得Flip设了Wait标志,应该是会等待垂直回扫的,我的屏幕刷新率好像是75HZ,所以最高也不会超过75FPS....不知道大家有没有异议?
CTimerain 2001-05-22
  • 打赏
  • 举报
回复
larrow的程序我看了,GF2上的表现也不过是24-30fps,不高。
vertex 2001-05-22
  • 打赏
  • 举报
回复
to larrow:不好意思,忘了说我的机器,赛羊433,TNT2 Pro
我决定60FPS应该算慢了吧,因为将来游戏里还要加一些逻辑,还有一些blt和效果什么的,,,,,,我觉得如果有120FPS的话可以放心的往下作了......
to kevin:恩,我是4字节对齐的.....
Kevin_qing 2001-05-22
  • 打赏
  • 举报
回复
注意内存里面的surface地址最好是DWORD align的。
否则movsd会降低效率。

另外可以试试3重缓冲。
Kevin_qing 2001-05-22
  • 打赏
  • 举报
回复
注意内存里面的surface地址最好是DWORD align的。
否则movsd会降低效率。

另外可以试试3重缓冲。
Larrow 2001-05-22
  • 打赏
  • 举报
回复
vertex,你认为60FPS还算慢马?我的显卡只有1兆现存的,也是在16bit下才29fps,我觉得,
你只要是操作完成后,最后一步blt到backbuffer就因该是最快了,在flip有多少帧也就认了。

我不知道你试没试过用显存,好像还没能存快,我不知道为什么。


别人还有什么好办法吗?
CTimerain 2001-05-22
  • 打赏
  • 举报
回复
那你不会压一下
vertex 2001-05-22
  • 打赏
  • 举报
回复
别,调色板处理豁烦的.而且16bit的alpha混合什么的我都写好了,而且速度很满意.
CTimerain 2001-05-22
  • 打赏
  • 举报
回复
谁叫你用16位色的
用256吧
Neo2D 2001-05-22
  • 打赏
  • 举报
回复
>我把800*600*16bit的内存拷贝到另一个800*600*16bit的内存(都是系统内存),
这里执行通常的内存拷贝应该比BLT快,也不用每次都lock。

>然后把第二块内存copy到DX的BackSurface上,
这步如果执行普通内存拷贝应该是速度瓶颈。

>然后把PrimarySurface Flip一次,
这部有硬件支持就几乎不花时间。

>就这个简单的过程,居然只有60多FPS,为什么哩?
>两次内存拷贝我都用的"rep movsd"指令,还有什么更快的吗?MMX不提.
>最耗时的应该是copy到BackSurfac的过程,因为那是video mem.....可,咋办哩?烦恼.
建议从内存到BackSurfac采用BLT,因为在显卡比较好的情况下,执行的是DMA操作,
也就是和CPU同步工作,不占用CPU时间。当然前提是单纯拷贝,如果还要逐象素操作
那就不行了。
Kevin_qing 2001-05-22
  • 打赏
  • 举报
回复
是啊,等待垂直回扫是很费时间的。

所以要计算你的MAX FPS时不应该等待它

8,304

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧