Mesa (master): radeon/fbo: flush rendering before generating mipmaps

Andre Maasikas andrem at kemper.freedesktop.org
Fri Jan 22 10:59:02 UTC 2010


Module: Mesa
Branch: master
Commit: 278ad74fe060ab8ba21d21b675a40f6758edaeca
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=278ad74fe060ab8ba21d21b675a40f6758edaeca

Author: Andre Maasikas <amaasikas at gmail.com>
Date:   Fri Jan 22 12:57:01 2010 +0200

radeon/fbo: flush rendering before generating mipmaps

or maybe should flush(also) in finish_render_texture...

---

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

diff --git a/src/mesa/drivers/dri/radeon/radeon_texture.c b/src/mesa/drivers/dri/radeon/radeon_texture.c
index 20a27ad..4538e74 100644
--- a/src/mesa/drivers/dri/radeon/radeon_texture.c
+++ b/src/mesa/drivers/dri/radeon/radeon_texture.c
@@ -233,8 +233,15 @@ static void radeon_generate_mipmap(GLcontext *ctx, GLenum target,
 
 void radeonGenerateMipmap(GLcontext* ctx, GLenum target, struct gl_texture_object *texObj)
 {
+	radeonContextPtr rmesa = RADEON_CONTEXT(ctx);
+	struct radeon_bo *bo;
 	GLuint face = _mesa_tex_target_to_face(target);
 	radeon_texture_image *baseimage = get_radeon_texture_image(texObj->Image[face][texObj->BaseLevel]);
+	bo = !baseimage->mt ? baseimage->bo : baseimage->mt->bo;
+
+	if (bo && radeon_bo_is_referenced_by_cs(bo, rmesa->cmdbuf.cs)) {
+		radeon_firevertices(rmesa);
+	}
 
 	radeon_teximage_map(baseimage, GL_FALSE);
 	radeon_generate_mipmap(ctx, target, texObj);




More information about the mesa-commit mailing list