3、DX12平台及软件支持
迈过硬件支持这一关之后我们还要面临软件平台支持的问题,这会涉及到我们用的操作系统选择。目前能确定支持DX12的系统就只有微软全力打造的Windows 10系统,以往期待的Windows 7支持DX12的美梦已经破灭了,不过微软多少也发了点善心——Windows 7/8/8.1用户可以免费升级Windows 10系统。
微软之所以如此决绝地让DX12成为Windows 10专属,除了保证Windows 10只许胜不许败的战略之外,还有一个因素不能忽略——Windows 10升级了WDDM 2.0显示驱动引擎,支持DX12必须先支持WDDM 2.0,Windows 7支持的还只是WDDM 1.1。
WDDM 2.0中最主要的变化是支持GPU虚拟显存寻址(GPU virtual memory),所有GPU物理内存都被抽象成虚拟内存,由GPU负责管理,每个步骤都可以有自己的虚拟内存。另一个新功能是驱动常驻(Driver residency),显存管理器会数据从命令缓冲器提交到驱动层之前所有分配空间都是常驻的,为此还增加了DDI设备驱动接口。
支持WDDM 2.0和Windows 10是支持DX12的一个前提,我们现在依然不能确定他们与DX12之间到底谁是因谁是果,但可以肯定的是微软只让Windows 10支持DX12更多地还是出于商业策略,Windows 7/8/8.1在技术上不见得就不能支持WDDM 2.0及DX12,现在我们能做的只能是祈祷Windows 10系统能跟Windows 7一样大获成功,成为游戏玩家的首选平台,不然以后可有得纠结了。
4、支持DX12的引擎及游戏
有了DX12显卡和Windows 10平台,支持DX12还是只卖出第一步,这些内容相当于做饭的大厨和厨具,饭菜是否好好吃还得看食材——DX12游戏,这一项是目前进度最慢的,毕竟这是最顶层的,落后于硬件和系统平台是必然的,反过来说软硬件平台没准备好的话,DX12游戏也不可能运行起来。
支持DX12一劳永逸的方法还是得靠游戏引擎,目前已经支持DX12的3D引擎有EPIC的UE 4.4、Crytek的CryEngine、Unity的Unity 5、Oxide Games的Nitrous等,已有的游戏包括赛车游戏Forza 5等,前者是CryEnging引擎的,后者是UE引擎的。
大部分DX12游戏发布上市也要等到今年底的圣诞节期间了,一些游戏大作可能要到明年,不过我们最早能见到的DX12游戏很可能是《奇点灰烬》(Ashes of the Singularity),这款游戏使用的Nitrous引擎也不默认,关注过Mantle的玩家对该引擎另一个作品《Star Sworm》应该很熟悉,它能支持Mantle也就能更好地支持DX12。
不过这款游戏之所以这么快上市很可能是它只是支持了DX12中的底层优化功能,这部分功能之前支持Mantle的时候应该已经做好了,但它应该没有完全使用高级DX12渲染功能,否则开发进度上不会这么快。
总之,DX12虽然是Windows 10功能中的一部分,但对PC游戏玩家来说DX12比目前的DX11性能更强、功能更多,对移动平台来说,DX12也有着提升性能甚至降低功耗的奇效(GPU利用率上升,CPU功耗可以降低了)。相比DX11需要全新硬件不同,DX12可以兼容AMD、NVIDIA、Intel的DX11显卡,虽然更高级的功能还是需要全新的硬件,但DX12相对DX11来说总体上并没有提高硬件需求,这种平滑升级更有利于玩家升级到Windows 10平台。