From: Chia-I Wu Date: Mon, 3 Jun 2019 18:39:34 +0000 (-0700) Subject: virgl: resolve to correct level during texture read X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=65439291a02066f0e18090f8ce9645a8a1ba97a4;p=mesa.git 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 --- 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,