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:
parent
410894c643
commit
263136fb5d
|
@ -169,6 +169,9 @@ static void *texture_transfer_map_resolve(struct pipe_context *ctx,
|
||||||
if (!ptr)
|
if (!ptr)
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
||||||
|
/* trans->resolve_transfer owns resolve_tmp now */
|
||||||
|
pipe_resource_reference(&resolve_tmp, NULL);
|
||||||
|
|
||||||
*transfer = &trans->base;
|
*transfer = &trans->base;
|
||||||
if (fmt == resource->format) {
|
if (fmt == resource->format) {
|
||||||
trans->base.stride = trans->resolve_transfer->stride;
|
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) {
|
if (trans->resolve_transfer) {
|
||||||
pipe_resource_reference(&trans->resolve_transfer->resource, NULL);
|
|
||||||
virgl_resource_destroy_transfer(vctx,
|
virgl_resource_destroy_transfer(vctx,
|
||||||
virgl_transfer(trans->resolve_transfer));
|
virgl_transfer(trans->resolve_transfer));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue