We are noticing sudden stuttering and crashing in our multithreaded OpenGL applications with drivers versions 572.xx on OpenGL 3.3 and onwards. We have confirmed this happens on NVIDIA Quadro RTX A3000 GPUs. We have spent significant time trying to isolate the problems but it seems that crashes seem more or less random and point somewhere in the stack of nvoglv64.dll. Previous versions seem to work fine (538.95) although we have not tested all.
It would be helpful to know if others have encountered the same problems. We assume the driver updates introduce some kind of driver bug in shared context OpenGL applications as that is the only place we have encountered these crashes and stuttering.
In these newer driver versions we also found suspicious GL_INVALID_VALUE generated in a calls to glLineWidth(0.75f). According to the spec this should be rounded to the nearest supported width but instead GL_INVALID_VALUEs are generated as if the line width equals 0 or below.
Yes, I think this is mostly due to many issues with 572.xx series drivers for all RTX cards I believe. Waiting for new drivers to see if anything has been fixed. Older drivers seem to be stable.
After some talk with NVIDIA it seems that turning off the setting: “Threaded optimization” in the NVIDIA control panel fixed the issue. It seems something changed in newest driver versions for this optimization that causes issues. @Fabrice_Mollo worth checking out.
We can reproduce these issues with all of the newer drivers - OpenGL applications on Windows see memory leaks and extreme stutter when “Threaded optimization” is in its default or explicitly enabled state.
I also confirm the issue is still present on the latest R570 U6 (573.42) driver for NVIDIA RTX A3000 12GB Laptop GPU | Windows 11. Spent a whole night debugging, turned out disabling “Threaded optimization” fixes the problem. The issue occurs when making OpenGL (possibly specifically glTexImage2D, but I haven’t debugged it in detail) calls on a seperate thread with shared contexts enabled. In my case the program stutters as if it were making these actions on the main render thread.
It’s almost as if nvidia devs were trying to outsmart the opengl devs, moving gpu intensive tasks off current thread to another one, but if you configure shared contexts and threading correctly in the first place, this bug causes the program to stutter more than if you haven’t configured shared contexts / multithreading in the first place :P