Interrupt time is not synchronous to the swapbuffer

Hi all,
I need to fill the Framebuffer exactly every new frame with a new image. The most time it works fine, but sometimes I get an Interrupt to early. This will overwrite the framebuffer before he is displayed. On the Monitor I can see, that the Image is skipped and the next Image is displayed instead. The next interrupt is than late or better to say in the right time of the second interrupt.
Let us assume I have 60 frames per second. Normally I get an interrupt every 16.66 ms.
Here a recorded list of interrupt delta times:
0,0167
0,0167
0,0024 ← to early
0,0309 ← to late (but in the right time for this interrupt count)
0,0168
0,0166

E.g.: Estimated is that the display show 1, 2, 3, 4, 5, 6, 7 (as Images)
What we see is 1, 3, 3, 4, 5, 6, 7. Because 1 and 2 are send in time. 3 is send to early and override 2. 4 is coming late and 3 is displayed again.
This is very sporadic. Sometimes every hour, sometimes after one minute.

Did anyone observed this?
Are there any workaround? E.g. manually filling the framebuffer, but how to get the right time?
Are there adjustments necessary?

Thanks in advance, Christian.

Hi all,

I have tested it on many machines and with different Languages (c#, c++ (openGL, DirectX)).
I tested NVIDIA K5000, K2200, M4000 grafikcards.
It is detectable with old and new drivers also with beta Vulkan drivers (but not tested with vulkan yet)

here some Systeminformation:
NVIDIA Systeminformationen-Bericht erstellt am: 05/24/2016 14:06:46
Name des Systems: xxxxxxxxxx

[Anzeige]
Betriebssystem: Windows 7 Enterprise, 64-bit (Service Pack 1)
DirectX-Version: 11.0
GPU-Prozessor: Quadro M4000
Treiberversion: 362.13
Direct3D-API-Version: 11
Direct3D-Funktionsebene: 11_1
CUDA-Kerne: 1664
Kerntakt: 772 MHz
Speicher-Datenrate: 6010 MHz
Speicherschnittstelle: 256-Bit
Speicherbandbreite: 192.32 GB/s
Gesamter verfügbarer Grafikspeicher: 24273 MB
Dedizierter Videospeicher: 8192 MB GDDR5
System-Videospeicher: 0 MB
Freigegebener Systemspeicher: 16081 MB
Video-BIOS-Version: 84.04.70.00.07
IRQ: Not used
Bus: PCI Express x16 Gen3
Geräte-ID: 10DE 13F1 115310DE
Teilenummer: G400 0501

[Komponenten]

nvui.dll 8.17.13.6213 NVIDIA User Experience Driver Component
nvxdsync.exe 8.17.13.6213 NVIDIA User Experience Driver Component
nvxdplcy.dll 8.17.13.6213 NVIDIA User Experience Driver Component
nvxdbat.dll 8.17.13.6213 NVIDIA User Experience Driver Component
nvxdapix.dll 8.17.13.6213 NVIDIA User Experience Driver Component
NVCPL.DLL 8.17.13.6213 NVIDIA User Experience Driver Component
nvCplUIR.dll 8.1.830.0 NVIDIA Control Panel
nvCplUI.exe 8.1.830.0 NVIDIA Control Panel
nvWSSR.dll 6.14.13.6213 NVIDIA Workstation Server
nvWSS.dll 6.14.13.6213 NVIDIA Workstation Server
nvViTvSR.dll 6.14.13.6213 NVIDIA Video Server
nvViTvS.dll 6.14.13.6213 NVIDIA Video Server
nvLicensingS.dll 6.14.13.6213 NVIDIA Licensing Server
NVSTVIEW.EXE 7.17.13.6213 NVIDIA 3D Vision Photo Viewer
NVSTTEST.EXE 7.17.13.6213 NVIDIA 3D Vision Test Application
NVSTRES.DLL 7.17.13.6213 NVIDIA 3D Vision Module
nvDispSR.dll 6.14.13.6213 NVIDIA Display Server
NVMCTRAY.DLL 8.17.13.6213 NVIDIA Media Center Library
nvDispS.dll 6.14.13.6213 NVIDIA Display Server
NVCUDA.DLL 6.14.13.6213 NVIDIA CUDA 8.0.20 driver
nvGameSR.dll 6.14.13.6213 NVIDIA 3D Settings Server
nvGameS.dll 6.14.13.6213 NVIDIA 3D Settings Server