Mesa (radeon-rewrite): radeon: Don't crash generating mipmaps when pixels= NULL

Alex Deucher agd5f at kemper.freedesktop.org
Wed May 13 23:44:32 UTC 2009


Module: Mesa
Branch: radeon-rewrite
Commit: ca792be42b238bd1c8f8a99ad72ea8558cbbfc32
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ca792be42b238bd1c8f8a99ad72ea8558cbbfc32

Author: Owen W. Taylor <otaylor at fishsoup.net>
Date:   Sat May  9 15:23:34 2009 -0400

radeon: Don't crash generating mipmaps when pixels=NULL

When a NULL value of pixels is passed to TexImage2D and
SGIS_generate_mipmap is enabled, don't try to generate the
mipmap tree: we don't have data yet for the texture and will
crash.

https://bugs.freedesktop.org/show_bug.cgi?id=21648

---

 src/mesa/drivers/dri/radeon/radeon_texture.c |   17 ++++++++---------
 1 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c
index 0f1d9c2..564da19 100644
--- a/src/mesa/drivers/dri/radeon/radeon_texture.c
+++ b/src/mesa/drivers/dri/radeon/radeon_texture.c
@@ -612,11 +612,10 @@ static void radeon_teximage(
 				_mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexImage");
 		}
 
-	}
-
-	/* SGIS_generate_mipmap */
-	if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
-		radeon_generate_mipmap(ctx, texObj->Target, texObj);
+		/* SGIS_generate_mipmap */
+		if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
+			radeon_generate_mipmap(ctx, texObj->Target, texObj);
+		}
 	}
 
 	_mesa_unmap_teximage_pbo(ctx, packing);
@@ -741,12 +740,12 @@ static void radeon_texsubimage(GLcontext* ctx, int dims, int level,
 				_mesa_error(ctx, GL_OUT_OF_MEMORY, "glTexSubImage");
 		}
 
+		/* GL_SGIS_generate_mipmap */
+		if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
+			radeon_generate_mipmap(ctx, texObj->Target, texObj);
+		}
 	}
 
-	/* GL_SGIS_generate_mipmap */
-	if (level == texObj->BaseLevel && texObj->GenerateMipmap) {
-		radeon_generate_mipmap(ctx, texObj->Target, texObj);
-	}
 	radeon_teximage_unmap(image);
 
 	_mesa_unmap_teximage_pbo(ctx, packing);




More information about the mesa-commit mailing list