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 <olvaffe@gmail.com>
Reviewed-by: Alexandros Frantzis <alexandros.frantzis@collabora.com>
This commit is contained in:
Chia-I Wu 2019-06-03 11:39:34 -07:00
parent 067018d4e7
commit 65439291a0

View file

@ -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,