微软的Windows 10将于夏天发布。除界面与操作有所改进外,对游戏玩家来说,Win10最诱人之处当属DirectX 12(以下简称为DX12)了。DX12是新一代的图形API规范,它会给我们带来哪些改变呢?若想尽早用上DX12,我们得做些什么准备呢?

Windows 10的“杀手锏”微软DirectX 12到底带来了什么?DX12将带来3D游戏性能、画质上的提升

DX12对我们来说,不算全然陌生。之前曝光DX12消息的新闻和评测就多达几十篇呢,想必大家都对DX12相对于DX11的性能提升印象深刻。可话又说回来,DX12对我们而言,就像是个“熟悉的陌生人”。我们只是知晓其中一部分内容,更多的人其实还没做好迎接DX12的准备。那DX12到底带来了哪些改变呢?又有哪些显卡和平台会支持它呢?今天这篇文章就来详细讲讲。

1、DX12带来的新变化

我们都晓得微软将在的Windows 10系统里推出DX12。之前超能网有大量的报道和测试,从这些内容里我们了解到,DX12让底层硬件的效率得到了提升,对多线程的支持更佳,游戏性能也更强。不过呢,大伙对DX12的整体印象还是特别模糊。DX12到底会给我们带来哪些新变化呢?使用DX12 API的游戏在画质、性能这些方面会有根本性的提升吗?

Windows 10的“杀手锏”微软DirectX 12到底带来了什么?DX12可以分为三个层次

之前的DirectX规范能划分成多个功能各异的功能层(Feature Level),DX12也是如此。并且呢,DX12还有个底层优化的新情况。这样一来,我们可以把DX12规范看作是三个不同的层级。

D3D 12低层级API,这在报道里出现的频率特别高。DX12跟DX11比起来,性能有很大提升,这主要得益于底层优化。这一点特别吸引大家,不管是游戏开发者,还是游戏玩家,都被吸引住了。底层优化就像是给游戏搭建了一条超棒的“高速路”,数据传输啥的都变得更快更顺畅,所以性能才会提升那么多,这也是DX12的底层优化成为最诱人之处的原因。

底层优化涵盖好几个部分,像Low Overhead(低开销)啦,还有更多的控制以及异步计算(Async Compute)之类的。低开销这种东西和AMD提出的Mantle优化有点相似。Mantle优化可是大大提高了游戏的多线程效率,让驱动层的开销也降下来了呢。现在,Low Overhead这部分已经能够用ark的Driver Overhead来进行测试了。要是想知道更详细的情况,可以去看看我们之前做的两篇测试文章。

DX12有个Feature Level 12_0。之前的底层优化工作呢,就像是给DX12打通了“经脉”,让开发者的潜力得到提升。但之前的优化并不涉及具体的功能,就像不涉及具体的“招式”一样。而Feature Level 12_0这部分就不一样了,它开始涉及一些新的3D渲染方法,像平铺资源(Tiled Resoure)、归类UAV访问、无绑定(Bindless)等。这里面好多功能其实在DX11.1里就存在了。不过在DX11里,这些功能大多是T1级别的,到了现在就变成T2级别的了。

DX12有个高级功能叫Feature Level 12_1。就像之前的DX11.1和DX11.2那样,在DX12里,除了Feature Level 12_0之外,还有更高级的Feature Level 12_1功能。像立体平铺资源(Volume Tiled Resources)、保守光栅(Conservative Rasterization)、光栅顺序视图(Raster Order Views)等都在这个功能里。这些功能大多是可以选择是否支持的。不过呢,它们能把开发者的效率或者游戏画质提升得更好。当然啦,这也是有代价的,就是对显卡的要求会变得更高。

DX12规范主要包含三个部分内容。不过呢,这并不意味着DX12就只有这些功能。大家还记不记得之前有消息曝光DX12的一个超厉害的技术,就是A、N显卡混合交火呀?微软在DX12里确实做了不同显卡混搭的尝试呢。这个技术有个名字,叫Muti - Adapter(多显卡适配器),有了这个技术,不同架构的GPU就能被联合起来进行渲染工作啦。

