并行DirectX 游戏API新标准——Mantle
刚刚在命名的时候说到这一代显卡是AMD重要的一步。在AMD此次的发布会上,比起显卡硬件本身,软件层上的Mantle才是令人大吃一惊的。简单地说,Mantle就像是游戏机的编程模型放到了PC上。Mantle并不是类似DirectX这样中间层的高级软件层,而是更底层的API。开发Mantle的意图在于简化运行库,使PC的图形性能像游戏机那样近乎完全地释放。
Mantle的意思是地幔,AMD拿地球打了个很形象的比方,地幔(Mantle驱动层与Mantle API)围绕着地核(图形核心),最外面则是地壳(图形应用程序)。
AMD的全球视觉计算副总裁———拉贾·科杜里(Raja Koduri)是这样说明的:
Mantle是新的底层接口。由于与像微软HLSL那样的既存的着色器语言相兼容,因此软件的移植非常简单。Mantle的优点是,比起其他PC上的API,可实现多达9倍的draw-call。这意味着2018年的硬件性能,现在就可以得到。
至今为止,主机游戏开发者都是more with less,即在相对低阶的硬件上,可以挖掘出更多的性能。而今天的PC游戏开发者则相反,不得不less and more。明明PC的硬件规格比主机高很多,但只能获得较低的性能。然而Mantle的到来,可以给PC游戏开发者带来more with more,即在高性能的硬件上获得更高的性能。
游戏机基本上发布之后5到10年都不会变更配置,在到了后一半的生命周期时,配置已经比同期的PC要落后很多了。然而由于软件层面的系统开销较少,因此可能更多地“榨取”性能。相对来说,PC尽管硬件指标年年增强,但比起主机,由于系统开销大,导致能被游戏程序活用的资源比例却不高。因此总是以更高的硬件才能达到与家用机相同的表现。
以上是至今为止的游戏开发常识。不过,AMD将用Mantle把这一切改变。在PC上导入如同游戏机一样的低系统开销,让开发者充分地挖掘硬件性能。Mantle的宗旨是,让PC平台也能游刃有余地运行游戏。说了这么多好似宣传口吻的话,接下来我们就来看看Mantle的运作原理。
通过游戏机的图形软件层,可以很好地了解Mantle的理念。比如PS4,基本的构造由下图所示。左端的图形管线控制API由两层构成,上层的wrapper API与DirectX或是OpenGL的API类似。不过PS4将底层API也向开发者公开,底层API的控制权也交给开发者手中。
GPU的情况与CPU不同,需要进行复杂的图形管线控制。PC游戏的API中这一部分相当抽象化,而主机平台则可以更进一步地接近硬件的直接控制。话虽如此,然而一旦将硬件级公开,后续将会产生问题(安全、稳定性和易于破解的问题),因此最底层的硬件层依然是抽象化。据此,GPU一直延续着不开放硬件层的做法,完全无法直接触及。
换言之,游戏机的情况是,着色器核心编程语言,也就是shader语言,是相对简单的软件层。通过轻量的运行库即可编译。尤其底层运行库的编译器接口的公开,可大幅增加实际可用的工程。
在编译上来看,Mantle与游戏机的软件模型很接近。通过将图形软件轻量化,使得GPU原本的性能得以尽可能地被挖掘。尤其是科杜里强调的,可发行的draw-call得以增加。
图形编程中的难关之一即是draw-call,即绘图调用与被调用的图形API群之间的指令,由CPU负责执行。绘图引擎执行发行(issue)的draw-call的增加,会带来API侧的处理加重,占用CPU性能。因此PC的图形API不得不使用patching等方法来减少draw-call,这样一来,对于开发者来说增加了很多本应不必要负担。在Mantle上,得益于软件层的轻薄化,可发行的draw-call得以增加。
通过以上分析,可以看出Mantle在战略上的优势,就是容易将游戏机上的游戏移植到PC平台,并且可以获得很高的性能。虽然Mantle是否会用于PS4、Xbox One成为底层API还没有得到官方证实,但分析下来可能性很高,因此其可移植性要比过去强很多。在AMD已经将次世代三大主机的图形芯片全部占据的当下,这一举是不可错过的机会。不过Mantle是依赖GCN架构才能支持的,虽然Wii U也是使用的AMD图形芯片,但无法使用。在PC显卡上,所有的GCN核心显卡都可以使用,不仅是新推出的Rx-200系列,所有GCN架构的GPU都可以使用,包含HD7700、HD7800、HD7900系列。
利用Mantle技术,《战地4》这样的游戏可以用GCN架构的原生语言进行开发,带来更深层次的硬件优化
从AMD的战略来看,Mantle也许是在PC游戏界战胜NVIDIA的妙计。如果游戏开发者在PS4、Xbox One、PC上利用Mantle交叉渗透真的能够更容易制作出高性能的游戏引擎,那么Mantle将会顺理成章的普及开来。当然了,开发者们不会中止对DirectX 11的支持,但一部分很可能逐渐倾向API/驱动层上系统消耗更少的AMD图形平台。以三大主机的完全占有作为背景,AMD借助Mantle,在PC游戏上从NVIDIA手中夺取更多市场的战略也非常明显了。