Hi,
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?
Thank you.
Solved! Go to Solution.
You need to create the FlipQueueSize String registry key and set it to 1.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\00XX\UMD\
Tested and it works.
I have stumbled on the FlipQueueSize_SET registery value, but it does not seem to work in recent drivers or FirePro cards. Is there a way to control this by code?
Hi,
to my knowledge we do not have a way to control the flip queue length for D3D9. The application will always be able to queue up to 3 frames.
Sorry
Chris
There was a way to control it before using this registry key.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\{4D36E968-E325-11CE-BFC1-08002BE10318}\0000\UMD
This is an AMD driver setting, was this removed? There should be a way to control it through code and per application, especially for FirePro since this can be very useful in certain situations like ours.
I am bumping this, since it's an important issue and I want to make it clear that this has been controllable through a registry entry as described up there, so it is or was possible to change this in AMD's drivers.
Low latency playback requires lowering the flip-queue size. In gaming it is used to have fast mouse response, but also in professional applications where we need low latency live capture. At the time it's impossible to do this, because flip-queue varies and is 3 frames most of the time, sometimes 4, which is too much, we need to set this to 1 frame for certain situations or more for other situations.
How is this possible with FirePro cards?
You need to create the FlipQueueSize String registry key and set it to 1.
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\00XX\UMD\
Tested and it works.