MCPLive > 杂志文章 > N/A之战新领地 DirectX 12初窥解析

N/A之战新领地 DirectX 12初窥解析

2015-12-09《微型计算机》评测室《微型计算机》2015年12月上

DirectX 12发布已经有一段时间了,随着Windows 10的快速推进,DirectX 12成为很多玩家电脑上的标配。那么DirectX 12到底有哪些改进,哪些显卡才能支持DirectX 12,目前N卡和A卡对DirectX 12的支持力度如何?今天我们就和大家一起来探讨一下这个问题。

N/A之战新领地 DirectX 12初窥解析
N/A之战新领地 DirectX 12初窥解析

DirectX 12新特性技术解析

微软的DirectX几乎是整个3D图形业界的基石,在3D游戏上这一点表现得更为明显。在之前的发展过程中,DirectX经历了多次功能升级,带来了T&L、顶点和像素流水线、统一流水线、几何处理器、通用计算API、曲面细分等等大量全新的功能,DirectX在发展中不断地解除GPU的应用限制并将GPU的功能性和应用范围推向一个全新的高度。现在,程序员和美术人员更多考虑的不是采用哪些方法来实现图形图像,而是哪些方法可以更好地呈现画面,因为DirectX的“工具库”有太多的选择(当然常用、值得宣传的就那么几种),比如AO就有SSAO、HBAO、HDAO等多种计算方式。

在大量的资源面前,人们发现这样一个问题:GPU已经能做很多事情了,但是它不能很有效率地做这些事情。这样GPU多算是“多面手”而不是“高效多面手”。由于之前的技术限制等原因,DirectX在和硬件配合时,很难彻底展示出硬件的效能。于是,微软在2013年宣布,DirectX将升级到新的版本DirectX 12,并加入大量改善底层效率的设计,不再将重点放在改善图形效果上。当然,全新的DirectX 12肯定会在各大厂商的游戏引擎中带来很多新的应用,不过从硬件角度来说,没有太多的新图形效果出现。

好了,言归正传,下面我们来看看,新的DirectX 12能在图形上带来哪些特别重要的改进。

像这样有大量顶点、需要CPU处理的场景,帧数表现往往不尽如人意。
像这样有大量顶点、需要CPU处理的场景,帧数表现往往不尽如人意。

游戏主机由于特殊的架构和设计,往往只能使用底层渲染来完成图形工作。图为XBOX 360拆解图。
游戏主机由于特殊的架构和设计,往往只能使用底层渲染来完成图形工作。图为XBOX 360拆解图。

3DMark中带来的Overhead Feature Test,就是典型的测试底层渲染效率的工具。
3DMark中带来的Overhead Feature Test,就是典型的测试底层渲染效率的工具。

DirectX 12的核心变化——全新的底层渲染改进

说起“底层渲染”,就不得不提到一个问题—多线程化。

目前的CPU都是多核心的,支持多线程运作。在DirectX中,GPU接受CPU传输过来的数据,在计算后再将这些数据返还给CPU,这个过程可看做一个“黑盒”:用户从盒子的一端输入数据,API帮用户处理完成后从盒子的另一端输出数据,至于中间发生了什么,那只有API自己知道—因为这个过程只受API本身控制,图形程序、游戏引擎都无法染指。看起来这个过程比较简单明了,但关键之处来了:这个“黑盒”过程多线程化目前来看非常糟糕,由于存在相关性等问题,程序无法判断哪些应用在前,哪些应用无关,哪些可以并行化,因此绝大部分情况下都只能以单线程的方式运作。在之前DirectX 9甚至DirectX 10时代还好,因为CPU的性能依旧处于快速增长中,无论是频率还是单核心性能。但是随着技术发展,并行化的GPU的性能增长速度远远超过了串行化的CPU单核心性能的增长速度,这就导致很多情况下GPU受制于单线程的CPU,性能无法全部发挥。

这样一来,我们看到GPU性能在快速增长,但是其接受到的从CPU端发出的Draw Call绘制指令却一直没有爆发性、突破性的增长。只是慢吞吞的随着每代CPU增长一部分。这种情况对一些重GPU负载的游戏来说,还不算太难受,因为重GPU负载的游戏大量的时间都耗费在GPU的各个部分中,还算可以接受。但是对重CPU负载的游戏来说,就变得非常难平衡—大量的负载压在CPU上,多核心的CPU只有单线程在和GPU沟通,整个CPU-GPU沟通开销非常大,典型的例子就是《魔兽世界》这样的网游,在人和物体太多的场景下,CPU根本无法做到多核心满载,庞大的计算量使得CPU少数几个线程的压力暴增,终帧数跌落至甚至只有20fps。

现在问题很清楚了,DirectX目前在CPU-GPU体系的计算开销方面出现了问题,“黑盒”模式是主要原因。这个时候就需要底层渲染出场了。

什么是底层渲染呢?这个时候需要拿出游戏主机来举例。很多玩家看到游戏机就会想到,虽然主流游戏机价格只有不到3000元,配置也只是两三前的电脑配置,为何其画面质量和效果都和当期的PC游戏持平?这里面存在两个原因,其中一个原因是游戏机可以在画面上做很多“取巧”的手段,使得画面“看起来”很精美,另外,游戏机所使用的底层渲染方式,使得游戏机不太存在CPU-GPU的计算开销。游戏主机往往使用不一样的API来沟通CPU和GPU,程序开发人员需要在更接近硬件底层的层面来调配CPU和GPU,这里程序自动处理的部分就会少很多。这样就很明确了—所谓底层渲染,就是将“黑盒”模式放弃,将这个过程开放给程序员,使得程序员来判断任务应该如何执行,同时CPU多线程就能被很好地运作起来。比如在大量单位的场景中,不同分组的单位之间不存在交互的话,那么这些不同的分组可以被分派在不同的CPU上,大幅度提高GPU的处理速度和效率。

底层渲染的出现,使得程序员能够更为接近CPU和GPU本身,能够更为彻底地释放CPU和GPU的潜能。在目前的很多测试中,底层渲染的都带来了CPU-GPU系统绘制执行几倍甚至数十倍的提升。虽然,这样的提升终不太可能反映在游戏中,只能是纸面上的数据,但是这也从一个侧面说明DirectX 12对资源的利用效率更高了。

微软在很早之前就演示过,在使用了DirectX 12的底层渲染后,CPU的负载更为平衡,整体响应时间更为快速。
微软在很早之前就演示过,在使用了DirectX 12的底层渲染后,CPU的负载更为平衡,整体响应时间更为快

AMD解释异步计算的两张幻灯片,非常形象地说明了这项功能的作用。

AMD解释异步计算的两张幻灯片,非常形象地说明了这项功能的作用。
AMD解释异步计算的两张幻灯片,非常形象地说明了这项功能的作用。

DirectX 12的计算改进—异步计算的出现

相比之前比较难以理解的底层渲染而言,异步计算(Async Compute)算是一个比较方便理解的概念。

提起异步计算,那么肯定有所谓的“同步计算”。在之前的DirectX中,当数据或者指令进入GPU时,GPU或者驱动程序需要先为这些任务分类,比如分成“数据组1”和“指令组1”等其他什么名称,然后根据先来后到将一样类型的任务排在一组队列中,不同的任务组成不同的队列,再进行“抢占式”的处理—抢到了就先处理,抢不到就后面等着吧。

之所以将数据类型或者指令类型的任务排在一起处理,是因为GPU在不同的任务模式下需要切换,切换过程需要耗费一定的时间。如果所有的任务不加以排序和处理,GPU不断地切换过来切换过去,效率会大幅度下降。

“同步计算”解决了GPU计算不同任务时的效率问题,不过也带来了任务的互相等待问题。因为要对不同的任务进行排序、抢占,那么一些紧急却数量较少的任务有可能难以抢到GPU资源,不得不被迫等待,降低了系统效率。在这种情况下,异步计算就做得很好。异步计算不需要排队也不需要等待,数据或者指令来了直接根据先来后到处理就好,核心原因是GPU不再需要切换数据状态或者指令状态。既然不需要切换,那么来了就处理就变得理所应当。

