I'd like to understand how flip-queue size works in Direct3D 9 and the FirePro GPUs. I understand it is not a true triple buffering, only a queue, and this is fine. We need to be able to control it since this has important implications in our project because we want to either control for very low latency or minimize judder. Different scenarios require a different setting.
Is there a way to set flip-queue size in Direct3D9? In Direct3D 9Ex, we can set it with IDirect3DDevice9Ex::SetMaximumFrameLatency. Here is a GPUView analysis showing the value going from 1 to 7. It seems to max out at 4 frames.
I'd like to know how to do this in Direct3D 9 (not ex). Playing with vsync interval (D3DPRESENT_INTERVAL_ONE to _FOUR) doesn't affect it, it always stays at 3 frames. Nvidia provides a control panel setting, but we'd like to set it from code and for AMD.
Is there a way to use more than 4 frames?