游戏窗口模式和全屏模式的区别在哪?

1.在分辨率相同的情况下,哪一种模式能够更流畅地表现游戏画面? 2.从表现上来看窗口模式能够比全屏模式更快的切换到其他程序,是否是因为全屏状态下游戏完…
关注者
2,105
被浏览
923,329
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

@

可可苏玛

已经回答了大部分,我就来补充一下win7的问题吧。

Vista上,由于wddm的限制,加上向下兼容的要求,渲染流程是:

  1. 硬件渲染的东西在GPU上做完
  2. 读回CPU端
  3. 把GDI这些用软件渲染
  4. 两者混合
  5. 拷贝到显存显示

这样的话,相当于整个屏幕都要维持2份拷贝,并且要互相同步。早期的vista驱动上,D3D/OGL和GDI混合使用的话闪得要死或者慢的要死,就是这个原因。(比如Maya就这么任性地混合使用了)

Win7在开发的时候,终于有个懂图形的大佬发飙了,说你们TMD搞毛啊。于是新的wddm要求驱动提供overlay和blt,所以流程变得很简单高效:

  1. 硬件渲染的东西在GPU上做完
  2. 把GDI这些用软件渲染
  3. Blt到GPU端作为overlay

这样不但快,而且省电,而且只需要在GPU端维护一份屏幕拷贝,CPU端只需要短暂地维护一个局部GDI的内容就可以了。

好,回到题主的问题,窗口和全屏的区别。

对Vista来说,窗口需要那样一套流程,全屏因为没有GDI了,就直接一步去GPU,所以两者差别比较大。对Win7+,差距明显小了很多,尤其是少了读回CPU的巨大同步开销。但这个差别还是会存在的。要性能就全屏。

顺便补充一下,Android之前被长期诟病的一个事情就是电量时间那个条条总是存在,于是所有东西都需要混合,影响了游戏性能。