工作图的快速介绍

主要观点:介绍了 DirectX12 中最近添加的 Workgraphs 新特性及其在 GPU 渲染中的应用,通过实例展示了如何使用 Workgraphs 实现阴影射线追踪等功能,对比了 Workgraphs 与其他 GPU 驱动渲染方法的优势,并提供了进一步学习的资源。
关键信息

  • Workgraphs 由 Nvidia 和 AMD 提供硬件支持,可让 GPU 独立产生和消耗工作,无需 CPU 调度。
  • 以实现阴影射线追踪为例,包含三个步骤:剔除背面像素、射线追踪深度缓冲中的碰撞、使用加速结构进行光线追踪。
  • Workgraph 可视为节点图,每个节点接收数据、执行工作并输出数据,目前支持计算着色器和内联光线追踪,未来计划支持其他类型着色器。
  • 介绍了 Workgraph 中节点的启动方式(广播、线程、合并)和输出定义(NodeOutput),以及如何在节点中使用组共享内存和屏障。
  • 给出了具体的节点示例,包括检查像素是否背面、射线追踪深度缓冲和进行光线追踪等操作,并讨论了相关细节和注意事项。
  • 在 CPU 端需要设置全局根签名、编译着色器库、分配后备内存等,以启动 Workgraph。
  • 对比了 Workgraphs 与使用 ExecuteIndirect 的 GPU 驱动渲染方法的优势,如避免内存浪费、减少额外工作等。
    重要细节
  • Workgraph 节点的声明包括各种属性,如“NodeIsProgramEntry”定义入口点、“numthreads”定义线程组大小等。
  • 组共享内存和屏障的使用,以确保线程组内的操作同步和数据一致性。
  • 在 CPU 端设置 Workgraph 时,需要根据目标图像大小调整节点的调度大小等。
  • 提供了多个进一步学习 Workgraphs 的资源链接。
阅读 16
0 条评论