Вы звоните render
дважды за кадр. И render
вызывает vkQueuePresentKHR
, поэтому очевидно, что ваши два варианта чередуются.
Вы можете отложить презентацию, просто задержав vkQueuePresentKHR
вызов. Допустим, вы хотите показать каждое изображение в течение ~ 1 с. Вы можете просто std::this_thread::sleep_for (std::chrono::seconds(1));
после каждого render
звонка. (Возможно, это не самый лучший способ сделать это, но просто понять, в чем заключается ваша проблема.)
vkQueuePresentKHR
не делает не никакого "слияния" для вас. Обычно вы «объединяете изображения», просто перетаскивая их в одну и ту же цепочку обмена VkImage
, а затем представляете ее один раз.