在刚开幕不久的GDC大会上,开发者代表在主题演讲中抛出了一个尖锐的问题“DX12真的有必要吗?”开发者表示,在过去的18个月时间当中,DX12几乎成为PC游戏的最大买点,也成为玩家衡量一款游戏是否达到AAA级别的硬标准。为此,不少游戏开发商甚至投入额外的人力为一些老游戏开发出DX12升级补丁。
那么,这样做真的有必要吗?
演讲者表示,现阶段的DX12对游戏所能起到的画质加成被过于夸大。事实上,开发者在实际制作过程中都会有所感受,DX12对游戏画质的提升是非常乏力的,而且需要投入更多的精力还进行优化。
另外,DX12还有一处跟关键的“硬伤”。
开发者表示,DX12的核心有两点,其一是提升多核CPU和多路GPU之间的渲染协作效率,其次异步计算。
其中,异步计算仅限于最新的GPU架构才能支持,而且还需要更多的针对性优化才能完美实现,这意味着一些老平台玩家将无法享受到DX12带来的画质增益。开发者的优化等于白搭。
同时,演讲者还对目前流行的多路GPU的显存堆叠可行性提出了质疑。这种方式简单来说就是将两个GPU的显存相加,形成一个更大的内存池,然后两颗GPU各取所需,通过分担计算来提升渲染效率。
演讲者表示,这中技术说起来简单,但做起来并不容易。首先,目前使用多路GPU的玩家数量非常有限;其次,想要实现AFR(交替帧渲染)还需在开发阶段要做更多的工作。
一般来说,AFR系统当中首先要将多个GPU划分出主从关系,次级的GPU要为主GPU准备用于交替的帧,这就要求不同GPU之间彼此都拥有一份对方的数据镜像。这就意味这每颗GPU需要从相邻GPU的显存当中寻找对应的数据,这样不仅成本高,而且更加费时。
演讲者还强调,无论是DX12还是Vulkan,新型的API都希望使驱动程序尽可能不受渲染管线数量的影响。
但事实上渲染管线在DX12和Vulkan当中所扮演的角色反而更加重要,因此驱动程序的开发往往会变得更加复杂,比如内存管理、启用异步计算底层技术支持、多路GPU支持以及显卡厂商有时所要求实现的某些特别性能增强项目等等。都增加了开发人员的负担,而且会导致驱动程序的不稳定,但获得性能提升往往却是非常有限的。
演讲者强调,开发者花费更多精力去追求DX12无可厚非,因为这将是未来图形领域发展的趋势,也势必成为主流。但毕竟目前DX12的用户基础还没有完全成熟,因此还是建议开发者将更多的精力放在如何制作出好的游戏内容,而非一味的追求最新技术。花费巨大精力去开发动辄几百兆的大驱动,只是为了获得多GPU支持,显然是不值得的。但这只是对PC来说,而对于硬件生态相对封闭的游戏机,当然是技术越新越好。