Windows 10的“杀手锏”微软DirectX 12到底带来了什么?DX12的多GPU混合渲染演示

在微软的Build大会上,有过一个多显卡演示。演示中,分别采用独立显卡,以及独立显卡加集成显卡这两种方式,来对635帧的UE引擎进行渲染。在这个过程中,独立显卡的渲染帧速为35.9fps,而支持多适配器(Muti - Adapter)的集成显卡加独立显卡平台,其成绩达到了39.7fps,这个成绩稍稍领先独立显卡平台。为什么提升不大呢?主要是因为独立显卡和集成显卡在性能上往往存在很大差距,它们并行运算的时候,可不像CF(交叉火力)或者SLI(速力)技术那样,能有接近2倍的提升,之前Lucid公司的Virtu技术也是这种情况。

Muti - Adapter技术还有一个优点,那就是在多卡的情况下,它对GPU显存的使用效率更高。以前,不管是CF技术,还是SLI技术,在DX模式下,只能把数据存储在其中一个显卡的显存里,这样一来,另一个显卡的显存就被闲置浪费了。就拿GTX 980 Ti显卡来说吧,当两张这种显卡进行SLI连接的时候,它们总的显存容量依旧是4GB,在多卡互联的时候,其GPU显存容量并不会翻倍。

Muti - Adapter技术出现后,就能合并所有显存来使用了,显存容量也会翻倍。微软的WDDM 2.0模型支持GPU虚拟内存,这或许也跟显存容量翻倍有关系呢。

微软的DX12有诸多变化,其中最重要的当属底层硬件优化。这种优化提升了多线程的效率,还减少了驱动方面的开销,无论是游戏玩家还是开发者都能从中受益不少。 在3D渲染技术方面,DX12也做出了更新。多卡互联这一块,DX12或许会有惊人表现。打个比方,如果把AMD、NVIDIA以及Intel核显异构运算想象成一个拼图,当DX12对它们的支持完全到位的时候,游戏玩家就不会再被CF或者SLI这种限制所困扰了。

2、DX12显卡兼容列表

巧妇没米就做不了饭。但在有米之前,得先把做饭的锅解决了。就像电脑显卡,有些能支持DX12,有些能完整支持DX12。从前面的情况看,这支持和完整支持之间是存在差别的呢。打个比方吧,假如把支持DX12当作能做简单的饭菜,那完整支持DX12就像是能做满汉全席,这中间的差距还是很明显的。

以前,我们老是听到关于DX12支持方面的消息。听得最多的就是AMD和NVIDIA宣称自己的架构支持DX12的事儿,AMD的GCN架构会支持,NVIDIA呢,Fermi及其之后的架构都支持DX12。Intel这边也不例外,从第四代智能处理器也就是Haswell开始,那时候的核显就已经支持DX12了。

AMD之前就公布了具体的DX12兼容列表,NVIDIA不久前也把自家的DX12兼容名单给公布了出来。可NVIDIA还顺便抹黑了AMD一下呢。为啥呢?因为AMD的显卡现在还不能完全支持DX12规范,但是NVIDIA家像GTX 980、980 Ti这些采用GM2xx核心的GPU是能够完全支持DX12_1的。咱们就说DX11时代吧,那时候AMD的显卡能够完整支持DX11.1和DX11.2规范,可NVIDIA的显卡最多就只能支持到DX11.0。这就像风水轮着转一样,以前AMD在这方面有优势,现在轮到NVIDIA了。

Windows 10的“杀手锏”微软DirectX 12到底带来了什么?AMD、NVIDIA、Intel对DX12规范的支持度

想知道AMD、NVIDIA、Intel这三家厂商的GPU对DX12有着怎样详细的支持规格吗?可以看看上面的图哦。AMD的GCN 1.0架构,这个架构在多数HD 7000以及后来的马甲产品上使用,它仅仅只能兼容DX12,而且只支持到Feature Level 11_1这个层级。像HD 7790,还有R7 260/260X、R9 285这些采用GCN新核心的显卡呢,它们能够支持到Feature Level 12_0。不过啊,就目前的情况来说,所有的显卡都还无法完全支持Feature Level 12_1的功能呢。

