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,0024 <- to early
0,0309 <- to late (but in the right time for this interrupt count)

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

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
IRQ: Not used
Bus: PCI Express x16 Gen3
Geräte-ID: 10DE 13F1 115310DE
Teilenummer: G400 0501


nvui.dll NVIDIA User Experience Driver Component
nvxdsync.exe NVIDIA User Experience Driver Component
nvxdplcy.dll NVIDIA User Experience Driver Component
nvxdbat.dll NVIDIA User Experience Driver Component
nvxdapix.dll NVIDIA User Experience Driver Component
NVCPL.DLL 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 NVIDIA Workstation Server
nvWSS.dll NVIDIA Workstation Server
nvViTvSR.dll NVIDIA Video Server
nvViTvS.dll NVIDIA Video Server
nvLicensingS.dll NVIDIA Licensing Server
NVSTVIEW.EXE NVIDIA 3D Vision Photo Viewer
NVSTTEST.EXE NVIDIA 3D Vision Test Application
nvDispSR.dll NVIDIA Display Server
NVMCTRAY.DLL NVIDIA Media Center Library
nvDispS.dll NVIDIA Display Server
nvGameSR.dll NVIDIA 3D Settings Server
nvGameS.dll NVIDIA 3D Settings Server