From 65439291a02066f0e18090f8ce9645a8a1ba97a4 Mon Sep 17 00:00:00 2001 From: Chia-I Wu Date: Mon, 3 Jun 2019 11:39:34 -0700 Subject: [PATCH] virgl: resolve to correct level during texture read When PIPE_TRANSFER_READ requires a resolve, we blit from the host storage to a temporary storage, and do a format conversion from the temporary storage to the guest storage. This change makes sure we convert to the correct level of the guest storage. Signed-off-by: Chia-I Wu Reviewed-by: Alexandros Frantzis --- src/gallium/drivers/virgl/virgl_texture.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/virgl/virgl_texture.c b/src/gallium/drivers/virgl/virgl_texture.c index 926f8a56f9d..7eca56bd927 100644 --- a/src/gallium/drivers/virgl/virgl_texture.c +++ b/src/gallium/drivers/virgl/virgl_texture.c @@ -220,8 +220,8 @@ static void *texture_transfer_map_resolve(struct pipe_context *ctx, if (!ptr) goto fail; - if (!util_format_translate_3d(resource->format, - ptr, + if (!util_format_translate_3d(resource->format, + ptr + vtex->metadata.level_offset[level], trans->base.stride, trans->base.layer_stride, box->x, box->y, box->z, -- 2.30.2