Windows 10的“杀手锏”微软DirectX 12到底带来了什么?AMD显卡的DX12支持列表

在NVIDIA这边呢,Fermi以及它之后的显卡,都是能够和DX12兼容的。但要是说到真正支持DX12的功能,那就得看Maxwell架构了。GM1xx这种第一代Maxwell架构的显卡,它能支持到Feature Level 12_0这个层级。而像GTX 980、970、960、Titan X还有980 Ti这些属于第二代Maxwell架构的显卡呢,它们就能支持到Feature Level 12_1了。打个比方,就好比不同型号的汽车,虽然都能在同一种道路上行驶(类比兼容DX12),但是在一些特殊功能的使用上(类比支持DX12功能),就只有特定型号或者批次(类比Maxwell架构下不同代)才能做到。

在Intel这边,自Haswell之后的核显都能与DX12兼容。不过要是谈到对Feature Level(特性级别)的支持,Haswell还有最新的Broadwell却仍然仅仅能支持到Feature Level 11_1呢。打个比方,就好像一个软件有不同的功能层级,这两个型号的核显在这个功能层级的支持上,就只能达到Feature Level 11_1这个层级,没办法再往上支持更高的层级了。

NVIDIA这事儿得两面瞧。当年它不能完全支持DX11.1的时候,就宣称DX11.1是个可有可无的功能,没多大实际影响。现在呢,它能彻底支持DX12了,就开始鼓吹DX12_1的优点。可实际上啊,DX12_1的3D功能也不会有本质性的变化,在真正玩游戏的时候,也很难说就能让玩家有很明显不一样的体验。所以,大家对待这个问题,平常心就好啦。就好比有个新出的手机功能,商家宣传得天花乱坠,但实际用起来,并没有感觉到和之前有多大的不同,这DX12_1也是类似的情况。

3、DX12平台及软件支持

越过硬件支持这一关卡后,我们还得面对软件平台支持方面的问题,这就牵扯到我们对操作系统的选择了。比如说,我们日常使用电脑,硬件设备齐全是基础,就像有了房子的框架。但只有硬件还不行,还得有软件平台支持,这就如同房子需要装修布置才能住人。而操作系统就像是软件平台这个“房子”的核心装修风格,不同的操作系统就像不同的装修风格,会给使用者带来不同的体验,所以操作系统的选择是很重要的一部分。

Windows 10的“杀手锏”微软DirectX 12到底带来了什么?

现在可以确定,只有微软精心打造的Windows 10系统明确支持DX12。以前,大家都盼着Windows 7能支持DX12,可这个美梦已经破碎了。微软还是有那么一点好心的,Windows 7、8还有8.1的用户能够免费升级到Windows 10系统呢。比如说,有很多使用Windows 7系统的游戏玩家,原本期待着系统能支持DX12带来更好的游戏体验,现在就只能通过升级到Windows 10来实现了。

微软为什么非要让DX12成为Windows 10独有的呢?一方面是出于Windows 10只能成功不许失败的战略考量。另一方面,有个因素也不容小觑,那就是Windows 10对WDDM 2.0显示驱动引擎进行了升级。要知道,想要支持DX12就得先支持WDDM 2.0,而Windows 7仅仅支持WDDM 1.1呢。

Windows 10的“杀手锏”微软DirectX 12到底带来了什么?Widonws 10是目前唯一确定支持DX12的系统

在WDDM 2.0里,有个特别主要的改变,那就是它开始支持GPU虚拟显存寻址(GPU virtual memory)了。这意味着啥呢?就是把所有GPU的物理内存都转变成虚拟内存的样子,然后让GPU来管理这些虚拟内存,这样每个步骤就都能有自己的虚拟内存了。 还有一个新功能,叫驱动常驻(Driver residency)。在这个功能里,显存管理器在把数据从命令缓冲器提交到驱动层之前,所分配的所有空间都是一直存在的。因为这个功能,还额外加了个DDI设备驱动接口呢。

