zink: don't leak sampler view textures

by adding a batch reference for these textures during draw, we can successfully
destroy the resources without crashing

Reviewed-by: Erik Faye-Lun <erik.faye-lund@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6924>
This commit is contained in:
Mike Blumenkrantz
2020-07-03 13:34:34 -04:00
parent 270969b55e
commit 4f144dc92c
2 changed files with 2 additions and 0 deletions
+1
View File
@@ -290,6 +290,7 @@ zink_sampler_view_destroy(struct pipe_context *pctx,
{
struct zink_sampler_view *view = zink_sampler_view(pview);
vkDestroyImageView(zink_screen(pctx->screen)->dev, view->image_view, NULL);
pipe_resource_reference(&pview->texture, NULL);
FREE(view);
}
+1
View File
@@ -390,6 +390,7 @@ zink_draw_vbo(struct pipe_context *pctx,
} else {
struct zink_sampler_view *sampler_view = zink_sampler_view(ctx->image_views[i][index]);
zink_batch_reference_sampler_view(batch, sampler_view);
zink_batch_reference_resource_rw(batch, zink_resource(ctx->image_views[i][index]->texture), false);
}
}
}