Mesa (master): i965: free shader's constant buffer in brwDeleteProgram()

Brian Paul brianp at kemper.freedesktop.org
Thu Apr 9 16:36:39 UTC 2009


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

Author: Brian Paul <brianp at vmware.com>
Date:   Thu Apr  9 10:33:08 2009 -0600

i965: free shader's constant buffer in brwDeleteProgram()

Fixes mem leak observed with texcombine test.

---

 src/mesa/drivers/dri/i965/brw_program.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/src/mesa/drivers/dri/i965/brw_program.c b/src/mesa/drivers/dri/i965/brw_program.c
index 457bc2f..fbf1ddd 100644
--- a/src/mesa/drivers/dri/i965/brw_program.c
+++ b/src/mesa/drivers/dri/i965/brw_program.c
@@ -95,6 +95,12 @@ static struct gl_program *brwNewProgram( GLcontext *ctx,
 static void brwDeleteProgram( GLcontext *ctx,
 			      struct gl_program *prog )
 {
+   if (prog->Target == GL_FRAGMENT_PROGRAM_ARB) {
+      struct gl_fragment_program *fprog = (struct gl_fragment_program *) prog;
+      struct brw_fragment_program *brw_fprog = brw_fragment_program(fprog);
+      dri_bo_unreference(brw_fprog->const_buffer);
+   }
+
    _mesa_delete_program( ctx, prog );
 }
 




More information about the mesa-commit mailing list