要支持DX12,得先支持WDDM 2.0和Windows 10。不过呢,我们到现在都还搞不清楚,它们和DX12之间到底哪个是原因,哪个是结果。但能确定的是,微软让Windows 10支持DX12,这更多是一种商业策略。从技术层面来讲,Windows 7、8、8.1未必就不能支持WDDM 2.0和DX12。现在啊,我们只能盼着Windows 10系统能像Windows 7那样获得巨大成功,变成游戏玩家优先选择的平台。要是做不到的话,那以后可就麻烦了,玩家们可能会陷入纠结的境地呢。比如说,可能会面临新游戏只能在Windows 10运行,但自己又不想换系统这种情况。

4、支持DX12的引擎及游戏

有了DX12显卡,还有Windows 10平台,这只是在支持DX12上迈出的第一步。这就好比做饭,显卡和平台就像大厨和厨具,而DX12游戏才是食材,饭菜好不好吃,还得看食材呢。DX12游戏的发展目前是最慢的,因为它处于最顶层。硬件和系统平台就像基础,它们没准备好的话,DX12游戏肯定没法运行,所以它落后于硬件和系统平台是必然的。

要想一劳永逸地支持DX12,还得靠游戏引擎呢。现在有不少3D引擎已经支持DX12了,像EPIC的UE 4.4、Crytek的CryEngine、Unity的Unity 5,还有Oxide Games的Nitrous等等。也有一些游戏已经支持DX12了,比如说《九阳神功》,它用的是CryEnging引擎;还有赛车游戏Forza 5,它是基于UE引擎开发的。

不少游戏厂商自行开发的引擎是支持DX12的。就像在Build大会上让众人惊艳的Square Enix公司的《最终幻想》,其“巫女哭泣”(Witch: Chapter 0)Demo是用Luminous引擎打造的。

Windows 10的“杀手锏”微软DirectX 12到底带来了什么?《九阳神功》将成为首个支持DX12的国产游戏

首波DX12游戏里,国内游戏厂商这回处于领先地位,这挺值得一说的。在Build大会上,游戏蜗牛当了嘉宾,讲了《九阳神功》(英文名叫King of wushu)的游戏开发过程。这个游戏用的是CryEnging引擎,还支持DX12,NVIDIA的Gameworks特效也没落下。

Windows 10的“杀手锏”微软DirectX 12到底带来了什么?《奇点灰烬》最快6月就能上市了

DX12游戏大多要到底的圣诞节前后才发布上市,部分游戏大作甚至得等到。《奇点灰烬》(Ashes of the Singularity)可能是我们最早能看到的DX12游戏。这款游戏采用的Nitrous引擎可不一般。关注过Mantle的玩家应该对使用该引擎的另一款作品《Star Sworm》很熟悉。既然它能支持Mantle,那对DX12的支持肯定也不在话下。

这款游戏上市速度这么快,很可能是因为它仅仅支持DX12的底层优化功能。在支持Mantle的时候,这部分功能或许就已经完成了。它大概没有全面运用高级DX12渲染功能,要是完全使用了的话,开发进度不可能这么快。

Windows 10的“杀手锏”微软DirectX 12到底带来了什么?

DX12属于Windows 10的功能。对于PC游戏玩家而言,DX12的性能和功能比DX11更出色。在移动平台上,DX12能提升性能,甚至还能降低功耗呢,就像GPU利用率提高了,CPU功耗却能降下来。DX11得用全新硬件,DX12不一样,它能兼容AMD、NVIDIA、Intel的DX11显卡。尽管DX12那些更高级的功能也得有新硬件才行,但总体来讲,它对比DX11并没有提高硬件方面的要求。这种顺滑的升级方式,对玩家升级到Windows 10平台是很有利的。打个比方,假如一个玩家的电脑显卡是比较老的DX11显卡,他想升级系统到Windows 10,因为DX12能兼容他现有的显卡,他就不用担心硬件不兼容的问题,这样他就能更轻松地升级系统了。