|
楼主 |
发表于 2017-12-26
|
4. 综合所有
上文已经说明TrueAudio Next库是一个关键的解决方案,但我们仍需回答两个重要的问题:
GPU计算着色器上是否可以支持这种技术,同时不会导致干扰图形渲染并导致抖动和/或关键帧速率丢失呢?
在VR游戏或高级电影渲染场景中,高性能GPU音频是否真的能够实现无杂讯,低延迟渲染呢?
虽然传统的观点告诉我们说,GPU上的音频渲染会导致不可接受的延迟,并干扰图形性能,但上述两个问题的答案是肯定的,而这指向了AMD TrueAudio Next的另一根重要支柱:基于异步计算的预留计算单元(Compute Unit Reservation)。
作为LiquidVR Time Warp和Direct-to-GPU渲染功能的关键组件,AMD的异步计算技术在VR渲染空间中已经是众所周知。在一个有效硬件调度程序的控制下,异步计算具备可变的执行优先级,允许多个队列的函数同时使用不同的CU集合,而不是说所有的图形着色函数都在单个队列中等待,以便在CU的整个数组中执行。
AMD的预留计算单元(Compute Unit Reservation)功能则进一步深化了这一思想:只要启用的应用程序需要,就可以划分和保留一组有限的CU,并且通过预留的实时队列访问。例如,在具有32个CU的GPU中,可以保留4个或8个CU为TrueAudio Next专用,其余的24个到28个CU则可用于图形。预留CU可完全在启用TrueAudio Next的应用程序,插件或引擎中执行(不是在启动时),当应用程序主动释放它们(CU)或退出时,CU将重获自由。另外,对于稍低优先级的内核,可以为预留的CU分配额外的“中等优先级”队列。在时变卷积的情况下,对于必须是低延迟,绝对无杂讯的音频数据通道,其可以使用实时队列;而稍不那么关键的脉冲响应更新则使用中等优先级队列。
预留计算单元(Compute Unit Reservation)提供了一系列支持音频与图形共存的关键优势:
在插件的指导和音频引擎供应商的建议下,预留CU的数量完全由游戏开发者自行决定。音频引擎在使用优秀分析工具来扩展可用CPU资源上具备丰富的经验。AMD TrueAudio Next只是增加了一个更高的维度:一个大型、可靠、可配置的私有沙箱。
避免措手不及。可以在游戏开发的早期阶段分配CU预留值。音设计频和图形设计可以独立进行,无需担心音频可能在无意中“偷走”任何图形计算资源。与运行通用OS的多核CPU相比,预留计算单元实际上提供了更紧密(但更大)的沙箱。
图形独立于音频,音频独立于图形。只有内存带宽为共享资源,而对于这一点,音频占用的比例远小于图形;DMA传输延迟则不足以形成影响。可以通过超过2秒的脉冲响应实现低至1.33毫秒(48kHz 64采样)的无杂讯卷积滤波器延迟,而典型的音频游戏引擎则需要5到21毫秒的总缓冲延迟。
预留计算单元是一个提供给NDA合作伙伴的驱动程序功能。另外,有无预留计算单元都可使用TrueAudio Next库。
AMD TrueAudio Next开源库和由驱动程序控制的预留计算单元将能为虚拟现实带来更高水平的音频渲染真实感。我们十分期待开发者利用它们所创造的作品。
注:最高的技术级别一般称为Fellow,级别上Fellow一般与VP平级。 |
|