We plan to add a new FRAMEPACING option that checks chunk sent and how long it took to generate and then calculates "how many chunks can we generate per second in theory, how to evenly present the frames generated this second?"
this may be a reason to implement SwapChainMode instead of providing a seperate BackpressureMode and PresentationMode given it may require communication across backpressure and final presentation. This means we will end up having 3 modes:
- SwapChainMode::FAST: Drop-Oldest + Only Present Newest, Fastest option.
- SwapChainMode::LOSSLESS: Blocking + Only Present New, Required for quality evals.
- SwapChainMode::FRAMEPACING: custom, calculates "how many chunks can we generate per second in theory, how to evenly present the frames generated this second?" then proceeds to block accordingly dynamically, best UX.
Default should be SwapChainMode::FRAMEPACING.
We plan to add a new FRAMEPACING option that checks chunk sent and how long it took to generate and then calculates "how many chunks can we generate per second in theory, how to evenly present the frames generated this second?"
this may be a reason to implement SwapChainMode instead of providing a seperate BackpressureMode and PresentationMode given it may require communication across backpressure and final presentation. This means we will end up having 3 modes:
Default should be SwapChainMode::FRAMEPACING.