5 Replies Latest reply on Sep 25, 2015 9:56 AM by rich99

    Setting flip-queue size in Direct3D 9 code



      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.

        • Re: Setting flip-queue size in Direct3D 9 code

          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?

          • Re: Setting flip-queue size in Direct3D 9 code

            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?