异步计算的出现,在很大程度上减轻了GPU端处理数据的延迟,使得所有数据能够基本做到“随来随走”,提高了效率。

DirectX 12支持不同显卡在同一个系统中并行运作,A卡和N卡终于能“和谐共处”了。不过这个功能需要游戏和驱动双重支持,目前推广起来应该还有颇多阻力。

DirectX 12支持不同显卡在同一个系统中并行运作,A卡和N卡终于能“和谐共处”了。不过这个功能需要游戏和驱动双重支持,目前推广起来应该还有颇多阻力。
DirectX 12支持不同显卡在同一个系统中并行运作,A卡和N卡终于能“和谐共处”了。不过这个功能需要游戏和驱动双重支持,目前推广起来应该还有颇多阻力。

英伟达早在Kepler架构时代就提出了无绑定功能,DirectX 12将其更进一步。
英伟达早在Kepler架构时代就提出了无绑定功能,DirectX 12将其更进一步。

DirectX 12的功能增强—大量全新功能

底层渲染和异步计算,可以算是DirectX 12的核心改进。除此之外,DirectX还带来了大量的全新功能。

DirectX 12支持无绑定(bindless)功能。这个功能实际上在DirectX 11.1中就存在,不过在DirectX 12中大幅度提升了应用范围。无绑定功能主要是指之前着色和纹理的绑定功能,一组着色代码只能针对128组纹理。不过在DirectX 12中,这个限定被取消了,一组着色代码可以针对任意组纹理,这就提升了可以被同事处理的纹理数据,并且降低了着色代码被重复执行的几率,也降低了CPU占用了,提升了GPU占用率。

除了无绑定这个比较重要的特性外,DirectX 12还加入了诸如平铺资源(Tiled Resoure)、归类UAV访问、立体平铺资源(Volume Tiled Resources)、保守光栅(Conservative Rasterization)、光栅顺序视图(Raster Order Views)等功能,这些功能主要是用于提高计算效率,降低计算瓶颈,本身并没有带来太多图形特效,因此简单了解即可。此外,DirectX 12还加入了对不同GPU的并行计算支持,也是目前的一大亮点。

Star Swarm也是目前测试DirectX 12的底层渲染的测试软件之一,不过这些测试软件和实际游戏还有很大的差别。
Star Swarm也是目前测试DirectX 12的底层渲染的测试软件之一,不过这些测试软件和实际游戏还有很大的差别。

DirectX 12还带来了ASTC纹理的支持
DirectX 12还带来了ASTC纹理的支持

英伟达宣称Maxwell 2.0架构能很好地支持Feature Level 12_1
英伟达宣称Maxwell 2.0架构能很好地支持Feature Level 12_1

Tips:英伟达显卡对异步计算的支持

近有一件事情闹得沸沸扬扬,就是英伟达支持DirectX 12的显卡对异步计算支持的问题。一些消息称(主要消息来源是游戏开发商),英伟达旗下Maxwell架构显卡不能支持DirectX 12中很重要的异步计算功能。

从驱动以及游戏开发角度来看,Maxwell架构可能对异步计算支持不够完善,因为新消息显示,在开发过程中Maxwell架构并不能直接开启异步计算功能并实现完整的支持,而是建议游戏开发商使用传统模式(虽然这样对性能也没有太大影响)。反观AMD,GCN架构对异步计算支持很到位,硬件和软件都完全符合DirectX 12规范,程序员可以直接调用。对这个问题,目前英伟达官方没有明确的回应,只是说硬件架构上Maxwell完全支持异步计算,驱动方面尚未做好准备。这样的解释其实并没有什么用处,因为即使硬件支持也意义不大,反正还是用不了,唯一留下了就是驱动未来增强或者“修复”的可能,算是希望。

从另一个角度来看,异步计算是DirectX 12中比较重要的功能了,按理说应该早就支持完善才是,现在出现这样一个大问题,还要等未来的驱动修复—当然我们承认英伟达驱动的确很棒,但未来能否及时修复或者是会等一段时间风平浪静新显卡业上市了,那个时候再一并“修复”,就不得而知了。

