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