1 2 3 4 5 6 7 8 9 10 11 12 13
| Here are code snippets showing what to avoid and how to achieve fast transfer
rates:
//These calls will cause a slow down because of driver swizzling
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA8 ,img_width, img_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, img_data);
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA ,img_width, img_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, img_data);
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA16_NV ,img_width, img_height, 0, GL_BGRA, GL_HALF_FLOAT_NV, img_data);
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA_NV ,img_width, img_height, 0, GL_BGRA, GL_FLOAT_NV, img_data);
//These calls would not require unnecessary swizzling
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA8 ,img_width, img_height, 0, GL_BGRA, GL_UNSIGNED_BYTE, img_data);
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_RGBA ,img_width, img_height, 0, GL_BGRA, GL_UNSIGNED_BYTE, img_data);
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA16_NV ,img_width, img_height, 0, GL_RGBA, GL_HALF_FLOAT_NV, img_data);
glTexImage2D(GL_TEXTURE_RECTANGLE_NV, 0, GL_FLOAT_RGBA_NV ,img_width, img_height, 0, GL_RGBA, GL_FLOAT_NV, img_data); |