Rectangular and extern textures don't support mip-maps, but when a texture allocation fails, then clear_texture_fields tried to clean all LOSs, which would fire an assertion further down the call chain in set_tex_image. Therefore, restrict the number of LODs to be cleaned to just level 0 for these textures.
Signed-off-by: Gert Wollny <gert.wol...@collabora.com> --- src/mesa/main/texstorage.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mesa/main/texstorage.c b/src/mesa/main/texstorage.c index 9cb8b90065..ea21dfe421 100644 --- a/src/mesa/main/texstorage.c +++ b/src/mesa/main/texstorage.c @@ -182,10 +182,13 @@ clear_texture_fields(struct gl_context *ctx, { const GLenum target = texObj->Target; const GLuint numFaces = _mesa_num_tex_faces(target); + const GLint numLevels = (target != GL_TEXTURE_RECTANGLE_NV && + target != GL_TEXTURE_EXTERNAL_OES) ? + ARRAY_SIZE(texObj->Image[0]) : 1; GLint level; GLuint face; - for (level = 0; level < ARRAY_SIZE(texObj->Image[0]); level++) { + for (level = 0; level < numLevels; level++) { for (face = 0; face < numFaces; face++) { struct gl_texture_image *texImage = get_tex_image(ctx, texObj, face, level); -- 2.16.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev