Mesa (7.8): st/mesa: don't detach renderbuffer, surface in st_finish_render_texture()

Brian Paul brianp at kemper.freedesktop.org
Mon Mar 8 18:40:05 UTC 2010


Module: Mesa
Branch: 7.8
Commit: 80dc54e308dfb1fad344272978ff14646995e00a
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=80dc54e308dfb1fad344272978ff14646995e00a

Author: Brian Paul <brianp at vmware.com>
Date:   Mon Mar  8 11:31:23 2010 -0700

st/mesa: don't detach renderbuffer, surface in st_finish_render_texture()

There's no reason to release the renderbuffer from the framebuffer object
or release the gallium surface in this function (they're reference counted).
In fact, we don't want to do this because we may later use the texture as a
pixel source (ex: glBlitFramebuffer) and need the surface.

Fixes fd.o bug 26923 and is part of the fix for bug 26932.

---

 src/mesa/state_tracker/st_cb_fbo.c |    5 -----
 1 files changed, 0 insertions(+), 5 deletions(-)

diff --git a/src/mesa/state_tracker/st_cb_fbo.c b/src/mesa/state_tracker/st_cb_fbo.c
index 8fded0c..00e9d1d 100644
--- a/src/mesa/state_tracker/st_cb_fbo.c
+++ b/src/mesa/state_tracker/st_cb_fbo.c
@@ -410,17 +410,12 @@ st_finish_render_texture(GLcontext *ctx,
 
    st_flush( ctx->st, PIPE_FLUSH_RENDER_CACHE, NULL );
 
-   if (strb->surface)
-      pipe_surface_reference( &strb->surface, NULL );
-
    strb->rtt = NULL;
 
    /*
    printf("FINISH RENDER TO TEXTURE surf=%p\n", strb->surface);
    */
 
-   _mesa_reference_renderbuffer(&att->Renderbuffer, NULL);
-
    /* restore previous framebuffer state */
    st_invalidate_state(ctx, _NEW_BUFFERS);
 }




More information about the mesa-commit mailing list