Nvidia SLI AA : glReadPixels

Up to now, I was using SLI AA with the rendering done in the backbuffer. When I was getting the backbuffer with glReadPixels, the driver was returning the merged result of all GPUs.

Now, my application still use SLI AA, but inside a FBO. Things are still working well and all AA levels are shown on the screen once the blit is done in backbuffer and then swapped. But… when I readback the data with glReadPixels, I no longer have all sub-pixels; instead, the data retrieved is from a single GPU. This happens if I readback the FBO, the backbuffer or even the front buffer after the swap.

The reason why I need the merged result is for screenshot purpose. In Windows 7, we are no longer able to use the “print screen” button so the glReadPixels is normally a good choice, but now I’m left with no option.

  • Is there any OpenGL operation which would force the merge to be done prior to my readpixels?
  • Is there any way to retrieve the data from each GPU independently? I don’t care if I have to do the merge myself on the CPU afterward or if performance wise it is slow…