当你想买一块最好的显卡时,性能往往被列为最重要的方面(对我们中的许多人来说,自然还有价格)--如果你想看看各种显卡是如何叠加的,请查看我们的GPU天梯榜。但是最近,我们看到更多的游戏似乎需要大量的显存,可能是16GB或更多。《星球大战绝地求生》、《最后生还者》第一部、《战锤40K:黑暗之潮》、《霍格沃茨遗产》、《最终幻想7重制版》、《艾尔登法环》......名单上的游戏越来越多,根据你选择的设置和分辨率,它们的显存使用率可以超过8GB甚至12GB。不过,到底是怎么回事,你到底需要多少显存?
从表面上看,你可能认为这只是一个更高的分辨率自然需要更多的显存。3840x2160(4K)的像素是1920x1080(1080p)的四倍,而2560x1440(1440p)的像素是2.25倍。但是,虽然这可以极大地增加你的GPU需要执行的计算数量,但就其本身而言,它实际上并没有使游戏使用更多的显存。
缓冲区不够用吗?
现在的游戏有很多缓冲区。有帧缓冲区、深度缓冲区、几何缓冲区、用于阴影贴图和照明的缓冲区、延迟渲染缓冲区,以及潜在的用于DLSS和FSR2等升频技术的缓冲区。对于光线追踪来说,还可能有额外的存储需求,比如边界体积层次结构(BVH)。总之,但有很多东西都需要显存。
这些内存需求随着分辨率的提高而增加。以帧缓冲区为例,提高四倍的分辨率通常意味着使用四倍的显存。对每个缓冲区都这样做似乎是个大问题。但当你计算时,它实际上并不那么糟糕。
使用1080p分辨率意味着每个缓冲区需要8,294,400字节(1920*1080像素,每个像素4字节)。4K将这个数字翻了两番,达到33,177,600字节,而介于两者之间的1440p则需要14,745,600字节。假设一个游戏中使用了10个这样的缓冲区。4K和1080p之间的差异最终仍然只有237兆字节--而且现代GPU中可能存在实时压缩/解压技术,可以减少某些缓冲区的存储需求。
大多数现代图形卡至少有8GB的显存,所以内存需求增加约0.2GB应该不会有太大影响。但是,如果你曾经从1440p的游戏运行基本正常,到看到你的显卡在4K时窒息,你就知道有什么东西在造成问题。可能不是更大的缓冲区导致了4K的问题,但显然有什么事情发生了。
Nvidia让我们知道,它目前的架构不压缩帧缓冲区,"基于成本/效益的权衡"。然而,我们不确定AMD的GPU是否压缩帧缓冲器。其他缓冲区可能使用也可能不使用某种形式的无损压缩,这取决于特定的缓冲区和应用。实际的罪魁祸首最终是所有的纹理,其中包括阴影贴图、环境贴图和任何其他与纹理有关的项目,这些都被存储在显存中。你可能会说,"咄!大家都已经知道了"。但这不仅仅是有更高质量的纹理的情况。还有比你可能考虑到的更多的事情。
罪魁祸首是纹理
以《FarCry 6》这样的游戏为例。这是我们目前测试套件中的一个游戏,我们知道当你加载高清纹理包,并试图在8GB显存的显卡上以4K运行时,它可能会遇到显存问题。Far Cry 6在RTX 3070上以1440p的超强设置(但没有光线追踪)运行得很好,平均刚超过100帧。然而,跳到4K时,性能会下降。有时,它可以达到60帧以下,但在测试中,我们也会遇到只运行10-20帧的情况。这有点奇怪,因为它在运行时波动很大,但这是一个不同的故事。
《全面战争:战锤3》是另一款在8GB 显存的显卡上从1440p到4K时,性能会有很大下降的游戏。RTX 3070在1440p ultra时平均为65帧,在4K ultra时只有28帧,性能下降了57%。AMD的RX 6650 XT从1440p的36帧下降到4K的14帧,下降了61%。同时,12GB的RTX 3060从44帧下降到23帧--对性能的打击仍然很大,但现在它 "只 "慢了48%。这有耗尽显存的所有迹象,但幕后到底发生了什么?
主要的罪魁祸首是纹理,它与一种叫做MIP映射的东西有关。Mipmaps已经在计算机图形中使用了几十年(根据维基百科,它们是由Lance Williams在1983年发明的)。其原理是预先计算纹理的低分辨率版本,通常使用高质量的调整大小操作。
通常,当游戏引擎应用纹理时,它将使用比物体在显示器上覆盖的像素数(按比例)高一步的纹理分辨率--假设有这样的纹理分辨率。因此,假设有一个无遮挡的长方形多边形覆盖了1080p显示屏的三分之一。这意味着该多边形占据了640x360像素,所以游戏引擎最多只能使用1024x1024的纹理。
将窗口移近多边形,使其完全填满整个显示器。现在它覆盖了1920x1080像素,而游戏引擎可以选择一个2048x2048的mipmap。再靠近一点,这样就只有一半的多边形是可见的,但它却充满了整个屏幕。然后,也只有在那时,(典型的)mipmapping才会选择4096x4096的纹理--假设有一个可用,如果不可用,你会发现纹理的清晰度在下降。
你要多大显存?
这意味着,支持2K纹理(2048x2048分辨率)的游戏,如果你只在1080p下游戏,其纹理质量实际上是 "最大 "的。由于现代游戏中使用了更复杂的几何图形和环境,大多数多边形和纹理很可能根本不需要2K的纹理--1K就足够了。即使是1440p也往往只需要使用2K(或更低分辨率)的纹理。这是因为,即使4K纹理(4096x4096)在技术上是可用的,大多数多边形覆盖的宽度或高度都远远低于2048像素,但如果你非常接近表面,使其通过该阈值,则是例外。
你大概能看出这一点。把显示器的分辨率提高到4K,突然间,游戏引擎和GPU会发现需要更频繁地在显存中存储和使用高分辨率的纹理。图像质量可能甚至不会增加那么多,但对显存的要求基本上会增加两倍。
所以临界点在哪里?一般来说,16GB显存是玩4K游戏的起码的要求,不至于因为显存容量拖后腿(拖后腿的是GPU的核心、显存位宽频率这些),当然显存是多多益善,这也是为何4090有24GB。现在显卡基本是这么分档的:8G的1080P为主,1440P也能凑合,12GB的是1440P,也就是常说的2K分辨率游戏的主战场,如果你买了4K显示器,还是配上16G以上显存的显卡吧。
评论