英伟达和AMD显卡对DirectX 12的支持情况

大概了解了DirectX 12的相关技术改进后,我们再来看看显卡对DirectX 12的支持情况。

目前DirectX 12有两个支持等级,分别是DirectX 12 Feature Level 12_1和DirectX 12 Feature Level 12_0。其中前者支持DirectX 12全部特效,后者支持部分特效。需要注意的是,每个等级中每个支持的特效又有等级之分。比如资源绑定有Tier 1、Tier 2和Tier 3之分,等级越高肯定越好,比如Feature Level 12_0就需要资源绑定的Tier 2、平铺资源的Tier 2以及归类UAV访问的Tier 1。Feature Level 12_1需要光栅的Tier 1和光栅顺序贴图的支持,后者是为VR时代所准备的。

从显卡角度来说,由于DirectX 12核心的底层渲染只是软件架构上的改进,因此只要GPU支持DirectX 11基本上就可以完整支持,这也是能够带来性能提升主要的部分。但是对一些特殊的内容则支持情况各异。实际上,大家不必太过于在乎DirectX 12显卡的功能支持问题,因为DirectX 12中很多功能内容都是可选支持,并且只是改善性项目,并非强制支持和功能性项目,这就意味着无论显卡支持还是不支持,理论上来说对终呈现的游戏画面并没有太大影响,当然,如果游戏引擎或者开发商做出了特殊的选择,那就很难预计了。

下表列出了英伟达和AMD架构对DirectX 12不同等级和功能的支持情况。我们可以根据显卡图形核心的分类等级来判断自己的显卡是否支持DirectX 12。

从下表中可以看出,目前,对DirectX 12支持等级高、完善的显卡只有Maxwell 2.0架构的诸如GTX 980 Ti、TITAN X、GTX 960等显卡了,其支持等级为DirectX 12 Feature Level 12_1,其余的显卡包括Maxwel 1.0、GCN 2.0都只能支持到DirectX 12 Feature Level 12_0,再老旧一些的显卡包括Fermi、Kepler、GCN 1.0等,都只能支持DirectX 12 Feature Level 11_1。不过也不要小看GCN 1.0架构,它完整支持11_1,也就意味着,这些相对老旧的显卡事实上也能完整支持底层渲染,也就是说,这些显卡在运行DirectX 12游戏时,整体效率上会有很大提升。

DirectX 12离我们还有多远?N卡/A卡实战DX12游戏Demo《Ashes of the Singularity》

虽然DirectX 12看起来足够美好,在微软和众多上游厂商的强势力推之下也必然会成为未来的主流图形API。但是,现在是不是已经是到了我们享受DirectX 12的时候了呢?现在的主流图形显卡是不是能够完美地支持DirectX 12的各种特效呢?稍后让我们用一个详细的测试来为你答疑。

遗憾的是,目前市面上公开发售的游戏中,尚没有任何一款能真正支持DirectX 12,包括公认权威的图形性能测试软件3DMark也没有单独针对GPU的DirectX 12性能进行测试的补丁包(仅有CPU的DirectX 12计算性能测试补丁)。还好,游戏厂商联合图形芯片厂商,还是为我们放出了一个用于DirectX 12图形性能测试的游戏Demo,它就是《Ashes of the Singularity》(翻译过来就是《奇点灰烬》)。

目前的《Ashes of the Singularity》还是一个基于DirectX 11及DirectX 12的双API配置测试用Demo,通过它可以直观地测试图形核心的DirectX 11及DirectX 12性能。而在显卡的选择上,考虑到目前的图形芯片对DirectX 12的支持情况,我们选择了AMD Radeon R9 Fury X、Fury以及NVIDIA GeForce GTX 980Ti、GTX 980这四款分别对位的高端显卡作为测试对象,以此可以通过测试明确地看到目前主流显卡对DirectX 12 API的支持情况。

