Well, when you make a multithreaded application, usually there is one main thread, which controls everything else, timings and all.
The alternative
is to have all threads know how to sync with whichever other thread they need to sync with, whenever they need to. This way tends to be more difficult (and I am yet to think of a use case and application methodology for this method).
Now usually you make sure not to have any blocking function (large calculation or file R/W requiring HDD fetching) on the main thread.
Maybe they made some mistakes in this regard in their previous games and did better this time.
From what I see, it seems like they didn’t use the graphics API (seems to be Vulkan) properly enough, for which I can’t do anything, given my lack of exp with it.
Perhaps a god time for me to delve into Vulkan.
Well, when you make a multithreaded application, usually there is one main thread, which controls everything else, timings and all.
The alternative
is to have all threads know how to sync with whichever other thread they need to sync with, whenever they need to. This way tends to be more difficult (and I am yet to think of a use case and application methodology for this method).
Now usually you make sure not to have any blocking function (large calculation or file R/W requiring HDD fetching) on the main thread. Maybe they made some mistakes in this regard in their previous games and did better this time.
From what I see, it seems like they didn’t use the graphics API (seems to be Vulkan) properly enough, for which I can’t do anything, given my lack of exp with it. Perhaps a god time for me to delve into Vulkan.