Assume the pipeline is fully full: GPU waiting on vsync, GPU/driver command buffers all full, and thus user program blocked.
How many frames worth of data is in the (modern) pipeline?
For example: (4)
It depends on which graphics card you're using, and which mode you've placed it in, but generally speaking, the answer is 1-3 frames (or 2-4, if you're counting the frame that is being pushed into the buffer as a frame).
Note that with Triple Buffering, the Host doesn't get blocked when the buffer is full.
The GPU may choose to buffer additional frames, like in your example, though this is more common to OpenGL/DirectX11- than it is to Vulkan/DirectX12+, since in those latter APIs, the Host is being much more explicit in terms of what the GPU is supposed to do, and I can't imagine a programmer that willfully expands the frame buffer. It's not really clear what benefit it would offer beyond what Triple Buffering already offers.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With