Forcing antialiasing on through NVIDIA Control Panel results in blank rendering

My Windows OpenGL app stops rendering anything if I force antialiasing on in the NVIDIA Control Panel. This has been seen on cards ranging from GeForce 6200 on Win XP with driver 307.83 (last available) to GTX 460 on Windows 7 with the latest drivers. It doesn’t occur on AMD GPUs.

I create a main framebuffer using glGenFramebuffer, then create colour & stencil renderbuffers in GL_RGBA8 and GL_DEPTH24_STENCIL8 respectively, using glRenderbufferStorageMultisample with 0 samples (initially) specified. These are bound to the attachment points for colour buffer 0, depth & stencil.

At the beginning of the frame, this framebuffer is set as GL_DRAW_BUFFER. At the end, it’s set as GL_READ_BUFFER. I then set GL_DRAW_BUFFER to 0, call glBlitFramebuffer with GL_COLOR_BUFFER_BIT, and finally SwapBuffers. At no point does glGetError return anything other than GL_NO_ERROR.

Everything works fine if antialiasing is left to the application. As soon as it’s forced through NVIDIA Control Panel, the screen is blank. How exactly does this functionality interact with OpenGL rendering through framebuffer objects? What am I doing wrong - or is a driver bug? I’d expect it to simply override the samples parameter in calls to glRenderbufferStorageMultisample.

I would expect that setting to only change the behaviour of the main framebuffers, not any FBO attachments.
In that case the number of samples on the read and draw buffer are not the same which is an error condition for glBlitFramebuffer().
If you’re as far as controlling the glBlitFramebuffer() already to do antialiasing in your application, there is no need for a control panel override.

Thanks for the reply (I didn’t get an email notification, can we enable them here?)

I’m surprised if the setting only applies to the system-provided framebuffer. Surely most games do their rendering to extra framebuffers these days, for post-processing, tone mapping etc. before resolving to the one associated with the window. In that case, users would never see any antialiasing from enabling the option in Control Panel, rendering it largely useless except for ancient legacy apps?

You’re right that I don’t require the user to do this because I’m doing multisampling anyway, but the problem is I can’t tell if the user has enabled it. If they’ve done so for their other games it breaks mine. Surely there’s a workaround?