Reviewed-by: Ilia Mirkin <[email protected]> It has been pointed out to me on several occasions that the state tracker should be unbinding all these, and I seem to recall finding that code. But for some reason I've had to do the same thing to avoid leaks.
On Mon, Apr 18, 2016 at 4:29 PM, Tim Rowley <[email protected]> wrote: > Fixes resource memory leaks. > --- > src/gallium/drivers/swr/swr_context.cpp | 15 +++++++++++++++ > 1 file changed, 15 insertions(+) > > diff --git a/src/gallium/drivers/swr/swr_context.cpp > b/src/gallium/drivers/swr/swr_context.cpp > index 46c79a1..5d311dd 100644 > --- a/src/gallium/drivers/swr/swr_context.cpp > +++ b/src/gallium/drivers/swr/swr_context.cpp > @@ -300,6 +300,21 @@ swr_destroy(struct pipe_context *pipe) > > /* Idle core before deleting context */ > SwrWaitForIdle(ctx->swrContext); > + > + for (unsigned i = 0; i < PIPE_MAX_COLOR_BUFS; i++) { > + pipe_surface_reference(&ctx->framebuffer.cbufs[i], NULL); > + } > + > + pipe_surface_reference(&ctx->framebuffer.zsbuf, NULL); > + > + for (unsigned i = 0; i < Elements(ctx->sampler_views[0]); i++) { > + > pipe_sampler_view_reference(&ctx->sampler_views[PIPE_SHADER_FRAGMENT][i], > NULL); > + } > + > + for (unsigned i = 0; i < Elements(ctx->sampler_views[0]); i++) { > + > pipe_sampler_view_reference(&ctx->sampler_views[PIPE_SHADER_VERTEX][i], NULL); > + } > + > if (ctx->swrContext) > SwrDestroyContext(ctx->swrContext); > > -- > 2.5.0 > > _______________________________________________ > mesa-dev mailing list > [email protected] > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
