On 14.11.2014 19:37, Marek Olšák wrote: > surface_destroy should never be called directly, because surfaces have > a reference counter. For unreferencing resources, use > pipe_surface_reference(&pointer, NULL). It will call surface_destroy > if needed.
Indeed, if this was the right place for this, it could be done both easier and more robustly: for (int i = 0; i < fb_state->nr_cbufs; i++) pipe_surface_reference(&fb_state->cbufs[i], NULL); > On Fri, Nov 14, 2014 at 12:43 AM, Aaron Watry <awa...@gmail.com> wrote: >> Walk the array of cbufs backwards and free all of them. >> >> v3: Rebase on top of changes since Aug 2014 >> >> 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 90fdd79..4334743 100644 >> --- a/src/gallium/drivers/r600/evergreen_compute.c >> +++ b/src/gallium/drivers/r600/evergreen_compute.c >> @@ -252,6 +252,15 @@ void evergreen_delete_compute_state(struct pipe_context >> *ctx, void* state) >> if (!shader) >> return; >> >> + 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--; >> + } >> + } >> + >> FREE(shader); >> } >> >> -- >> 2.1.0 >> >> _______________________________________________ >> mesa-dev mailing list >> mesa-dev@lists.freedesktop.org >> http://lists.freedesktop.org/mailman/listinfo/mesa-dev > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev > -- Earthling Michel Dänzer | http://www.amd.com Libre software enthusiast | Mesa and X developer _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev