渲染依赖性图

渲染依赖性图是一个基于图表的调度系统,用于执行渲染管线的整帧优化。

Choose your operating system:

Windows

macOS

Linux

本页面的内容

渲染依赖性图(Rendering Dependency Graph) 也被称为RDG或渲染图表,是一个基于图的调度系统,用于执行渲染管线的整帧优化。它利用DirectX 12这样的现代API,使用自动异步计算调度以及更高效的内存管理和屏障管理来提高性能。

DirectX 11和OpenGL式的API要求驱动器调用复杂的启发法,以确定何时以及如何在GPU上执行关键的调度操作。例如清空缓存、管理和再使用内存,或执行布局转换,等等。由于接口存在即时模式特性,因此需要复杂的记录和状态跟踪才能处理各种极端情况。这些情况最终会对性能产生负面影响,并阻碍并行。

DirectX 12、Vulkan和Metal 2之类的现代图形API已经弃用此模型,而选择将低级GPU管理的负担转移至应用程序本身。这提供了一个机会,可以利用渲染管线的高级情境来驱动调度,从而提高性能并且简化渲染堆栈。

RDG的概念如下:在GPU上并非立即执行通道,而是延迟到整个帧已记录到依赖性图表数据结构之中后再执行。当完成了对所有通道的收集之后,则按照依赖性的排序顺序对图表进行编译和执行。

依赖性图表数据结构的整帧认知与现代图形API的能力相结合,使RDG能够在后台执行复杂的调度任务,并对用户完全透明:

  • 执行异步计算通道的自动调度和隔离。

  • 在帧的不相交间隔期间,使资源之间的别名内存保持活跃状态。

  • 尽早启动屏障和布局转换,避免管道延迟。

此外,RDG利用依赖性图表在通道设置期间提供丰富的验证,对影响功能和性能的问题进行自动捕捉,从而改进开发流程。

附加注释和资源

欢迎帮助改进虚幻引擎文档!请告诉我们该如何更好地为您服务。
填写问卷调查
取消