Vlákno názorů k článku Vulkan: prezentační režimy a točící se trojúhelník od Mac_CZ - Pro synchronizaci používáte dvojici semforů. Je to dostatečné?...

  • Článek je starý, nové názory již nelze přidávat.
  • 26. 8. 2022 9:44

    Mac_CZ

    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.

  • 26. 8. 2022 14:12

    Jan Pečiva

    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.

  • 26. 8. 2022 14:50

    Mac_CZ

    Ok, díky za vysvětlení.