Pro synchronizaci používáte dvojici semforů. Je to dostatečné? Jiné tutorialy používají dvojici pro každý snímek ve swapchainu, což zase přináší jiné problémy. Podle vulkan specifikace acquireNextImageKHR nemusí vracet snímky v žádném předvídatelném pořadí, takže je pak trochu oříšek vybrat správný semafor.
Správná poznámka. Opravdu mnoho tutoriálů používá dvojici semaforů pro každý vk::Image ve swapchainu. Věc, která se za tím obyčejně skrývá je tato: Zatímco jeden snímek rendruje GPU, nemohl by první být už připravován na CPU? Nešlo by celé zpracování snímků paralelizovat, že bychom měli vlastně několik snímků "in flight", tedy v různých fázích rozpracovanosti a zpracovávány naráz? Proto v těchto případech pokud máme N vk::Images ve swapchainu, máme i N command bufferů a k nim 2xN semaforů. Snímky se tak rendrují více paralelně v jakési honbě za FPS. Mám ale pochybnosti, jestli je to vždy správně implementované a jestli tím netrpí latence snímku. A latence snímku je mou prioritou hned bezprostředně následovanou výkonem. Nikoliv opačně.
Protože tedy rendrujeme vždy jen jeden snímek a až jej dokončíme, začínáme druhý, což vůbec není špatný design, proto nám stačí jen dvojice semaforů. Tuto dvojici pak použijeme vždy, ať už nám acquireNextImageKHR vrátí kterýkoliv snímek.