-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Description
Hi, after a lot of back and forth around the MiniEngine source code, particularly on the fence and frame synchronisation part, I'm not sure about something.
Does the frame synchronisation of MiniEngine entirely relies on GpuTimeManager::BeginReadBack
? After adding a breakpoint on CommandQueue::WaitForFence, the only call done once per frame after all resource initialisation come from GpuTimeManager::BeginReadBack
From what I've read, waiting for a fence to be completed guaranties that every fence value beforehand are completed too, but I'm might be wrong.
If it is the case, why does GpuTimeManager
has the responsability for frame sync ? Why there isn't any similar case than D3D12HelloFrameBuffering
usage of fences for MiniEngine, like waiting for a fence only its buffer need to be accessed over again ?
And in general, why MiniEngine seems to care about multiple frame buffers only in Display
, where there is the only usage of g_CurrentBuffer
? (even though it doesn't wait for fences here neither).
I hope it'll help me have a better understanding of multiple frame buffering and fences usage.
Thank you