【问题标题】:Difference between vulkan queue familiesvulkan队列族之间的区别
【发布时间】:2021-10-11 00:04:16
【问题描述】:

我对 vulkan 还很陌生,并且正在使用 api。我有一个打印队列族的函数,目前我有两个:

支持图形/传输/计算,最多 16 个队列, 一个支持稀疏/传输,最多 2 个队列。

假设我想创建两个队列,一个用于图形,一个仅用于传输。我的理解是,只要我只使用传输操作,从第一个系列创建的传输队列实际上与从第二个系列创建的传输队列相同。 AKA,只要我不使用稀疏内存操作,我几乎可以忽略第二个家庭。

这种理解是否正确,还是我遗漏了什么。是否有某些原因我更愿意从不同的系列制作我的图形和传输队列?

【问题讨论】:

    标签: graphics gpu vulkan


    【解决方案1】:

    队列族的属性包括minImageTransferGranularity。这是对可以使用此队列系列复制的图像数据的 XYZ 区域的限制。因此,如果该值为 8x8x8,那么对于该队列上的所有图像复制操作,像素矩形副本的位置和大小必​​须在 8 像素边界上对齐。

    所以不,您不能假设始终可以使用仅传输队列系列来代替功能更强大的队列。你总是要检查。

    同时,专用传输队列系列往往代表专门用于执行传输操作的专用硬件。因此,他们可能使用比其他队列上的传输操作更有效的数据路径。

    一般来说,如果一个硬件提供了一个传输工作的队列,并且您正在考虑为它使用专用队列的足够传输工作,那么您应该使用 用于进行传输工作的队列族(只要粒度适合您)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-02
      • 1970-01-01
      • 2013-09-30
      相关资源
      最近更新 更多