据我所知,队列系列可能支持呈现到屏幕但不支持图形。假设我有一个同时支持图形和呈现的队列系列,以及另一个仅支持呈现的队列系列。我应该为两个进程使用第一个队列系列,还是应该将第一个队列系列委托给图形,将后者委托给呈现?或者这两种方法之间没有明显的区别?
不存在这样的硬件,因此最好的方法就是不采取任何方法。如果你想变得非常友善,你可以用最少的脑力来处理单独的当前队列家族的情况。尽管您无法在需要它的真实硬件上测试它。所以我想说,用一个好的错误消息中止就足够了,直到你能掌握执行此操作的实际硬件为止。
我认为 Khronoses 部分存在一些设计错误。单独的当前队列看起来确实是一种更明确的方式。但是,当前的操作本身并不是一个队列操作,因此驱动程序无论如何都可以使用它想要的任何操作。另外,单独的存在需要额外的信号量,并且队列家族所有权转移(或VK_SHARING_MODE_CONCURRENT
资源)。历史上没有哪个司机如此极端地报告单独存在的队列。所以我做了KhronosGroup/Vulkan-Docs#1234 https://github.com/KhronosGroup/Vulkan-Docs/issues/1234.
对于发生的事情的粗略概念vkQueuePresentKHR
,您可以检查 Mesa 代码:https://github.com/mesa3d/mesa/blob/bf3c9d27706dc2362b81aad12eec1f7e48e53ddd/src/vulkan/wsi/wsi_common.c#L1120-L1232 https://github.com/mesa3d/mesa/blob/bf3c9d27706dc2362b81aad12eec1f7e48e53ddd/src/vulkan/wsi/wsi_common.c#L1120-L1232。除了等待信号量或最多对图像进行位块传输之外,使用您提供的队列可能没有什么麻烦。如果您(自愿)想要使用单独的当前队列,则只需要对驱动程序(可能还有其他影响)进行测量并将其列入白名单,它实际上会有所帮助(如果存在任何此类队列,并且甚至值得您花时间)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)