glgsg: work around driver bug extracting buffer texture data

Some drivers would report the wrong internal format.  But it's silly that we query the internal format anyway, since buffer textures have a fixed sized internal format.
This commit is contained in:
rdb 2018-07-17 17:04:50 +02:00
parent 61084a3f4e
commit 799f0b4f78

View File

@ -13442,7 +13442,14 @@ do_extract_texture_data(CLP(TextureContext) *gtc) {
GLint internal_format = GL_RGBA;
#ifndef OPENGLES
glGetTexLevelParameteriv(page_target, 0, GL_TEXTURE_INTERNAL_FORMAT, &internal_format);
if (target != GL_TEXTURE_BUFFER) {
glGetTexLevelParameteriv(page_target, 0, GL_TEXTURE_INTERNAL_FORMAT, &internal_format);
} else {
// Some drivers give the wrong result for the above call. No problem; we
// already know the internal format of a buffer texture since glTexBuffer
// required passing the exact sized format.
internal_format = gtc->_internal_format;
}
#endif // OPENGLES
// Make sure we were able to query those parameters properly.