mesa: Fix GenerateMipmapEXT(GL_TEXTURE_CUBE_MAP_ARB).
The ctx->Driver.GenerateMipmap() hook only expects cubemap face enums, not CUBE_MAP_ARB, so walk all faces when we encounter that. Fixes oglconform fbo.c segfault with both swrast and i965 drivers.
This commit is contained in:
@@ -1574,9 +1574,17 @@ _mesa_GenerateMipmapEXT(GLenum target)
|
||||
texUnit = &ctx->Texture.Unit[ctx->Texture.CurrentUnit];
|
||||
texObj = _mesa_select_tex_object(ctx, texUnit, target);
|
||||
|
||||
/* XXX this might not handle cube maps correctly */
|
||||
_mesa_lock_texture(ctx, texObj);
|
||||
ctx->Driver.GenerateMipmap(ctx, target, texObj);
|
||||
if (target == GL_TEXTURE_CUBE_MAP) {
|
||||
int face;
|
||||
|
||||
for (face = 0; face < 6; face++)
|
||||
ctx->Driver.GenerateMipmap(ctx,
|
||||
GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB + face,
|
||||
texObj);
|
||||
} else {
|
||||
ctx->Driver.GenerateMipmap(ctx, target, texObj);
|
||||
}
|
||||
_mesa_unlock_texture(ctx, texObj);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user