From 4500d17245d0c4bd0b52bf444cf1d90bab932794 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 11 May 2016 11:28:13 -0400 Subject: [PATCH] freedreno: fix multi-layer transfer_map's The use of transfer_inline_write() in TexSubImage path (see fb9fe352ea4) exposed a bug for "layer_first" resources (ie. a4xx) not setting correct layer_stride. Signed-off-by: Rob Clark --- src/gallium/drivers/freedreno/freedreno_resource.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/gallium/drivers/freedreno/freedreno_resource.c b/src/gallium/drivers/freedreno/freedreno_resource.c index 44558185a6b..ded81474331 100644 --- a/src/gallium/drivers/freedreno/freedreno_resource.c +++ b/src/gallium/drivers/freedreno/freedreno_resource.c @@ -299,7 +299,7 @@ fd_resource_transfer_map(struct pipe_context *pctx, ptrans->usage = usage; ptrans->box = *box; ptrans->stride = util_format_get_nblocksx(format, slice->pitch) * rsc->cpp; - ptrans->layer_stride = slice->size0; + ptrans->layer_stride = rsc->layer_first ? rsc->layer_size : slice->size0; if (usage & PIPE_TRANSFER_READ) op |= DRM_FREEDRENO_PREP_READ; -- 2.30.2