Mesa (master): swrast: fix glReadPixels from texture attachment

Brian Paul brianp at kemper.freedesktop.org
Tue Nov 15 14:55:25 UTC 2011


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

Author: Brian Paul <brianp at vmware.com>
Date:   Sat Nov 12 11:50:32 2011 -0700

swrast: fix glReadPixels from texture attachment

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

---

 src/mesa/swrast/s_texrender.c |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/src/mesa/swrast/s_texrender.c b/src/mesa/swrast/s_texrender.c
index 83e7a6a..3734ce6 100644
--- a/src/mesa/swrast/s_texrender.c
+++ b/src/mesa/swrast/s_texrender.c
@@ -567,6 +567,19 @@ update_wrapper(struct gl_context *ctx, struct gl_renderbuffer_attachment *att)
    trb->Base.InternalFormat = trb->TexImage->Base.InternalFormat;
    trb->Base.Format = trb->TexImage->Base.TexFormat;
 
+   /* Set the gl_renderbuffer::Data field so that mapping the buffer
+    * in renderbuffer.c succeeds.
+    */
+   if (att->Texture->Target == GL_TEXTURE_3D ||
+       att->Texture->Target == GL_TEXTURE_2D_ARRAY_EXT) {
+      trb->Base.Data = trb->TexImage->Buffer +
+         trb->TexImage->ImageOffsets[trb->Zoffset] *
+         _mesa_get_format_bytes(trb->TexImage->Base.TexFormat);
+   }
+   else {
+      trb->Base.Data = trb->TexImage->Buffer;
+   }
+
    /* XXX may need more special cases here */
    switch (trb->TexImage->Base.TexFormat) {
    case MESA_FORMAT_Z24_S8:




More information about the mesa-commit mailing list