Windows 8系统下全屏玩游戏再开视频就卡得不行,这个问题困扰过不少人。我自己也折腾过很长时间,网上搜到的答案大多含糊其辞,要么让你关特效要么让你换显卡,基本没说到点子上。今天就把这事的来龙去脉彻底讲清楚。
先说说这个问题的典型表现。你在玩一款游戏,比如《英雄联盟》或者《守望先锋》,全屏模式跑得很流畅。这时候你想切出去看看直播或者视频,问题就来了。一种情况是切到桌面后整个系统卡得跟幻灯片似的,鼠标都飘,视频页面半天刷不出来。另一种情况更尴尬,就是视频窗口能弹出来但画面全是花屏或者撕裂,游戏这边的声音倒还正常。等你想切回游戏,好家伙,游戏画面黑屏好几秒,甚至直接崩了。
这个问题的根源在于Windows 8的窗口管理和游戏的全屏独占模式之间起了冲突。Win7时代大家用习惯了,游戏全屏就彻底接管显卡输出,那是真正的独占。到了Win8,微软为了推广Windows商店那种边玩边看的体验,把桌面窗口管理器(DWM)的优先级调得很高。游戏全屏时DWM会一直在后台待命,随时准备把你在玩的游戏画面压缩成缩略图展示到系统界面上。这个待命过程就够让显卡吃不消了。
有数据可以佐证,在Win8系统下,开启DWM的全屏游戏帧数比Win7要低百分之十到十五。你要是再在后台开个视频网站,视频解码要占用CPU,浏览器渲染要占用内存带宽,显卡这时候得同时处理游戏画面和视频输出。关键是Win8的DWM对这类多任务调度的策略很差,它不会像Win10那样灵活分配资源。记得Win10一出来就修复了这个问题,新增了全屏优化开关,专门让用户决定游戏是否真正独占显示输出。
所以如果你还在Win8上折腾,首先一个思路就是检查你的显卡驱动是不是最新的。注意,Win8和Win8.1的驱动很多厂家已经停更了,你要是用老驱动,显卡根本没法正确识别视频渲染层和游戏画面层的关系。我身边一个朋友就是A卡用户,他装了某版本驱动后全屏游戏放视频卡得不能看,换回老版本驱动反而好了。这事情很玄学,得自己试。

另一个办法就是降低显示器的刷新率。很多人显示器默认60Hz,但有些电竞屏跑到144Hz甚至240Hz。Win8在144Hz刷新率下全屏游戏加视频,画面撕裂感特别严重。因为你刷新率越高,DWM的合成压力就越大,它需要频繁把游戏帧和视频帧拼在一起。你把刷新率锁回60Hz,虽然画面流畅度打折,但起码不会卡到没法用。
再来说说软件层面的核弹级方案。在游戏里关掉垂直同步,然后在显卡控制面板里开启强制垂直同步。这是干嘛呢?垂直同步的作用是让游戏帧率和显示器刷新率保持一致,但在Win8下游戏帧率一旦波动,DWM就会疯狂介入,然后整个桌面开始抖动。强制垂直同步锁定一个稳定帧率,视频播放反而正常了。
如果这些还不够,那就得使出“杀手锏”了。在任务管理器里把“桌面窗口管理器”的进程优先级从高改为正常,或者直接结束掉它的进程。注意,结束桌面窗口管理器后Win8的Aero特效会消失,窗口边框变成纯色,但游戏的性能会立刻恢复。这个方法副作用较大,适合玩游戏时实在受不了卡的临时做法,玩完再重启一下系统恢复就行了。
多说一句,有双显卡笔记本的用户要小心。Win8的双显卡切换技术不成熟,独显在游戏里忙活,核显负责视频解码,这两个显卡之间的数据交换通道是PCIe总线,带宽有限。一边玩游戏一边放视频,相当于让独显算好的帧先传到核显再放出来,延迟自然高得离谱。你要是能在主板BIOS里屏蔽核显强制用独显,这种卡顿也会消失。
那么问题来了,有没有一劳永逸的办法?坦白讲,Windows 8本身就是个过渡系统,微软当年自己都承认它在桌面体验上做得太激进,很多原本在Win7上好好的交互逻辑都被砍掉了,换来的是磁贴界面和触摸优化。如果你非要坚守Win8,那就得接受游戏和视频不能两全的这个宿命。但换个角度想,现在Win10的LTSC版本轻量化做得很好,游戏兼容性也完爆Win8。你要是实在不想升级系统,用第三方工具把Win8卸掉桌面窗口管理器换上经典shell,也能勉强抢救一下。
说来说去,游戏卡顿的核心就是Win8太喜欢掺和你的事。它非要在你专心玩游戏的时候盯着你,还非要给你排序好视频和游戏的渲染优先级。最后给个实在的建议,别在Windows 8上浪费太多时间折腾了,除非你的电脑硬件非常老只能跑Win8。否则升级系统或者干脆在玩游戏时把视频放到备用设备上看,来得更省心。