Таких HW не существует, поэтому лучший подход - нет подхода. Если вы хотите быть по-настоящему милым, вы можете разобраться с отдельным случаем существующего семейства очередей, затрачивая на него минимальные мозговые силы. Хотя у вас нет возможности проверить это на реальном HW, который в этом нуждается. Так что я бы сказал, что прерывание с хорошим сообщением об ошибке будет вполне адекватным, пока вы не получите в руки реальное HW, которое это делает. Отдельная нынешняя очередь выглядит как более явный способ. Но тогда настоящая операционная операция сама по себе не является операцией очереди, поэтому драйвер все равно может использовать все, что хочет. Также для отдельного подарка требуется дополнительный семафор и передача семейного владения очередью (или ресурс 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 . Там, вероятно, нет никакого дела с обезьянами, использующими предоставленную вами очередь, кроме ожидания на вашем семафоре или, самое большее, создания мгновенного изображения. Если вы (добровольно) хотите использовать отдельную текущую очередь, вам нужно измерить и внести ее в белый список только для водителей (и, возможно, других факторов), это действительно помогает (если такая существует и если она даже стоит вашего времени).