virgl: also destroy all read-transfers
[mesa.git] / src / gallium / drivers / virgl / virgl_texture.c
index 231319899e03d345e3c1ee5582bee124d189be5a..1832309aa49dfeab9b9f6bca2ab573517e26dc06 100644 (file)
@@ -181,7 +181,8 @@ static void virgl_texture_transfer_unmap(struct pipe_context *ctx,
    if (trans->resolve_tmp) {
       pipe_resource_reference((struct pipe_resource **)&trans->resolve_tmp, NULL);
       virgl_resource_destroy_transfer(&vctx->transfer_pool, trans);
-   }
+   } else if (!(trans->base.usage & PIPE_TRANSFER_WRITE))
+      virgl_resource_destroy_transfer(&vctx->transfer_pool, trans);
 }
 
 static const struct u_resource_vtbl virgl_texture_vtbl =