glReadPixels - is this possible?
I read back my rendered images using alternating PBOs. Although I render to a RGBA (BGRA) renderbuffer, I need an 8-bit RGB image in the end.
I thought this was easy, I only need to use GL_BGR_EXT instead of GL_BGRA_EXT in the glReadPixels call like this:
It works, but my great surprise, it can slow down my render thread quite considerably. Sometimes CPU utilization on that particular core can get above 50% even though there is not a lot going on. Once I change GL_BGR_EXT back to GL_BGRA_EXT, that ~50% falls back to something like 2%.
Is it possible that reading back in a similar but different format than what the buffer originally was defined is such a great deal? Am I better off writing my own code that would convert from BGRA to BGR?