I do know that OpenGL calls always cause an implicit synchronisation when switching context (like when using CUDA), so using async calls together with OpenGL interoperability is only of limited use.
Well I mean that you can do it, it just doesn’t help performance.
But the 60fps number is strange, CUDA shouldn’t lock it to a certain number of frames per second. I’ve had much higher fps rates with CUDA-using opengl programs.
Hm… its not just my program. In the SDK examples there is already a fluid demo that is showing the FPS. In my case its always 60.8 even I reduce the number of particles to a fraction of the original amount.
The strange thing is now: Once I start dragging the console window accross the GL-Window, the framerate increases from 60.8 up to 97 fps … ???
The only thing I can guess is that the synchronization is done event based and each times an event (like whatever) occurs, the synchronization checks if the GPU is done…
In windows you usually do these things in the Idle event. I seem to recall there being a return value that controlled how long it will be until the next idle event.