我有一个计算着色器,它产生顶点缓冲区和绘制间接结构,然后用来绘制一些几何。
计算着色器不是每帧调用一次,而是每5-10帧调用一次。事实上,我有我的顶点和绘制间接缓冲区复制,所以当我使用VB1和DI1绘制几何时,计算着色器可以写到VB2和DI2,然后交换它们,所以计算和绘图调用可能是独立的。我还有两个队列家族:只做任何事情和计算。
所以,我可以想出三种方法来做到这一点:
VK_SHARING_MODE_EXCLUSIVE缓冲区的所有操作队列VK_SHARING_MODE_EXCLUSIVE缓冲区进行绘图和所有权转移。VK_SHARING_MODE_CONCURRENT缓冲区进行绘图。我想听听你关于使用什么选项的建议,它们的利弊是什么。我对此有一些假设,我想知道,我是否正确:
发布于 2019-07-02 15:18:21
因为标准有这样明确的警告:
VK_SHARING_MODE_CONCURRENT可能导致对缓冲区或图像的性能访问低于VK_SHARING_MODE_EXCLUSIVE。
我想说的是,您应该选择独占模式,除非和直到您的分析数据显示存在性能问题。毕竟,您说过使用缓冲区和跨队列移动缓冲区之间至少有5:1的比例。因此,访问缓冲区的频率要大于执行队列所有权操作的频率。
https://stackoverflow.com/questions/56853688
复制相似问题