英伟达显卡着色缓存器三重缓存应该开吗

[indent]虽然垂直同步,三重缓冲已经是老话题了,但是Anandtech这篇普及知识的文章确实出类拔萃,为了更好地方便大家更深入的了解这些3D技术,在此我翻译了这篇文章,由于自己能力有限,错误和疏忽在所难免。&[/indent]文章来源:文章标题:Triple&Buffering:&Why&We&Love&It文章作者:Derek&Wilson&文章时间:日引子我们往往不愿过多讨论哪些选项在游戏中应该永远开启。相反,我们往往把重点放在我们的评测内容上。老实说,我们对玩游戏的建议设置与我们的评测设置非常相似,除了一个非常重要的选项:开启三重缓冲(这同时意味着开启垂直同步V-sync&)如果可能的话。虽然这不是一个所有的游戏都有的选项——但它真的很必要要。我们现在来说为什么要开启三重缓冲以及为什么开发商应该支持它。对大多数游戏玩家来说,当涉及到任何关于垂直同步(V-sync)的时候&,都会在驱动程序或游戏中关闭它。事实上,我们做评测时也会这样做,因为它使我们更清楚地看到游戏的真实性能。而那些喜欢打开垂直同步的玩家,则是为了避免在某些情况下发生视觉“撕裂”效果。我们要尝试一些不同的写作方式。下午中将包括两个投票调查,首页以及文章的末尾。第一个调查报告的目的反馈我们的读者对垂直同步、双重与三重缓冲的了解程度。评论&评论&这个投票结果取之于日下午5点看完正文后后,我们的读者可以参与另一个投票,其目的是本文对读者的影响是否会左右将来的游戏设置。首先将是审视一下双重缓冲和垂直同步的概念,然后我们会谈论三重缓冲。对于那些执着于细节的读者(或谁需要更多的有说服力的证据),我们将提供有丰富的插图更深入的剖析每种方法。什么是双重缓冲,垂直同步和三重缓冲?当电脑需要在显示器上显示东西时,它按照它的想法画一幅需要显示的图像(我们称之为缓冲区Buffer)并传输给显示器。在过去,只有一个缓冲区并不断的被电脑绘制和发送给显示器。这种做法有一些优势,但也有非常大的缺点。最值得注意的是,当物体在屏幕上进行了更新,他们往往会导致闪烁。评论&评论&计算机在绘制的同时发送内容。所有插图感谢劳拉.威尔逊提供。为了解决同一缓冲区内绘制的同时又读取的问题,使用双重缓冲,就成了最经济的方式。双重缓冲背后的原理是:计算机只绘制一个缓冲区(所谓的“后部”缓冲),同时发送另一个缓冲(所谓的“前部”缓冲)到屏幕上。当计算机完成绘制后部缓冲时,图像绘制程序会执行缓冲区“交换”。这种交换不会移动任何东西:唯一的改变是交换两个缓冲器的名称,前部缓冲区成为后部缓冲区的同时后部缓冲区成为前部缓冲区。评论&评论&计算机绘制后部缓冲,前部缓冲发送给显示器。经过缓冲交换,程序可以开始起在新的后部缓冲区绘制同时电脑传送新的前部缓冲区给显示器,直至下一次缓冲区交换发生。从此一切都和谐了,恩,大多数情况下如此。这种形式的双重缓冲,“交换”随时可能发生。这意味着,在电脑发送数据给显示器的同时,就可能发生“交换”。在这种情况下,(同一帧下)其余的画面根据新的前部缓冲器进行显示。如果新前部缓冲内容与旧的前部缓冲相差很大,就会观察到一种视觉上的“撕裂”感。这种类型的问题,常常出现在高帧率的FPS游戏中,特别是转角处快速运动时看到。由于快速运动,每帧有很大的不同,当“交换”发生在前后差异很大的场景绘制途中,就会被察觉到同时干扰人的视觉感受。最常见的做法是等待显示器准备充分时“交换”缓冲器。显示器准备充分意味着在完成绘制完上一幅图像后刚好赶上下个垂直刷新周期将会开始。所以同步缓冲区交换与垂直刷新被称作垂直同步&。开启垂直同步确实能修复图像“撕裂”,它同时会设置游戏的内部帧率的最大值与显示器的的刷新率一致(大多数液晶面板通常是60Hz)。这可能会牺牲的性能:如果游戏不能保持在每秒60帧的运行时,(图像绘制程序)会人为的增加延迟到图像帧输出之间来达到同步效果。哪怕是每一帧所需的绘制时间超过16.67毫秒一点点(1/60秒)都可能导致性能可减少将近一半&。在这种情况下,帧速率将下降到每秒30帧,尽管游戏的运行速度极其接近60帧&。消除画面撕裂和保持帧数一致,确实有助于增加游戏流畅度,这是单纯的双重缓冲模式无法提供的。同时开启垂直同步后的输入延迟将会成为更加严重的问题。这是因为人为加入的延迟增加了实际发生的事情(当帧被绘制时)和最终显示在屏幕上的画面的区别。输入延迟始终存在(我们不可能在绘制的瞬间实时的反映变化),但诀窍是,尽量减少它。我们目前的选择一个是只进行双重缓冲但是会导致解决画面撕裂问题,二是进行垂直同步的双重缓存但是会影响性能和输入延迟。但是不要担心,有一种选择,结合了两者的优点,既不牺牲画面质量也不会影响真实的性能。这种选择就是三重缓冲。评论&评论&计算机在发送前部缓冲时可以有两个后部缓冲区供使用。光看这个名字就已经很明显了:三重缓冲使用三个缓冲区。这种额外的缓冲区使计算机有足够的空间来锁定一个正被送往显示器的缓冲区(以避免撕裂),同时也不限制图像的绘制速度(就算是有一个缓冲区被锁定,也能来回绘制剩下的两个缓冲区)。软件来回绘制两个后部缓冲器,当每一次刷新时,前部缓冲区就与最近完成的那个后部缓冲区交换。这确实需要一些额外的图形卡存储空间(大约15到25M之间),但与现代的图形卡动辄512MB显存来说这不构成什么问题。换言之,有了三重缓冲我们获得了不开启垂直同步时高效的性能和相似的低输入延迟,同时还实现了开启垂直同步时的图像质量。现在,重要的一点是,当你看开启了三重缓冲游戏的“帧数”时,你将不会看到实际的“性能”。这是因为帧计数器像FRAPS这种只能计算前部缓冲(就是目前正在被显示器绘制的那个缓冲)换出的次数(即是我们通常所说的广义上的“帧数”)。在双重缓冲时,数据显示在每个帧绘制并被显示器显示的时候(也就是说,如果另一帧在下一次刷新前绘制好了,它可能不会显示出来)。而三重缓冲,前部缓冲在每个刷新周期最多只“交换”一次&。FRAPS软件仍在幕后的两个后部缓冲区上绘制时间。这意味着一旦发生前部缓冲区交换,与开启垂直同步的双重缓冲不同,我们并没有加入人为的延迟。同时也异于没有开启垂直同步的双重缓冲&,一旦我们开始传输一个完整绘制好的帧给显示器时,我们不会在中途切换到另一个帧去。最后讲一个三重缓冲会导致的问题。如果一个帧只比刷新完成晚很小一点点就被生成出来,在无垂直同步的双重缓冲情况下&,将在屏幕上方附近产生画面撕裂,而其余部分则会比三重缓冲更准确的反应实时变化。即使在这种情况下,但至少帧的部分的画面元素双重缓冲和三重缓冲是一致的,同时三重缓冲的延迟也非常难以察觉,至少比开启了垂直同步的双重缓冲延迟问题好得多。即使你认为这是无垂直同步的双重缓冲模式的优点,这优点也是建立在很小几率(不影响视觉的画面撕裂)之上。让我们带着这些理论通过例子来比较这三种绘制方式。深度挖掘:疾驰的骏马为例比起一堆数学计算和传统的时间图标,我们决定采用一个更加直观的表现形式。在图表中,我们会给大家演示随着时间电脑实际的生成的图像以及最终被显示器显示出来的图像。希望这会有助于说明这些方法数量和质量之间的差别。我们使用的是一个已有的(来自维基百科上面的动画)的“游戏”例子:渲染一匹驰骋在屏幕上的马。最基础的一点是,我们的(对)游戏绘制的速度比我们的显示器刷新率高5倍(在一次缓冲区交换发生时它可以渲染5幅不同的图像)。在绘制每帧性的一致性上是虚构的,因为一些(复杂)帧将比另一些(简单帧)需要更长的时间来绘制。我们去除掉这些变量以免使得的复杂性增加。我们这里以60Hz的刷新率和300&FPS游戏性能为基础讨论的时间和延迟,但我们并不想把图像绘制得太复杂。显然,这是一个理论上的例子,但它确实解释清楚了背后发生的事情。首先,我们来看看关闭垂直同步时的双重缓冲。在这种情况下,缓冲区会在每一个图像绘制好后交换。这会导致最新的图像覆盖先前图像的局部。以下就是在这种情况下它看起来样子:评论&评论&很好的性能&,但画质不佳。时间轴标记0至15&,每两个标记之间为一个步骤,每个步骤是3.33毫秒。时间轴上每个缓冲区在3.3毫秒间隔期间就有一张图片,这张图片实时的显示了骑手和马的动作。底部的大型图片这代表着每个垂直刷新周期在显示器上显示出来的图像。这就是我们在眼睛说看见的实际图像。其他(未绘制)帧的价值就在于最小化了输入延迟。我们当然可以看到,在这个极端的情况下,画面撕裂可能是什么样子。在这个快速运动的例子中,我选择了只对合成其中三帧的动画,但在实际现实中可能更多也可能更少。图像的宽度反映了实际中图形硬件传输图像给显示器绘制时所占用的时间。绘制的过程比刷新周期时间要少一些,由于我不是很精通显示器技术,所以具体是多少时间我无从得知。按照我的假设,我用了大约一半的时间从发送帧到显示器显示出来(因此三个帧的部分被显示出来)。&。如果我不得不猜测的话,我想我高估发送帧到显示器所花费的时间。对于上述情况,&FRAPS将会显示300FPS,但实际人们得到完整显示的图像帧率仅仅只达到刷新率的最大值(在这个例子中,&60帧每秒)。一个帧完成渲染并开始在屏幕上绘制的延迟(这是输入延迟)将会小于3.3毫秒。当我们打开垂直同步,画面撕裂消失了,但我们的实际性能下降并且输入延迟上升。以下是我们所看到的。评论&评论&优良的画质,但糟糕的性能和输入延迟。如果我们考虑所有这些图像都是一样的并且渲染的耗时都是一致的,我们就可以看到渲染“背后”的真实情况。在我们的第一幅图中没有撕裂的情况出现,但我们付出代价是过时内容。此外,除了报告实际帧率为60FPS。计算机最终少做了大量的工作,当然,最大的牺牲就是显示器每秒钟最多显示60幅图像。这时,我们为了消除画面撕裂的代价就是延迟从最多3.3毫秒增加到13.3毫秒。对于开启垂直同步刷新率为60Hz的显示器,渲染完成并显示出来的延迟将会是完整的1/60秒(16.67毫秒),但是实际延迟有可能会更高。由于在前部缓冲区交换完成前没有更多的空间可以用来绘制帧,而如果图形卡绘制一幅图像的时间本身就超过了一个循环周期的情况下再开启锤子同步将会更加严重的影响延迟。现在移步到三重缓冲,我们可以看到它结合了上面两种办法的优势。评论&评论&两全其美。在这里。我们输入延迟降到了3.3ms,同时消除了画面撕裂。我们的实际性能回到了300FPS,当然这未必能从只监视前部缓冲的软件统计上显示出来。再次,每秒钟在显示器上最多只显示60幅图像,但是这60幅图像都是在刷新周期前最新绘制出来的。当然这其中有些帧无垂直同步的双重缓冲时会显得比三重缓冲“新”一点,但是代价将会是潜在的图像撕裂。从挑剔的角度来看,如果你没有看到双重缓冲下的画面撕裂,那么那些重新刷新的局部对前一帧来说差异也并不明显。换言之,只有当您看到画面撕裂,你才体会到这种方式(无垂直同步的双重缓冲)信息反馈及时的优势。但是,即便信息反馈更为及时,在伴随着画面撕裂的情况下又有多大的用处呢?结论综上所述。三重缓冲使你有了开启/关闭垂直同步时的双重缓冲所有好处&。我们得到了流畅而且没有撕裂的帧。这些帧只在刷新时才被交换至前部缓冲,它们还拥有近似关闭垂直同步的双重缓冲时那样低的输入延迟。尽管“性能”并没有得到正确的显示(FRAPS),启用三重缓冲时,图形硬件依然同未开启垂直同步的双重缓冲模式一样辛勤工作。三重缓冲确实要占用更多的图形卡显存,但对现代的硬件来说,这算不上什么问题。概括一下,从我们前面的例子里取出三幅帧来进行横向比较。评论&评论&三重缓冲评论&评论&双重缓冲评论&评论&垂直同步下的双重缓冲我们已经提出了定性和定量的论点论据以支持三重缓冲。所以,现在的问题是:这些数据有意义吗?人们会比阅读这篇文章之前更愿意开启三重缓冲吗?让我们来看看答案。评论&评论&这个投票结果取之于日下午5点无论结果如何,我们真心希望本文有助于解释一个经常被忽视的选择。虽然它我们评测时来说没有什么意义,但三重缓冲是实用至上的。希望我们的展示能帮助我们的读者理解为什么他们应该给三重缓冲一个机会。我们也希望更多的开发商将三重缓冲作为游戏的默认选项,因为它会给那些注重画质和性能的玩家提供最好的游戏体验。目前只有一小撮游戏把三重缓冲作为游戏的可选项,&NVIDIA和AMD的驱动程序目前只允许强制OpenGL游戏开启三重缓冲。这确实需要改变,因为现在没有任何理由不让三重缓冲流行起来。译注本文交代了目前广泛用于光栅化图像中的图像在显卡和显示器之间传递时使用的输出缓冲技术,深入挖掘了3种常见技术的特征,并提出游戏中应该广泛使用三重缓冲。三重缓冲虽然是个好技术,但是必须要游戏开发时就引入,一般比较有实力的开发厂商如暴雪,Valve等会内置在游戏设置中,在此我再补充一点其他地方找到的资料:1.关于双重缓冲导致的画面撕裂现象具体截图:评论&评论&来自于于Doom32.关于原文所用到的动画:评论&评论&来自于于wikipedia3.应用了三重缓冲的游戏例子:大量使用iD&OpenGL引擎的游戏,如FEAR使用最近Source引擎的游戏,如Left&4&Dead:评论&评论&Left&4&Dead评论&评论&魔兽世界4.关于开启和关闭三重缓冲性能对比CRT显示器,以70Hz作为刷新率评论&评论&取材于FEAR测试,左边为双重缓冲+垂直同步,右边为三重缓冲+垂直同步
好贴,楼下继续
15:37:59 修改
.cn/images/bbs4/logo//0.jpg
開了triple&buffering感覺性能下降不少,但是畫面(尤其是遠景)感覺比較好不過這帖貌似沒提到&force&Z&buffer&Depth?
高山,銀河,俺の歌を聞け!!
.cn/images/upload/upc/tx/itbbs//.jpg
难得的技术贴,顶啊
这么多年了,终于明白雷峰叔叔为什么扶老奶奶不留名了!
Re:[mcy9569,4楼]以下是引用&mcy9569&在4楼的发言:难得的技术贴,顶啊
鸡鸡比较喜欢雌所
.cn/images/bbs4/logo/.jpg
其实CS:S中早就有这个选项了,至今都认为HL引擎画面是最好的!
16:16:21 修改
Intel Core 2 Quad Q.5
ASUS P5Q DELUXE
A-DATA 红色威龙 DDRII800 4G
WDC_WD10EALS-00ZA8A0 1000GB
翔升GTX470 金刚军团 P1025
Thermaltake 暗黑系列 AH600P
九州风神黑虎鲸+酷冷至尊武尊神2
想了,打了,约了,定了,见了,抱了,亲了,摸了,脱了,舔了,湿了,硬了,进了,冲了,叫了,射了,来了,爽了,软了,瘫了,洗了,擦了,干了,睡了,又想了……
Michael &Method& So
Lars &Naikon& Olaisen
Griffin &shaGuar& Benger
Ola &elemeNt& Moum
Jorgen &XeqtR& Johannessen
不开垂直同步受不了
这么好的帖子没人顶,我自己顶
您需要登录后才可以发帖
其他登录方式:Access denied |
used Cloudflare to restrict access
Please enable cookies.
What happened?
The owner of this website () has banned your access based on your browser's signature (3b75f9c4b30477fc-ua98).小科普 | 游戏中的“垂直同步”与“三重缓冲”究竟是个啥?
从今天开始,我们会开启“小教程”的兄弟栏目——小科普,给大家介绍在配电脑或玩游戏过程中经常会遇到的专业名词。
第一期“小科普”我们来讲讲游戏中经常会遇到的一个画面选项——垂直同步
我们曾在一期语音里和大家讲探讨过垂直同步的功用,可惜语音有 60 秒的长度限制,并不能和大家解释清楚,那么今天就来详细分析一下“垂直同步”:
它到底是干嘛用的?
它有什么缺点吗?
和它搭档的“三重缓冲”又是个啥?
以及最重要的一点:我在游戏中到底该不该开启它?
(本文中的部分内容参考自外媒 Anandtech 的技术文章,我们将在文末提供其链接)
另外,本文阅读起来有难度,如果你是抱着太长不看的心态阅读,建议直接看最后的结论 。
▌垂直同步是干嘛的?
要想解答这个问题,首先得来说说“垂直同步”所解决的问题——画面撕裂。当我们在玩游戏的时候,有没有遇到下图这种情况呢:
一帧画面被分割开了,这种情况便是“画面撕裂”。
不过你可能会说,我用的可是高端显卡呀,为什么还会出现这种问题呢?
你还别说,越是高端的显卡,跑到的帧数越高,还就越容易出现这种问题。
这里就要说说说画面撕裂产生的原因了。为了方便各位理解,我们先来简单说说显卡与显示器之间是如何工作的:
可以看到,显存中的“帧缓冲区”(Framebuffer)是图像传输的一个关键区域,显卡所生成的一帧画面会先被写入帧缓冲区。而一台 60Hz 的显示器每秒能够显示 60 幅画面,也就是说每 1/60 秒(当显示器刷新完一幅画面时)会给显卡发送一次“垂直同步信号“,向帧缓冲区索取一次画面数据,然后显示出来。
不过光有一个帧缓冲区会产生一个问题,这一个缓冲区会不断地写入新的画面并发送给显示器,这样一来“写入的全过程”就会被展现在屏幕上了,这就会导致画面闪烁等问题。因此,现代的图形工作流程中使用的多是双重缓冲:
双重缓冲有一前一后两个缓冲区,显卡只会将绘制完的图像写入后缓冲区,与此同时只有前缓冲区中的图像会被发送给显示器。
当后缓冲区中的“新鲜”图像写入完成后,注意啦,程序不会将后缓冲区的画面传输到前缓冲区,而是会进行缓冲区的交换(Swap)——将前缓冲区和后缓冲区的名字对调,即前缓冲区成了后缓冲区,后缓冲区成了前缓冲区。这样以后,刚刚绘制在后缓冲区的图像就能顺利地传给显示器了。经过这么一折腾,程序就可以在往后缓冲区写入图像的同时,不影响显卡将前缓冲区中的画面传给显示器,然后进行下一次“缓冲区交换”。
但是双重缓冲有个问题,两个缓冲区随时都可能发生交换,所以就会出现这种情况:前缓冲区中的画面才刚传输了一半给显示器,两个缓冲区就发生交换了,后面传输的都是原来后缓冲区中的画面(即下一帧画面)。于是,显示器上的一幅画面成了前后两帧的结合,这就是画面撕裂。这种问题在高帧率情况下尤为显著,因为帧率越高,前后缓冲区的交换就越为频繁,发生这种事件(画面没输出完就交换了)的概率自然也就更高。
-哇,原来画面撕裂是这么来的啊!那有没有什么办法能解决它呢?
-当然有了,那就是“垂直同步”选项。
(PS:“垂直同步”是一种简写,完整的称呼应是“等待垂直同步信号”)
开启垂直同步,就相当于在帧缓冲区里架设了红绿灯。当显示器尚未完成一帧画面的刷新时,红灯亮起,两个缓冲区不允许交换;当显示器刷新完一帧画面时,绿灯亮起,此时缓冲区可以进行交换了。这样以后就杜绝了“在进行数据传输的过程中交换缓冲区“的可能,自然也就解决了画面撕裂的问题。
不过为啥这个功能要叫“垂直同步”呢?这是因为在 CRT 大屁股显示器的年代,显示器的刷新是逐行或隔行刷新的,电子枪一行一行地打下去,打完每一行就称这一行完成了“水平同步”,打到最后一行的最后一个像素点就完成了一帧画面的显示,然后显示器会给显卡发送“垂直同步信号”,表明垂直向的像素点也完成了同步,即这一帧刷新完成了。
- 哇,垂直同步这么好,那我现在就去游戏里打开它,如何?
- 别急,“垂直同步”虽然能彻底杜绝画面撕裂,但是它的副作用同样很明显——操作延迟。
在帧率比显示器刷新率高很多的情况下,为了将显示器的刷新时间和显卡向缓冲区写入画面的时间保持同步,必然就需要人为地增加延迟,来延后“过快生成的画面“向显示器的输出。因此在竞技游戏中,开启垂直同步后的手感会大打折扣。
这里用一个实例来作说明:
这是未开启垂直同步时,传统双重缓冲下的图像,由于 300fps 的高帧率,每两个“垂直同步信号“之间会生成高达 5 幅画面,这就导致了严重的画面撕裂。
这是开启了垂直同步后的图像,可以看得出画面撕裂的问题确实得到了解决,但为了将帧缓存交换的时间和显示器刷新时间保持同步,帧缓存中的画面将会延后一个刷新周期被显示出来。在使用 60Hz 显示器时,一个刷新周期的时间高达 16.67ms,也就是说本来一秒五帧的图像延迟只有 3.3ms,现在因为要干等一个刷新周期,延迟一下子就增加到了 13.3ms,对于连 5ms 和 1ms 显示器都能分清的电竞选手而言,这多出来的10毫秒延迟是非常要命的。
- 哎呀,不开垂直同步会画面撕裂,开了又会有延迟,那画质和性能就不能兼得吗?
- 能啊,要想画质与操作兼得,有两个办法
第一个办法,买个 G-SYNC 或 FreeSync 的电竞显示器
这些显示器可以动态调整自己的刷新率,使其和显卡输出画面的帧率完全同步,这样不仅可以在解决画面撕裂的同时不出现操作延迟,还可以在帧率低于 60fps 的情况下同样提供垂直同步的效果,消除画面撕裂。不过,这毕竟是个要花大钱的办法,而且据我所知,几乎没有哪个电竞屏的屏幕素质是很优秀的,为了达到低延迟,许多电竞屏都采用了 TN 面板,对于电竞选手而言当然无可厚非,但对我这样的画面党来说,这样的屏幕看起来就有点难以接受了。
第二个办法,相信大家已经猜到了:三重缓冲!
既然垂直同步的延迟是因为显卡输出完一幅图像就歇着等待红绿灯了,无法响应鼠标键盘最新的操作,那么我们为啥不让显卡一直工作呢?这样不就能一直响应最新的输入操作了吗?三重缓冲就是基于这种思路设计的,它在双重缓冲的基础上再加入了一个帧缓冲区,组成了一个前缓冲区,两个后缓冲区的规格。程序来回向两个后缓冲区写入图像,每次显示器刷新时,前缓冲区就和最近完成写入的那个后缓冲区交换。可以看到,即便有一个缓冲区要受到红绿灯的管控,另外两个缓冲区还是可以来回写入图像,于是就不需要人为增加画面延迟了。
这张图便说明了三重缓冲的原理,这种方法结合了前两种的优点。
不过三重缓冲也并非完美无瑕。首先由于需要一个额外的帧缓冲区,因此它会占用更多的显存空间。比如我们在 4K 分辨率下运行《质量效应:仙女座》,三重缓冲额外占用了约 200MB 的显存,对我们而言尚可接受。其次,它的延迟虽然远远低于双重缓冲下的垂直同步,但相比不开垂直同步还是可能略微高一点,因为无垂直同步的画面在给你带来撕裂的同时,也会包含最新帧的图像,如果开启了三重缓冲,那么画面中这“后面一帧“的多余元素就会被剔除,延迟自然会略微高于前者一点点。不过和满屏的画面撕裂相比,我显然还是会选择三重缓冲的……
看到这里,你肯定迫不及待地想要开启三重缓冲了吧,的确,垂直同步+三重缓冲是种非常棒的技术,可以有效地改善画面撕裂,同时不造成画面延迟。但是问题来了,DirectX 并不原生支持三重缓冲!而是使用了一种叫“预渲染队列“的方式。这种方式与三重缓冲不同的地方在于,它不会丢弃显卡渲染完却未被使用的帧(即过时的帧),而会强制将这些旧帧显示出来,因此会造成更大的操作延迟,甚至比光开垂直同步的延迟还要大。DirectX 的游戏若想使用三重缓冲,需要游戏厂商提供相应的支持。
很可惜的是,不少采用 DX API 游戏虽然在画面选项里提供了”三重缓冲“选项,实际上却是使用了“包含 3 个缓存空间的预渲染队列”,这些游戏使用的到底是不是真正的三重缓冲,只有你亲身体验后才能弄明白。所以,能不能开启三重缓冲,还要看游戏厂商的心情啊!
垂直同步和三重缓冲到底该不该开呢?如果游戏支持,条件允许的话(对于 60Hz 显示器的用户,显卡能跑到 60 帧以上),还是尽量开起来试试。但如果你的显卡达不到这么高的速度,或者你经过试验发现某一款游戏在三重缓冲下的操作延迟依然很高,那还是把它关了吧。
本文的阅读难度不低
如果大家有任何疑惑
都可以给我们留言
我们在之后会考虑
将本文做成视频的形式
以便更形象地向大家说明
“垂直同步”和“三重缓冲”的工作原理
如果各位有任何其他的名词希望我们解释
也可以告诉我们哦!
最后附上参考资料,欢迎大家参阅
原文来自外媒Anandtech:
Triple Buffering: Why We Love It
/show/2794/
国内超能网的译文:
/thread-.html
喜欢我们的推送别忘了点一个顶,
向亲朋好友推荐一下我们的文章,
或者赞赏一下,
我们下期再见啦!
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点发现驱动里默认是关闭的,不知有什么用
Triple&Buffering使用一个前置缓存和两个后置缓存。在着色完第一个后置缓冲区的数据后,立即开始处理第二个后置缓冲区。今天,不少新游戏都采用的是Triple&Buffering,Trible&Buffering正逐渐成为发展的趋势,因为它没有Vsync(萤幕的垂直刷新频率)等待的时间,游戏也将更加流畅。Triple&Buffering也是3Dmark2000测试的内定值设定。&
开吧~至少没坏处
.cn/images/bbs4/logo/.gif
您需要登录后才可以发帖
其他登录方式:}

我要回帖

更多关于 黑苹果只重建显卡缓存 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信