我遇到了将 Metal 渲染循环部署为多个 KCS(内核/计算)着色器和 VFS(顶点/片段)着色器的链:
texture -> [KCS -> VFS -> KCS -> VFS] --\
--->[KCS -> KCS] --> presentable
texture -> [KCS -> VFS -> KCS -> VFS] --/
一个着色器的输出是下一个着色器的输入。如图所示,这两组 4 个交替着色器在接近尾声时组合在一起。
如果我正确地考虑了这一点,我将需要多达 10 个不同的管道描述符来实现这一点,以及对完成处理程序的大量调用,其中下一个着色器将被分派。
我也没有指出它,但是对presentable的最后一次调用也会将其输出的子区域馈送到单独的MTKView(通过顶点/片段着色器)。
任何提示将不胜感激。