I've been working on an application which requires rendering of 3D scenes in OpenGL under hard real time constraints. It logs the time delta between the first and the last OpenGL rendering call to measure frame stutter, as illustrated below. When I run it on Geforce hardware, I observe a sudden, single and deterministic spike in rendering time. The frame where the spike occurs changes depending on the complexity of the rendered scene but running the application multiple times with the same scene always produce a spike at the very same frame. Nothing in the application code could explain such a spike so I suspect this is driver-sided (looks as though the driver is attempting to profile the application and after hitting a given threshold, an internal function is called which takes a relatively long time to execute). To further defend this theory, I've tested the same application on Radeon and Quadro hardware and experience no such behavior. I've tried different options in the Nvidia control panel to no avail (although turning off adaptive power management prevented a slight increase in rendering time following the spike).

How can I address this issue?


Click image for larger version. 

Name:	frametimes.jpg 
Views:	335 
Size:	14.2 KB 
ID:	1505