i965: Fix up VP constbuf leak on program delete.
authorEric Anholt <eric@anholt.net>
Tue, 9 Mar 2010 00:08:33 +0000 (16:08 -0800)
committerEric Anholt <eric@anholt.net>
Tue, 9 Mar 2010 22:42:17 +0000 (14:42 -0800)
src/mesa/drivers/dri/i965/brw_program.c

index c78f7b38aeedcce2a7deb7c1820a879b9587f387..1fd957b3ad66ad55b6475f54e7ae170de4c9a120 100644 (file)
@@ -95,9 +95,17 @@ 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);
+      struct gl_fragment_program *fp = (struct gl_fragment_program *) prog;
+      struct brw_fragment_program *brw_fp = brw_fragment_program(fp);
+
+      dri_bo_unreference(brw_fp->const_buffer);
+   }
+
+   if (prog->Target == GL_VERTEX_PROGRAM_ARB) {
+      struct gl_vertex_program *vp = (struct gl_vertex_program *) prog;
+      struct brw_vertex_program *brw_vp = brw_vertex_program(vp);
+
+      dri_bo_unreference(brw_vp->const_buffer);
    }
 
    _mesa_delete_program( ctx, prog );