测试分别选择AMD CATALYST 15.11 Beta和NVIDIA GeForce 358.91 Beta这两个目前官网新的驱动版本作为主要测试驱动,以便消除可能存在的老版本驱动对DirectX 12支持力度不够的隐患。同时,为了考察AMD和NVIDIA是否一直以来都在为DirectX 12进行了特别的驱动优化,我们还特别加入了两个相对较老的驱动版本作为参考对比。

《Ashes of the Singularity》的测试Demo包含有DX 11和DX 12两个程序,在本次测试中我们将分别针对这四款支持DirectX 12的显卡进行测试,以考察它们各自在DX 11和DX 12下的表现。

Tips:

《Ashes of the Singularity》Benchmark的出现,让我们有机会首次体验DX12游戏的魅力。这款DX12游戏的测试Demo有许多让人能明显感觉到的变化。首先是多单位的个性处理,在以往DX11的游戏中,遇到大量单位同时出现的游戏场景时,难免出现动作、运行轨迹和角度的重复性,也就是简化计算资源,一资源多用的典型。而在《Ashes of the Singularity》中,你仔细观察会发现,在多单位同时出境的场景中,每个单位的动作、轨迹、会显得更加个性,重复性大幅降低。而且同屏烟雾、火焰效果变得相当丰富,层次感大幅提升。这在以往的DX11游戏中是比较难想象的,资源耗费无疑非常巨大。而DX12更接近底层设计的优势,让硬件的潜力被充分挖掘,让以往的一些不可能变得有可能实现。这其中,ACE异步计算无疑是尤为值得一提的功臣,也是DX12整体效率更高的一个重要原因。

DirectX 11,N卡表现稍占优

首先来看四款显卡在DirectX 11下的表现。其实细心的读者如果之前有仔细看本刊的文章,应该比较清楚,我们之前在多个测试中也已经证实,在DirectX 11模式下,NVIDIA GTX 980Ti在1920×1080及2560×1440分辨率下都领先AMD Fury X,尤其是在1920×1080分辨率下领先的优势还较为明显。不过在2560×1440分辨率下,GTX 980Ti相较Fury X的领先幅度大为削减,优势被削弱。而从我们之前的测试经验知道,如果在4K分辨率下,GTX 980Ti相比Fury X在游戏测试中就基本没有了任何优势,甚至Fury X还能以些许的领先而胜出。在这之前我们也说过,AMD新一代显卡在4K分辨率下的表现非常抢眼,从1080p到4K的游戏性能衰减幅度远低于NVIDIA的GTX 900系列显卡。

而AMD Fury的表现则一直以来都略强于与之对位的GTX 980(事实上,GTX 980的绝对对位竞争产品应该是R9 390X而非Fury,不过在AMD的产品线中,也只有GTX 980与Fury的定位为接近,因此我们在这里也将其作为比较对象。特此说明),在DirectX 11模式下两种分辨率设置的测试中,Fury的表现都明显好于GTX 980。

DirectX 12,AMD显卡越“忙”越厉害

这算是本次测试的核心重点之一。我们的主要目的是想要知道,在DirectX 12模式下,AMD和NVIDIA的显卡谁的表现更好一点呢?

在1920×1080分辨率下,轻载场景的测试中,GTX 980Ti的平均帧率略领先于AMD Fury X,但是领先的幅度很小。不过到了中负载和重负载的DirectX 12场景测试时,Fury X又略略反超了GTX 980Ti,但幅度同样非常小。结合可能存在的测试误差,我们基本可以判断二者在1920×1080分辨率下的三种负载场景测试中的成绩基本是持平的,不分高低。

在2560×1440的2.5K分辨率下,Fury X又以较小的优势在中等负载和重负载测试中领先GTX 980Ti,幅度大约在5%之内。这和我们之前所说的,在高分辨率下,AMD Fury X的表现更好的结论基本是一致的。而且完全可以相信,在4K分辨率下,如果我们继续测试《Ashes of the Singularity》Benchmark的DirectX 12模式,相信Fury X的领先幅度会进一步扩大。
再来看Fury与GTX 980。DirectX 12模式下的测试结果与DirectX 11模式下测试结果基本保持了一致,Fury都以较为明显的优势领先于GTX 980。

