nouveau: Catch some more leaks.
authorYounes Manton <younes.m@gmail.com>
Sat, 20 Dec 2008 19:42:29 +0000 (14:42 -0500)
committerYounes Manton <younes.m@gmail.com>
Sat, 10 Jan 2009 18:52:06 +0000 (13:52 -0500)
src/gallium/state_trackers/g3dvl/vl_r16snorm_mc_buf.c
src/gallium/winsys/drm/nouveau/nouveau_channel.c

index 337680a3063f82a9d3ab177873ff8d1efe0adf81..426e5ba065a68914216126a287d192312485678b 100644 (file)
@@ -745,6 +745,7 @@ static int vlFlush
        }
 
        pipe->flush(pipe, PIPE_FLUSH_RENDER_CACHE, &mc->buffered_surface->render_fence);
+       pipe->screen->tex_surface_release(pipe->screen, mc->render_target.cbufs[0]);
 
        for (i = 0; i < 3; ++i)
                mc->zero_block[i].x = -1.0f;
index 3b4dcd1ecf22d25d2df88bffe806ead7589c44e6..b7127f8860eec40c48eff8599ba453ecb24e244b 100644 (file)
@@ -118,6 +118,8 @@ nouveau_channel_free(struct nouveau_channel **chan)
        nouveau_grobj_free(&nvchan->base.gart);
        nouveau_grobj_free(&nvchan->base.nullobj);
 
+       free(nvchan->pb.buffers);
+       free(nvchan->pb.relocs);
        cf.channel = nvchan->drm.channel;
        drmCommandWrite(nvdev->fd, DRM_NOUVEAU_CHANNEL_FREE, &cf, sizeof(cf));
        free(nvchan);