Для переходов ресурсов вам нужно знать «до» и «после» VkImageLayout
ресурса (например, в VkImageMemoryBarrier
, переданном vkCmdPipelineBarrier
). Vulkan не гарантирует заказы выполнения командных буферов, если явно не указано в документации API (от this ответа). Однако vkCmdPipelineBarrier
явно заявляет, что создает зависимость между командами в буфере команд до и после вызова. Таким образом, можно «знать» макет изображения в любой момент, когда он переводится в одном командном буфере.Vulkan: упорядочивание барьеров памяти изображений в нескольких командных буферах
Однако vkQueueSumbit
не применяет порядок выполнения командных буферов. Если есть два командных буфера, каждый из которых с vkCmdPipelineBarrier
переводит одно и то же изображение в разные макеты, есть ли зависимость между этими двумя операциями или явная синхронизация, требуемая в этой ситуации?
Я не совсем спрашивал, во что я ехал, но это отвечает на то, что я спросил. – MuertoExcobito