我有一个计算着色器,它生成顶点缓冲区并绘制间接结构,然后用于绘制一些几何图形。
计算着色器不是每帧调用一次,而是每 5-10 帧调用一次。事实上,我复制了我的顶点和绘制间接缓冲区,所以当我使用 VB1 和 DI1 渲染几何时,计算着色器能够写入 VB2 和 DI2 然后交换它们,因此计算和绘图调用可能是独立的。我也有 2 个队列系列:做所有事情和只计算。
所以,我可以想到 3 种方法来做到这一点:
VK_SHARING_MODE_EXCLUSIVE缓冲区的全能队列VK_SHARING_MODE_EXCLUSIVE在队列之间使用缓冲区和所有权转移进行绘制VK_SHARING_MODE_CONCURRENT缓冲区进行绘制我想听听您关于使用什么选项以及它们的优点/缺点的建议。我对此有一些假设并想知道,我对还是不对:
由于标准有这个明确的警告:
VK_SHARING_MODE_CONCURRENT可能导致对缓冲区或图像的访问性能低于VK_SHARING_MODE_EXCLUSIVE.
我会说您应该选择独占模式,除非并且直到您的分析数据表明存在性能问题。毕竟,您说过使用缓冲区和跨队列移动它们之间至少有 5:1 的比例。因此,您访问缓冲区的频率高于执行队列所有权操作的频率。
| 归档时间: |
|
| 查看次数: |
719 次 |
| 最近记录: |