无边框还是全屏?这是每个电脑游戏玩家都会遇到的问题,要么是出于好奇,要么是朋友试图为他们的电脑游戏获得最佳设置。遵循表面建议,例如我们在无边框游戏与全屏游戏的简单指南中列出的内容,将使您走上正确的道路。无边框更方便,但可能会导致某些游戏的性能下降。从理论上讲,这就是您需要知道的全部内容。但困扰我存在的问题仍然存在:为什么?
如果您在网上进行搜索,您会得到关于无边框还是全屏是否更适合您的性能的截然不同的建议。有人说没有区别。其他人则声称,《绝地求生》等游戏的全屏模式带来了巨大的改进。 还有更多人说,在像《辐射 4》这样的游戏中,使用无边界会获得更好的性能。您不需要遵循这个建议,而且您可能不应该在更普遍的基础上遵循,但为什么对于什么有这么多不同的说法应该是图形菜单中最简单的设置之一?
我想找出答案,并且我确实尝试过。然而,最初是对无边框和全屏游戏的数据驱动剖析,很快就变成了一个关于图像如何在屏幕上显示的研究项目。如果你众所周知(或字面上)触摸了草地,那么这不是一个辩论,甚至不是一个值得在 2024 年讨论的话题,但如果你把百叶窗拉上几分钟,我会引导你走上一条密集、极其书呆子的道路。游戏如何显示在屏幕上。
展示我的作品
我尝试测试游戏。我真的做到了。我写这篇文章的最初计划是运行尽可能多的现代游戏 – 这些游戏是在过去五年中发布的,并在全屏模式和无边框模式下对它们进行基准测试。我对每种显示模式的每个游戏运行了五遍,希望得到一个平均值,能够显示出哪怕是很小的性能差异。他们只是不在那儿。
你可以在上面看到我完成的几款游戏。我计划进行更多测试,但是一次又一次的跑步,一场又一场的比赛,我一直看到完全相同的结果。也许有一些游戏,例如《绝地求生》和《辐射 4》 ,存在差异,但如果我什至无法在《地平线:零之曙光》和《荒野大镖客 2》等大型游戏中偶然发现细微的差异,那么很难说存在差异。一致的趋势。
唯一的例外是《杀手 3》。这并不是一个巨大的差异,但它是一个可以衡量的差异。 《杀手 3》在我测试的游戏中是一个奇怪的地方——我还在《黑神话:悟空》和《归来》中各运行了一次,性能没有任何差异——但这不仅仅是因为存在性能差异。与我测试的其他游戏不同, 《杀手 3》没有无边框选项。相反,它有一个全屏选项和一个独家全屏选项。
这种命名上的差异意义重大,但大多数游戏都没有注意到这一点。
全屏是什么意思
您可能不知道“全屏”在游戏中的实际含义。我也可以自信地说,因为游戏本身很可能并不清楚全屏的含义。在过去的几年里,全屏设置是指独占全屏。这意味着显示适配器(您的显卡)可以完全控制显示。如果您启动较旧的游戏并切换到全屏模式,您会看到屏幕空白几秒钟。那是你的显卡接管了。
如果您没有运行专用的全屏应用程序,则您的显示由 Windows 中的桌面窗口管理器(或 DWM)控制。它首先在 Windows Vista 中引入,作为在该操作系统中启用 Aero 功能的一种方式。它是一种桌面合成服务,整个屏幕在显示在屏幕上之前会渲染(或绘制)到内存中的某个位置。以前,窗口会直接绘制到显示器上。
关于全屏和无边框游戏的传统智慧又回到了 DWM。这个想法是,在无边框模式下,即使游戏占据了整个显示器,您也必须在 DWM 上花费一些资源。为了确保最佳性能,您需要在全屏模式下运行,完全绕过 DWM 及其可能带来的任何潜在性能损失。
到 2024 年,这种智慧会带来两个问题。首先,游戏对于全屏和无边框的实际含义并不一致。例如,像《地平线:零之曙光》这样的游戏,尽管提供了无边框和全屏选项,但并不使用专有的全屏模式。而较新的游戏,例如《黑神话:悟空》,根本没有全屏选项。 《杀手 3》表现出性能差异是有原因的——它有一个独特的全屏模式。
第二个问题更复杂,它与图像在显示器上的实际显示方式有关。在过去的几年里,DWM 可能会带来性能损失,但今天,它比这更聪明。
翻转框架
随着Windows 8的发布,微软推出了DXGI翻转演示模型。 DXGI 是 DirectX 图形基础设施,它是游戏和显卡之间的一长串中间件中的一个组件。根据微软自己的文档,翻转演示模型“减少了系统资源负载并提高了性能”。这个想法是将渲染的帧“翻转”到屏幕上,而不是从内存中的某个位置复制它。
让我们先回顾一下。在图形渲染中,有一种称为交换链的东西。图形在后台缓冲区中呈现,然后该缓冲区被翻转到显示器上。想象一下一叠便利贴。最上面那张便签下方的便签上绘制了一张图像。一旦完成,前面的注释就会翻转过来,显示下面的内容。这就是交换链的工作原理。
它也可以立即翻转。当您的显卡显示帧时,它会显示所谓的前缓冲区。该图像附有一个指针。后台缓冲区正在被绘制出屏幕。当帧准备就绪时,所需要做的只是更改指针。我们不是指向前缓冲区,而是指向后缓冲区,而后缓冲区又成为新的前缓冲区。旧的前台缓冲区(现在的后台缓冲区)用于渲染下一帧,并且它们会来回移动。您可以拥有一系列更复杂的缓冲区,但这就是交换链在高级别上的工作方式。
了解翻转的含义非常重要,因为这是 Windows 8 为渲染无边界游戏所做的关键更改。在翻转呈现模型之前,DWM 将使用位块传输。这需要将后台缓冲区复制到 DWM,然后在屏幕上进行合成。翻转模型允许 DWM 看到指向帧的指针。当需要组合下一帧时,所需要的只是指针变化,就像交换链一样。您可以避免读取和写入操作。
这一变化改变了游戏在 Windows 中的实际运行方式。现在,大多数游戏,即使在全屏模式下运行,仍将使用 DWM 进行编写。它使您能够快速Alt+Tab退出游戏,并确保叠加层正常工作。特别是对于较旧的游戏,您会看到一些“禁用全屏优化”的建议,该建议内置于 Windows 中,以便在出现任何问题时让显卡完全控制显示。
解决无关紧要的争论
在翻转演示模型之前,有一种观点认为,独占全屏是获得最佳性能的方法,即使性能优势很小。今天,这真的不重要了。您可能会遇到某个特定的游戏(尤其是较旧的游戏),其中存在性能差异。或者,您可能需要禁用全屏优化来修复性能问题,具体取决于您的配置。但当谈到是否应该选择无边框或全屏时,您可以选择您想要的任何内容。
也许这应该是一个令人失望的答案,因为这个话题让我陷入了困境,但事实并非如此。它为讨论增添了细微差别,并且填补了几十年来论坛帖子围绕无国界辩论而留下的空白,而从未将其钉在头上。如果没有别的事,现在我可以坚持使用无边界模式,而不必担心我是否会放弃性能。