Walk the array of cbufs backwards and free all of them.

v2: Change to C-style comments and fix indentation

Signed-off-by: Aaron Watry <awa...@gmail.com>
---
 src/gallium/drivers/r600/evergreen_compute.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/gallium/drivers/r600/evergreen_compute.c 
b/src/gallium/drivers/r600/evergreen_compute.c
index 38b78c7..510d9a3 100644
--- a/src/gallium/drivers/r600/evergreen_compute.c
+++ b/src/gallium/drivers/r600/evergreen_compute.c
@@ -240,6 +240,15 @@ void evergreen_delete_compute_state(struct pipe_context 
*ctx, void* state)
 
        FREE(shader->kernels);
 
+       if (shader->ctx){
+               struct pipe_framebuffer_state *fb_state = 
&shader->ctx->framebuffer.state;
+               for (int i = fb_state->nr_cbufs - 1; fb_state->nr_cbufs > 0 ; 
i--){
+                       shader->ctx->b.b.surface_destroy(ctx, 
fb_state->cbufs[i]);
+                       fb_state->cbufs[i] = NULL;
+                       fb_state->nr_cbufs--;
+               }
+       }
+
 #ifdef HAVE_OPENCL
        if (shader->llvm_ctx){
                LLVMContextDispose(shader->llvm_ctx);
-- 
1.9.1

_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to