virgl: Fix pipe_resource leaks under multi-sample.

Fixes: 900a80f9e4 ("virgl: virgl_transfer should own its virgl_resource")

Signed-off-by: Lepton Wu <lepton@chromium.org>
Reviewed-by: Chia-I Wu <olvaffe@gmail.com>
This commit is contained in:
Lepton Wu 2019-09-10 03:42:55 +00:00 committed by Chia-I Wu
parent 410894c643
commit 263136fb5d
1 changed files with 3 additions and 1 deletions

View File

@ -169,6 +169,9 @@ static void *texture_transfer_map_resolve(struct pipe_context *ctx,
if (!ptr)
goto fail;
/* trans->resolve_transfer owns resolve_tmp now */
pipe_resource_reference(&resolve_tmp, NULL);
*transfer = &trans->base;
if (fmt == resource->format) {
trans->base.stride = trans->resolve_transfer->stride;
@ -283,7 +286,6 @@ static void virgl_texture_transfer_unmap(struct pipe_context *ctx,
}
if (trans->resolve_transfer) {
pipe_resource_reference(&trans->resolve_transfer->resource, NULL);
virgl_resource_destroy_transfer(vctx,
virgl_transfer(trans->resolve_transfer));
}