在NVIDIA Samples部分,有大量已经成熟技术的实例可供用户观看。Samples分为OpenGL和DirectX两种,DirectX的绝大部分案例都是之前已经出现过多次或者比较成熟的案例,新意不多。倒是OpenGL部分有很多有趣的内容,乐于探索的用户可以进一步研究。
后部分Tools工具包可以算是对开发人员为重要的部分。因为Tools就是帮助开发人员分析图形部分的内容、调试图形性能甚至帮助追踪、解决Bug。在Tools中,包含NVIDIA专门为图形用户推出的调试工具Nsight,它可以实时分析每一帧画面的渲染情况,方便了调试人员的工作。
说了这么多GameWorks的内容,根本的问题来了。NVIDIA的GameWorks和AMD的Mantle有什么差别呢?谁更出色一些呢?
首先,GameWorks和Mantle虽然都宣称改善游戏体验,但是他们的做法和方向是截然不同的。
AMD Mantle是一个辅助性图形API,AMD声称,在一台CPU成为瓶颈的系统中,Mantle API能利用GPU减轻CPU工作负荷,新的API、新渲染技术可以让底层直接访问GPU资源,减小CPU开销,使PC平台的优化和效率达到游戏机的水平,从而大幅提升运行效能;而在一台GPU瓶颈的系统中,提升的效果比较有限。AMD有竞争力的CPU产品在中低端,Mantle API可以让一颗中端CPU也能充分利用高端GPU的性能。GPU成为系统的关键部分,它的升级比以往更加重要。
GameWorks与这种强调硬件底层的优化方式完全不同,它并不针对API之类的底层的编程语言,而是面向高层开发语言。简单点理解,GameWorks更像是一个完整的、对NVIDIA硬件友好程度更高的、方便游戏开发商使用的游戏开发“加强辅助软件包”。乐观的情况下,游戏开发商使用GameWorks不需要对API进行调整,甚至不需要对已经开发的游戏引擎做大的改动,就可以直接加入GameWorks中的技术,从而获得直接而鲜明的改变。此外,GameWorks带来的效果并非是游戏效能的提升,而是通过使用更多新的技术,带来游戏画面质量的升级,这也是GameWorks和Mantle大的差别。
另外值得注意的是,无论是GameWorks还是Mantle都有相当大的排它性。
虽然AMD一再声明,自己的Mantle是开放的。但只要稍微认真分析,就会发现这句“开放”只是一句空话,是根本无法达到的。在目前的技术条件下,Mantle只能针对采用了GCN架构的AMD GPU优化,对之前的VLIW架构的产品几乎是无能为力的。只有使用GCN架构才能享受到Mantle,AMD并不会开放GCN架构设计的底层信息给对手。不仅如此,假使NVIDIA接受了Mantle,对自己的GPU做了一些改进后可以支持Mantle,且不说这样的效率如何,Mantle的制定权在AMD手中,一旦AMD作出改动,NVIDIA不跟进的话(跟进难度太大),那么AMD又可以宣称Mantle是开放的,只是对手不愿意而已,开放又毫无意义了。
NVIDIA对GameWorks有关技术开放的话题闭口不谈,甚至对开发商来说,GameWorks也是处于黑盒状态。这也就带来了本文一开始的那个话题:AMD和部分开发商认为,GameWorks属于黑盒操作,一旦游戏采用了GameWorks的技术,对AMD的产品来说就不够公平。NVIDIA的反唇相讥则是“没有源代码也一样可以优化”—这里问题的焦点在于采用了GameWorks技术的游戏在AMD显卡上运行出现的效率降低,可能使得AMD认为自己的产品受到了“劣化”。实际上和Mantle的排它性类似,GameWorks是基于NVIDIA的硬件开发的,专用于优化NVIDIA显示核心架构的技术,所以在NVIDIA产品上运行效率高是理所当然的。不同架构的AMD显示核心自然享受不到这种优化,甚至因为其设计差异反受其累,使得AMD的产品在采用了GameWorks技术的游戏中表现难以让人满意。
总的来说,无论是Mantle还是GameWorks,都不仅仅是一种优化技术,更具有战略布局的意味,是AMD和NVIDIA希望在游戏领域扩大话语权、拉拢更多厂商同时将影响力投射至硬件销售商的技术手段。虽然可能某些技术在NVIDIA和AMD的产品上可以共存,但运行效率的差异和补丁优化的纷争也会随之而来,这也是厂商吸引用户以及扩大影响力的好机会。对用户来说,无论是AMD还是NVIDIA的特色技术使得对方的产品在较低效率下运行,实际上都是对用户权益的一种损害,这意味着游戏厂商没有向支付了同样金钱的客户提供同样质量的服务。当然,目前这些事态都被控制在一个可控范围内,无论是NVIDIA、AMD还是游戏厂商也都只能打打口水仗,我们只能期待未来这样的事情尽可能少的发生,不要影响用户体验才好。