【问题标题】:In Vulkan, is it beneficial for the graphics queue family to be separate from the present queue family?在 Vulkan 中,将图形队列家族与当前队列家族分开是否有益?
【发布时间】:2020-04-26 01:10:42
【问题描述】:

据我所知,队列系列可能支持在屏幕上显示但不支持图形。假设我有一个同时支持图形和呈现的队列族,以及另一个仅支持呈现的队列族。我应该将第一个队列系列用于两个进程,还是应该将第一个队列系列委托给图形,而将后者委托给呈现?或者这两种方法之间没有明显区别?

【问题讨论】:

    标签: c++ vulkan


    【解决方案1】:

    不存在这样的硬件,所以最好的方法是没有方法。如果你想变得非常好,你可以用最少的脑力来处理单独的当前队列家庭案例。尽管您无法在需要它的真实硬件上对其进行测试。因此,我会说带有很好的错误消息的 abort 就足够了,直到您可以使用实际的硬件来执行此操作。

    我认为 Khronoses 部分存在一些设计错误。单独的当前队列看起来确实是一种更明确的方式。但是,present op 本身并不是队列操作,因此驱动程序无论如何都可以使用它想要的任何东西。单独的礼物也需要额外的信号量和队列家族所有权转移(或VK_SHARING_MODE_CONCURRENT资源)。历史上没有司机如此极端地报告单独的当前队列。所以我发了KhronosGroup/Vulkan-Docs#1234

    要大致了解vkQueuePresentKHR 发生的情况,您可以查看 Mesa 代码:https://github.com/mesa3d/mesa/blob/bf3c9d27706dc2362b81aad12eec1f7e48e53ddd/src/vulkan/wsi/wsi_common.c#L1120-L1232。使用您提供的队列可能没有猴子业务,除了等待您的信号量,或者最多制作一个图像。如果您(自愿)想要使用单独的当前队列,则需要仅针对驱动程序(可能还有其他影响)对其进行测量并将其列入白名单,它实际上会有所帮助(如果存在这样的情况,并且甚至值得您花时间)。

    【讨论】:

      猜你喜欢
      • 2019-08-11
      • 1970-01-01
      • 2021-10-11
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 1970-01-01
      • 1970-01-01
      • 2018-03-05
      相关资源
      最近更新 更多