双缓冲是怎么提速的

转自双缓冲是怎么提速的


多缓冲技术对于速度要求比较高的图形系统,或者是经常快速更换显示内容的程序比较有效。

1 从显示流程来说

通常是清理背景,然后重新绘制,如果直接在屏幕上进行清理背景往往会造成闪烁。为了解决这种现象,程序往往是把要更新的内容直接写在一个全新的缓冲当中,更换缓冲使用的是显示卡内部的内存映象技术,直接把要显示的内容从一个区域映射到另外一个区域,所以处理的速度非常的快,一般来说会感觉不到闪烁。

2 从显示卡自身来说

显示卡按照一定的刷新频率,每个一段时间就读取显示区域的内容,然后显示在屏幕上,在处理显示的时候,显存被系统独占,程序没有办法写入。这就导致程序处理显存的速度被降低了。使用双缓存的技术,程序和显示卡各自处理各自的显存,互相不冲突,等程序处理完缓冲后,再调换过来,互不干扰,可以提高速度。另外图形往往是动态生成,这也需要时间,图形生成算法越复杂处理的速度越慢,这样就不能保证填充显示卡的数据流始终存在,使得带宽利用率不高。

3 能否用双缓冲方式,有两个条件,一个是显示内存是否足够大,一个是显示卡自身是否支持显示页面切换方式。

如果显示卡同时满足这两个条件就可以使用,只要不是早期的显示卡应该都没有问题。从显示卡的原理上说,显示到屏幕的内容是对应到显存当中的一个地址,从该地址开始的一段内容会被解析到屏幕上,当显存足够大的时候,通过调整显示的开始地址就可以实现多页面/多缓冲的显示技术。因为这个显示的地址是显存控制器里面的一个寄存器内容,更换它几乎不花费任何时间,所以缓冲切换速度很快。需要注意,如果你的缓冲不是建立在显示内存当中,就得不到这个好处。因为建立在内存当中的缓冲不能被显示卡直接使用,必须传递给显示卡,这个传递过程和显示卡内部直接转换显示地址的速度是不可同日而语的。图形学当中,从内存到显示卡的填充速度是瓶颈,带宽不足。

4 只要有可能最好就是直接向显存当中写入数据,而不是在内存当中写缓冲,然后传递进去,再切换。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值