【新技术篇:革命性的DX12】
NVIDIA的第二代麦克斯韦家族已经率先完整支持DX12 Feature Level 12_1的全部底层技术和高级特效,包括GTX Titan X、980 Ti、980、970、960等型号,AMD则稍微晚了一些,但宣传推广起来更加卖力。
按照AMD的说法,Fiji Fury系列、Radeon R300系列都完整支持DX12——我们知道,R200系列还不是完整支持DX12,R300系列的核心则都是延续了R200系列,看来也并不完全是拿过来直接用,而是经过了一番改造的。不过,AMD对此并未详加解释,还需要后续挖掘。
AMD还表示,老显卡也有所增强,包括更快的曲面细分、平铺资源(Tiled Resoures),应该说的是R200、HD7000系列吧。
其实这些年DirectX技术的进步很迟缓了,多个版本都没有太大的亮点,这次的DX12则截然不同,堪称革命性的,尤其是它汲取了AMD Mantle、主机平台的特点,给游戏开发者更多的底层硬件访问权,可以获得更多硬件资源,最终提升性能。
简单总结:更高效的多核心CPU发挥、更多的屏幕细节、更高的最低/最高/平均帧率、更平滑的游戏体验、更高效的GPU硬件利用、更低的系统功耗,以及以往不可能的游戏设计。
DX12三大好处:
1、多线程指令缓冲记录
有点拗口,其实就是多核心CPU更高效率的发挥,能使用更多CPU核心更快完成工作,将更多的CPU时间用在游戏代码上,允许所有CPU核心同时与GPU对话,这样以来将会彻底释放CPU性能,不会再出现瓶颈。
DX11上,多核心资源分配严重不均,有的累死,有的闲死,效率低下。这就是所谓的高API开销。
DX12上,所有核心都调动了起来,而且很均匀地分配任务,工作时间大为缩短,性能和能效自然就上去了。
不过核心也不是越多越好,目前看DX12也只能有效用到六个,再多提升效果就不明显了。
2、异步着色器
将复杂的串行负载分解为并行负载,使得工作更快完成,空闲的GPU资源也调动起来而不是干等,有精力去挖掘更高级的画面特效,而且非常适合虚拟现实应用。
DX11上,不同任务使用不同GPU资源,但都必须排队进行。
DX12则将不同类型的任务以多线程的方式并行执行,效率自然高得多。
3、多适配器
第一次原生支持不同厂商的多GPU,精确控制应用负载和硬件资源,而且使用新的分帧渲染(SFR)技术可以有效降低延迟,更能将所有GPU显存都利用起来。
对于AMD来说,APU加独立显卡本来就是自己一直在尝试的组合,现在有了DX12这颗大树,兼容性、效率更有望提升一个档次。
对于多GPU并行,不管是SLI还是CrossFire,DX11使用的都是交替帧渲染(AFR),很容易出现不同步现象,也就是常见的卡顿问题。
DX12的分帧渲染则是将一个画面帧分成多个区块,分别交给不同GPU渲染,画面帧不用再排队,延迟大大降低,而且这种并行执行使得多GPU更像是单独一个GPU。当然,这么做对于渲染指令的分派、整合提出了更高要求。
以前,如果你将两块4GB显存的卡放在一起,系统显存还是4GB,而现在可以是完整的8GB,再也不会浪费了,因为多GPU完全集中到了一起。
DX12游戏已公布的极少,拿得出手的只有两个,一是《杀出重围:人类分裂》,还会支持AMD TressFX 3.0头发特效,二是《奇点灰烬》,还支持AMD Mantle。都将在年底发布。