Add patch from:

Thu Apr 30 2010 Owen Taylor <otaylor@redhat.com> - 7.8.1-4
- Backport fix for glCopyTexSubImage from master. Needed to fix corruption
    issues with Clutter's texture atlases
This commit is contained in:
Owen Taylor 2010-04-30 00:33:21 +00:00
parent 21560f0a12
commit ed5ba512e7
1 changed files with 47 additions and 0 deletions

View File

@ -0,0 +1,47 @@
From a68e8a4eaadfe2a1e4999d5e378c7d9fa99dc656 Mon Sep 17 00:00:00 2001
From: Maciej Cencora <m.cencora@gmail.com>
Date: Wed, 10 Mar 2010 20:53:21 +0100
Subject: [PATCH] radeon: fix glCopyTex(Sub)Image if user FBO is bound
Fixes piglit/fbo-blit and wine d3d9 unit test.
---
src/mesa/drivers/dri/radeon/radeon_tex_copy.c | 9 ++++++---
1 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/src/mesa/drivers/dri/radeon/radeon_tex_copy.c b/src/mesa/drivers/dri/radeon/radeon_tex_copy.c
index 5cfad6f..e57d77e 100644
--- a/src/mesa/drivers/dri/radeon/radeon_tex_copy.c
+++ b/src/mesa/drivers/dri/radeon/radeon_tex_copy.c
@@ -52,15 +52,18 @@ do_copy_texsubimage(GLcontext *ctx,
gl_format dst_mesaformat;
unsigned src_width;
unsigned dst_width;
+ unsigned flip_y;
if (!radeon->vtbl.blit) {
return GL_FALSE;
}
if (_mesa_get_format_bits(timg->base.TexFormat, GL_DEPTH_BITS) > 0) {
- rrb = radeon_get_depthbuffer(radeon);
+ rrb = radeon_renderbuffer(ctx->ReadBuffer->_DepthBuffer);
+ flip_y = ctx->ReadBuffer->Attachment[BUFFER_DEPTH].Type == GL_NONE;
} else {
- rrb = radeon_get_colorbuffer(radeon);
+ rrb = radeon_renderbuffer(ctx->ReadBuffer->_ColorReadBuffer);
+ flip_y = ctx->ReadBuffer->Attachment[BUFFER_COLOR0].Type == GL_NONE;
}
if (!timg->mt) {
@@ -124,7 +127,7 @@ do_copy_texsubimage(GLcontext *ctx,
timg->mt->bo, dst_offset, dst_mesaformat,
timg->mt->levels[level].rowstride / dst_bpp,
dst_width, timg->base.Height,
- dstx, dsty, width, height, 1);
+ dstx, dsty, width, height, flip_y);
}
void
--
1.7.0.1