测试平台信息一览表

CPU              Intel Core i7 4770K
主板             华硕ROG玩家国度 Maximus Ⅶ Formula
内存             金士顿HyperX DDR3 2400 8GB×2
硬盘             海盗船Neutron GTX 240GB+希捷新酷鱼 2TB
显卡             AMD Radeon R9 Fury X
                   AMD Radeon R9 Fury
                   NVIDIA GeForce GTX 980Ti
                   NVIDIA GeForce GTX 980
操作系统       Windows 10 Professional x64
驱动版本       AMD CATALYST 15.11 Beta
                   AMD CATALYST 15.10 WHQL
                   AMD CATALYST 15.8 WHQL
                   NVIDIA GeForce 355.60 WHQL
                   NVIDIA GeForce 358.65 WHQL
                   NVIDIA GeForce 358.91 WHQL

纵向比较,从DirectX 11到DirectX 12的进步与退步

如果把四款显卡的DirectX 11与DirectX 12成绩拿来做纵向比较,你会发现一个很有意思的现象。AMD Fury X与Fury显卡,在从DirectX 11模式转到DirectX 12模式时,其平均帧率的提升非常明显,尤其是在重负载的场景中,提升更为明显,从DirectX 11到DirectX 12,无论是Fury X还是Fury,其整体提升幅度都超过了20%,这足以证明Fiji内部构建了8个独立ACE硬件处理模块的实用性。这显著提高了AMD GCN架构在DX12时代的运行效率,充分挖掘出了计算资源占优,但计算资源利用效率一向偏低的GCN架构显卡的潜力。可以预见包含R9 390系列和R9 290系列在内的搭配了多达8个ACE硬件处理模块的显卡,都将因DX12的异步计算机制而受益。

再看NVIDIA GTX 980Ti和GTX 980。我们能清晰地看到,在轻负载下,无论是1080p还是2.5K分辨率设置,从DirectX 11到DirectX 12,它们都表现出了较小的上升趋势,DirectX 12模式下轻负载场景表现都略领先于DirectX 11模式。不过在中负载和重负载场景下,NVIDIA的两款显卡都不约而同地表现出了“不升反降”的现象,尤其是在2560×1440分辨率下,其下降的趋势更加明显。正如我们之前在评测AMD Fury Nano时做DirectX 12的对比测试时所说的一样,“NVIDIA显卡的糟糕表现不得不让我们怀疑,Maxwell架构压根就没有设计独立的ACE硬件处理模块。考虑到《奇点灰烬》的开发商Oxide多年来一直都是AMD的合作伙伴,从Mantle问世时就在合作。所以难免会有人怀疑这个基准测试的公正性,所以开发商Oxide也不得不作出做出公开回应,并指出了NVIDIA显卡在游戏中表现不佳是因为不能完善支持ACE异步运算,这也侧面印证了我们的猜疑”。

以前我们就曾经指出过,NVIDIA的Maxwell架构并不是真的完全不支持ACE机制,而是不同于AMD的独立硬件设计,需要软硬件结合实现。而当前软件方面又没有准备就绪,就让该架构显卡在测试中显得非常被动。Maxwell硬件架构中,AWS(Asynchronous Warp Scheduler,异步弯曲调度器)是硬件功能单元,每个SMM单元配备4个AWS单元。与GCN架构从队列、任务分配到异步计算使用纯硬件手段不同,Maxwell架构中的调度器模块是软件控制的。之后再交给AWS、DMA引擎、CUDA核心来完成硬件部分的计算。这就有些像早年关于软、硬件解码高清视频一样,软件方案在效率上应该有先天不足。NVIDIA的ACE解决方案因为更偏软,至少目前看起来效率不及AMD的纯硬件方案。

1920×1080/高画质,DirectX 11
1920×1080/高画质,DirectX 11

2560×1440/高画质,DirectX 11
2560×1440/高画质,DirectX 11

1920×1080/高画质,DirectX 12
1920×1080/高画质,DirectX 12

2560×1440/高画质,DirectX 12
2560×1440/高画质,DirectX 12

