本文汇总介绍关于exclusive fullscreen(真全屏)和windowed mode(窗口模式包括无边框)方面的信息。
直接上图,这里对比下大的不同,真全屏的话相对来说两个巨大优势:
- 直接把backbuffer显示到桌面,已经是最少的copy了
- 这个也带了一些额外的设置要求:device创建中的size,format,refreshrate都是需要是从adapter中enumerate出来的一种
- 显存独占,这个对于显存量比较小的游戏来说特别的重要,实际游戏运行中,会出现driver在调度显存的情况,这种往往以paging的方式出现一个卡顿,也是高帧数游戏中非常头疼的情况
- 劣势:切出fullscreen时候有一定的切换时间,这让频繁切屏的玩家会很难受,这种情况下无边框的窗口模式更好一些,但这点在新版的win10 update里面已经进一步提升,到了很低的限度了。
所以在cpu和gpu方面都有很大优势。
在windowed mode下,在win10 的dxgi中已经有了不少的优化,甚至在一些情况下满足可以做到使用direct flip达到和exclusive fullscreen一样的效率(这也是中间一度取消exclusive fullscreen)
一些细节
- 游戏窗口在exclusive fullscreen下会自动的变成topmost的,无论是否设置
reference:
https://blogs.msdn.microsoft.com/directx/2018/04/09/dxgi-flip-model/
https://docs.microsoft.com/en-us/windows/desktop/direct3darticles/direct3d-9ex-improvements