【问题标题】:Does Vulkan parallel rendering relies on multiple queues?Vulkan 并行渲染是否依赖于多个队列?
【发布时间】:2021-08-29 12:34:19
【问题描述】:

我是Vulkan的新手,对并行渲染的工作原理不是很清楚,这里有一个问题(下面提到的“队列”特指图形队列:

  1. 并行渲染是否依赖于支持多个队列的设备?
  2. 如果问题 1 是肯定的,如果物理设备只有一个队列,而 Vulkan 抽象为 4 个队列(这是我的 macbook 的 gpu 的真实情况),这种情况下的渲染真的会并行吗?
  3. 如果问题 1 是肯定的,如果 Vulkan 的抽象中只有一个队列怎么办,这是否意味着设备可以并行渲染对象。

附:关于问题2,当我使用Metal api时,队列数只有一个,但是当使用Vulkan api时,队列数是4,我不确定说“物理设备只有一个队列”是否正确。

【问题讨论】:

    标签: vulkan


    【解决方案1】:
    1. 我偷偷怀疑你在滥用“并行”这个词。确保您知道它的含义。
    2. GPU 上的渲染本质上是令人尴尬的并行。通常一个队列可以为整个 GPU 提供数据,而应用通常会假设这是真的。
    3. 他们很可能使队列数等于 CPU 内核数。在 Vulkan 中,向单个队列的提交总是需要在外部同步。拥有更多队列允许在不同步的情况下从多个线程提交。
    4. 如果只有一个 Vulkan 队列,则只能提交到一个队列。任何提交都必须与互斥锁同步,或者一开始只能来自一个线程。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      • 2016-08-14
      • 1970-01-01
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多