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:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user