GTX 980Ti Vs Fury X,DirectX 11与DirectX 12性能比较
GTX 980Ti Vs Fury X,DirectX 11与DirectX 12性能比较

GTX 980 Vs Fury,DirectX 11与DirectX 12性能比较
GTX 980 Vs Fury,DirectX 11与DirectX 12性能比较

一直在努力,AMD与NVIDIA的DirectX 12争夺战还未全面开始

由于NVIDIA Maxwell架构核心采用了软硬结合的方式来支持ACE机制,所以相比AMD Fiji核心的内置独立ACE硬件模块的设计在执行效率上肯定有所不如。越是在前期,NVIDIA这种软硬结合的DirectX 12支持方式落后就愈发明显。不过NVIDIA明显也意识到了自己的不足,长时间以来也一直在通过驱动补丁的更新来实现对DIrectX 12模式的更好支持。同样是基于《Ashes of the Singularity》Benchmark的测试,如果我们用GeForce 355.60、358.50以及新的358.91这三个间隔时间约3个月左右的不同版本进行的话,你就能很清楚地看到,DirectX 11模式下,三个版本驱动给GTX 980Ti及GTX 980带来的游戏性能进步并不算太大,基本都在5%或更低的程度。但在DirectX 12模式下,三个版本驱动之间的差距就被拉开了。即使在轻载场景的测试中,从355.60版驱动到358.91版驱动,性能的提升都在10%以上,而我们知道轻载场景是压力小的DirectX 12测试。在中负载和重负载场景下,新版驱动的DirectX 12性能提升更为明显,基本达到了20%~30%甚至更高。无疑,NVIDIA也一直在为Maxwell显卡准备着“鸡血针”,想要逐渐缩小与AMD显卡之间的差距。

但不得不说的是,从游戏角度来看,很多玩家很关心目前测试的DirectX 12游戏性能是否表现了显卡对DirectX 12的支持情况。实际上,除了之前曾提到的算是“特殊情况”的异步计算外,其余的游戏测试结果,更多的反应的是游戏厂商在技术和应用上的差异。原因很简单,游戏开发面临着太多的内容和选择,尤其是目前的AAA级大作,图形部分的内容瀚如星海,用什么效果、走什么路径、开发平台情况、利用哪种特效、显卡驱动支持情况如何,都是非常值得研究的。尤其是驱动程序,所谓的驱动优化,在很多情况下会替换游戏本身的执行路径,而走自己独特的、更高效率的执行路径,即使游戏厂商不提供源码,但是通过一些工具和手段,依旧可以改变执行情况。这样一来,游戏测试的结果究竟反映的是显卡执行API的效能,还是游戏本身在某款显卡上“优化”的效能,就是完全  不同的两件事情了。

虽然只是一个小小的游戏测试Demo,但DirectX 12的脚步已经越来越近,对此NVIDIA、AMD与游戏厂商都在各自努力着,而且目前市场上Maxwell核心的NVIDIA GPU以及AMD GCN 1.1以上架构的图形核心都提供了相对完整的DirectX 12支持(具体支持DirectX 12的图形核心型号请参考前文)。不过就目前一款《Ashes of the Singularity》Benchmark测试来看,对ACE异步计算机制纯硬件支持的AMD GCN 1.1以上架构GPU,其表现更加值得玩家们期待一些。而在目前的情况下,从测试结果来看,尽管NVIDIA一直都在不断优化驱动为DirectX 12做着各种努力,但似乎仍然还没能完全适应DirectX 12节奏,现在看来还没有完全吃透ACE机制,从DirectX 11到DirectX 12仍有帧率下降的问题存在。二者相较之下,从GCN架构上硬件支持ACE的AMD显卡无疑赢得了先机,取得了初战DirectX 12领地的胜利。至于NVIDIA会不会在将来迎头赶上,而AMD又会不会继续强化自己的固有优势,在DirectX 12的应用与游戏尚未正式开始普及的现在,都还言之过早,就留待市场与玩家们在将来去检验吧!

分享到:

用户评论

用户名:

密码: