据我所知,队列系列可能支持呈现到屏幕但不支持图形。假设我有一个同时支持图形和呈现的队列系列,以及另一个仅支持呈现的队列系列。我应该为两个进程使用第一个队列系列,还是应该将第一个队列系列委托给图形,将后者委托给呈现?或者这两种方法之间没有明显的区别?
不存在这样的硬件,所以最好的方法是没有方法。如果你想变得非常好,你可以用最少的脑力来处理单独的当前队列家庭案例。尽管您无法在需要它的真实硬件上对其进行测试。所以我会说中止带有一个很好的错误消息就足够了,直到您可以使用实际的硬件来执行它。
我认为 Khronoses 部分存在一些设计错误。单独的当前队列看起来确实是一种更明确的方式。但是,当前操作本身不是队列操作,因此驱动程序无论如何都可以使用它想要的任何东西。另外单独存在需要额外的信号量,以及队列家族所有权转移(或VK_SHARING_MODE_CONCURRENT
资源)。历史上没有司机会如此极端地报告单独的当前队列。所以我做了KhronosGroup/Vulkan-Docs#1234。
对于在什么情况粗略的概念vkQueuePresentKHR
,你可以检查代码梅萨:https://github.com/mesa3d/mesa/blob/bf3c9d27706dc2362b81aad12eec1f7e48e53ddd/src/vulkan/wsi/wsi_common.c#L1120-L1232。使用您提供的队列可能没有猴子业务,除非等待您的信号量,或者至多制作图像的 blit。如果您(自愿)想要使用单独的当前队列,则需要仅针对驱动程序(可能还有其他影响)对其进行测量并将其列入白名单,它实际上有帮助(如果存在此类情况,并且是否值得您花时间)。
归档时间: |
|
查看次数: |
590 次 |
最近记录: |