Original Post
Because I've been tasked to try and increase performance out of our application at work, I've been doing some reading and found that OpenGL on Windows would prefer a call to upload a texture to look something like the following: I understand that the card's driver would have to swizzle the incoming data if the format was specified as GL_RGBA8. This is where GL_BGRA8 gives you maximum throughput. Our application uses quite a bit of texture memory that not all of it is going to fit in VRAM. If GL_RGBA8 was used instead, does the driver only penalize your throughput once for uploading the data to the card since a swizzle is required, or does it penalize you if the texture has to be swapped out to system memory to make room for other data on the VRAM? I would assume that driver would continue to store the texture as the internal format while in system memory, but I just wanted to make sure.
glTexImage2d(GL_TEXTURE_2D,
0,
GL_RGBA8,
512, 512,
0,
GL_BGRA8,
GL_UNSIGNED_BYTE,
pData);