cancel
Showing results for 
Search instead for 
Did you mean: 

FirePro Development

rich99
Adept I

Setting flip-queue size in Direct3D 9 code

Jump to solution

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.

flip_queue.png

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.

0 Kudos
Reply
1 Solution

Accepted Solutions
rich99
Adept I

Re: Setting flip-queue size in Direct3D 9 code

Jump 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.

View solution in original post

5 Replies
rich99
Adept I

Re: Setting flip-queue size in Direct3D 9 code

Jump to solution

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?

0 Kudos
Reply
chm
Staff
Staff

Re: Setting flip-queue size in Direct3D 9 code

Jump to solution

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

0 Kudos
Reply
rich99
Adept I

Re: Setting flip-queue size in Direct3D 9 code

Jump to solution

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.

0 Kudos
Reply
rich99
Adept I

Re: Setting flip-queue size in Direct3D 9 code

Jump to solution

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?

0 Kudos
Reply
rich99
Adept I

Re: Setting flip-queue size in Direct3D 9 code

Jump 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.

View solution in original post