Я прошел учебник по vulkan-tutorial.com и попытался написать небольшую программу для Vulkan, но столкнулся со следующей проблемой:
Программа просто отображает изображение и работает без ошибок,но после изменения размера окна и, таким образом, воссоздания цепочки обмена и т. д., слой проверки выдает сообщение об ошибке в функции vkQueuePresentKHR
:
Уровень проверки: [VUID-VkPresentInfoKHR-pImageIndices-01296]Объект: 0x4e3b5f0 (Type = 4) |Изображения, переданные для представления, должны быть в макете VK_IMAGE_LAYOUT_PRESENT_SRC_KHR или VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, но в VK_IMAGE_LAYOUT_UNDEFINED.Спецификация Vulkan гласит: каждый элемент pImageIndices должен быть индексом презентабельного изображения, полученного из swapchain, заданного соответствующим элементом массива pSwapchains, а подресурс представленного изображения должен находиться в макете VK_IMAGE_LAYOUT_PRESENT_SRC_KHR во время выполнения операцииa VkDevice (https://www.khronos.org/registry/vulkan/specs/1.1-extensions/html/vkspec.html#VUID-VkPresentInfoKHR-pImageIndices-01296)
Это сообщение об ошибке не появляется, один или два раза, когда swapchain и все другие объекты, которые зависят от размера окна, были воссозданы и вызван vkQueuePresentKHR
.
Почему изображения свопчейна могут быть в неправильном макете в течение короткого времени и вернуться в правильный макет после максимум двух проходов цикла?