radeonsi/compute: Fix memory leak
authorAaron Watry <awatry@gmail.com>
Wed, 12 Mar 2014 18:26:10 +0000 (13:26 -0500)
committerAaron Watry <awatry@gmail.com>
Sat, 15 Mar 2014 16:59:19 +0000 (11:59 -0500)
Free shader buffer object for all kernels when deleting compute state.

Signed-off-by: Aaron Watry <awatry@gmail.com>
src/gallium/drivers/radeonsi/si_compute.c

index e16feab52342d1b4d09cd293c1f0b8667e9a0cf9..c0637f6f7ece7a950556cb03004812f8bc669ad1 100644 (file)
@@ -301,6 +301,12 @@ static void si_delete_compute_state(struct pipe_context *ctx, void* state){
        }
 
        if (program->kernels) {
+               for (int i = 0; i < program->num_kernels; i++){
+                       if (program->kernels[i].bo){
+                               si_pipe_shader_destroy(ctx, &program->kernels[i]);
+                       }
+               }
+               
                FREE(program->kernels);
        }