2014年3月份的GDC 2014游戏开发者大会上,微软首次公布了新一代DirectX 12。在沉寂了多年之后,AMD都忍不住提出了自己的Mantle API之后,微软终于重新振作起来,又将在游戏行业刮起“腥风血雨”。
如今,Windows 10 Build 9926预览版其实已经包含了DX12。虽然还只是个早期版本,但是API正在稳定下来,驱动程序也在不断改进,微软还与Oxide Games合作推出了第一个支持DX12的应用/测试程序:《Star Swarm》(星群)。
所以,我们终于可以谈谈DX12的性能了。能不能干掉AMD Mantle?能解决DX11上存在的CPU瓶颈问题吗?对比DX11进步能有多大?A/N卡表现有何差异?
【DX12的现状:working...】
Windows 10本身都还“残缺不全”,作为其一部分的DX12自然还很初级,我们所能了解到的技术细节也不多,因此今天做的只是一个初步预览,和最终表现肯定会相去甚远,这一点要时刻牢记。
下个月我们将迎来GDC 2015,到时候必然能看到微软及合作伙伴公布更多关于DX12的细节和进展。
历史上伴随DirectX的每一次升级,微软都会给出新的WDDM(Windows显示驱动模型),DX12就带来了全新的WDDM 2.0,这也是该技术自Windows Vista诞生以来最大的改变,将会重写整个Windows GPU生态系统。
预计WDDM 2.0会在内存管理、动态资源索引、更底层CPU效率优化等方面给我们带来惊喜。
现在使用较新显卡运行Windows 10 9926预览版,DirectX诊断程序里都会显示DirectX 12、WDDM 2.0。
WDDM 2.0的变化之大,显卡厂商正面临着严峻挑战,驱动程序一定要跟上。AMD、NVIDIA目前都在进行这项工作,结果就是不同型号显卡对DX12的支持情况会有很大差异(不管是技术上还是市场上)。
简单地说,AMD、NVIDIA的最近几代显卡都可以支持DX12,但进展各有不同。
AMD HD7000/R200系列用的是第一代GCN架构,同样没有被忘记,但目前也是问题最多的,尤其在纹理方面。
GCN 1.1 R290/260系列和GCN 1.2 R9 285的情况还好一些,基本能用。
NVIDIA 开普勒/麦克斯韦两大家族都可以支持DX12,也就是GeForce 600系列起步,进展还算顺利。
更老的费米GeForce 400/500系列也得到了NVIDIA的承诺,但暂时还未启动相关工作。
但是记住,现在说是支持DX12,并不代表在API、特性级别(Feature Level)上都是百分之百支持的,尤其是微软引入的特性级别这个概念,很容易让人眼花缭乱。
只有那些完整支持FL 12_0的,才能算是真正支持DX12,其他都是部分支持,比如FL 11_2什么的。
据说,现有显卡都只是部分支持DX12,完整支持的得等待全新产品。
更乱的是微软还搞了个DirectX 11.3,对应着FL 11_3,是一个高层API,和底层的DX12并不冲突,而是在功能特性上相通,且长期共存。
关于它的具体情况,以及显卡支持问题,GDC 2015上相信会给出一些说法。
最后操作系统支持方面,DX12将是Windows 10的专利。
这其实并不完全是出于市场方面的考虑,技术上让DX12区支持Windows 7/8/8.1也是相当困难的,因为WDDM 2.0是系统内核组件,支持老系统需要大幅度重新改写系统内核,这工作量根本不值得。
再说了,Windows 7/8.1都可以免费升级Windows 10,还要求啥呢?
另外,这也给AMD Mantle、OpenGL留下了更多发展空间,它们都可以继续吸引那些想留在Windows 7/8.1系统上的玩家。