st/mesa: ignore gl_texture_object::BaseLevel when allocating gallium textures
Previously, when we created a gallium texture for a corresponding Mesa texture we'd only allocate space for mipmap levels >= BaseLevel. This patch undoes that mechanism. This fixes a render-to-texture bug when rendering to level 0 when BaseLevel=1. Also, it makes sense to allocate the whole texture object memory when BaseLevel > 0 since a common use of GL_TEXTURE_BASE_LEVEL is to progressively load/render mipmaps. Eventually, the app almost always fills in the level=0 mipmap image. Finally, the texture image code is bit easier to understand now.
This commit is contained in:
@@ -138,7 +138,6 @@ finalize_textures(struct st_context *st)
|
||||
const GLuint texUnit = fprog->Base.SamplerUnits[su];
|
||||
struct gl_texture_object *texObj
|
||||
= st->ctx->Texture.Unit[texUnit]._Current;
|
||||
struct st_texture_object *stObj = st_texture_object(texObj);
|
||||
|
||||
if (texObj) {
|
||||
GLboolean flush, retval;
|
||||
@@ -149,8 +148,6 @@ finalize_textures(struct st_context *st)
|
||||
st->missing_textures = GL_TRUE;
|
||||
continue;
|
||||
}
|
||||
|
||||
stObj->teximage_realloc = TRUE;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user