日前,AMD正式公布了一项名为异步着色器(Asynchronous Shaders)的技术,其功效在于可以让GPU分出三条队列,同步、独自的运行渲染、计算、复制任务,从而提高工作效率,增加游戏的流畅度。
在传统观念看来,GPU主要承担的任务是图形渲染,系统会将待处理的工作按照指定流程传递给GPU,以便让图像能够以正确的顺序显示出来,这点对于图形渲染来说非常重要。而现如今随着GPU功能的不断挖掘以及架构的不断升级,许多计算、复制的工作也会交由GPU来做,如果仍然只有一条序列的话,渲染、计算、复制三项任务将会互相抢占,造成“交通拥堵”,运行效率自然大打折扣。
AMD研发的异步着色器技术正是为解决这一难题而来,在先进的GCN架构以及新版图形API的帮助下,GPU能划分出三条队列,分别运行渲染、计算、复制任务,互不影响。而最让人惊讶的是,GPU在三条队列中均可以达到100%满载,这看似是件不可能的事,但确实实现了,尽管有大量的工作负荷,但完成的时间是非常短的。这样的好处有三点,其一是可以实现更高的帧速率,让游戏更加流畅;第二是在“虚拟现实”中的应用,它可以减少延迟(下文会进一步讲解);第三则可以带来更好的图像质量。只要有出色的硬件与配套的API相配合,系统便可以细致的安排工作并交给GPU来同步完成。
其实早在2014年我们就已经看到了异步着色器的成果,AMD将此技术提供给了Mantle,许多相关游戏便因此得到了增益。比如在《神偷4》中,雨点、器皿落地,人物之间的碰撞属于GPU的计算任务,而场景刻画、技能特效则属于渲染任务,当我们开启Mantle API后可以发现游戏帧数提高了,说明异步着色器于其中发挥了重要作用。
除了现有的Mantle外,AMD也将异步着色器开放给了即将到来的DirectX 12,让用户可以在更多的游戏中受益。而更加面向未来的是,LiquidVR SDK中也集成了该技术,具体表现为系统可以把VR图形处理和渲染同步进行,也就是说GPU可以在渲染准备一幅画面时,还可以同步的将上一帧的画面作出相应的调整或者改变来适应使用者的需求。许多VR方面的人士称之为时间扭曲或者时光曲面,它可以让用户获得更逼真的视觉效果,实现更好的舒适度,从而达成完全代入感。
可以预见,随着DirectX 12的即将登场,其出色的性能表现势必会吸引大量游戏开发商,以DirectX 12 API打造的游戏将会如雨后春岁般浮现,届时AMD研发的异步着色器技术将获得更大的舞台,取得更多的用武之地,为用户带来更好的游戏流畅度以及视觉体验。