Stuttering every Second using DoubleBuffering


I have a very strange problem with my animation dropping a frame exactly every one second.

System: DirectX 9, Windows 7 & 8, Geforce GTX 750 TI, 60Hz Refresh, Doublebuffering

Edit: I found a solution for me: Just use tripple buffering (double buffering was only activated by accident). But the problem using double buffering persists on standard NVidia gfx boards. I also tested a NVidia Quadro K600 which seems to be immune (maybe because the Quadros using a different driver). I leave this post here if somebody has a similar problem or maybe NVidia can check for a problem in the driver?

The problem already exists a long time in my application and occurs on different machines, but I was only recently able to make it visible via NSight 4.

In this timeline you can see the “long frame” every second.

Now zoomed into the selected area:

You can see a spike in load in the nvd3dum.dll every one second and the call to DrawPrimitive takes extremely long (about 26 ms). But it’s really the same content rendered every time.

I can reproduce the problem with a very simple drawing loop with only one Clear and one DrawPrimitive.

  DrawPrimitive(...); // draw a simple colored quad

Interestingly the problem doesn’t occur if I leave out either Clear or DrawPrimitive. It also doesn’t occur if I throttle the loop (e.g. via Sleep(20 ms)) over 16 ms.
Could it be some issue with the driver actively waiting for a vsync? As this issue exists already very long (I aware of it over a year) I don’t think it is a recent driver issue.