From: Eric Anholt Date: Tue, 21 Jan 2020 23:16:56 +0000 (-0800) Subject: freedreno/a6xx: Fix the size of buffer image views. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=4f02b480713c9c6e5ad65d1e6ab9e4454a8d9504;p=mesa.git freedreno/a6xx: Fix the size of buffer image views. We were using the size of the underlying buffer (in R8 elements), while we need to be using the size of the image view (which may be a subset of the underlying buffer, and may be in a different format from R8). This fix means less dereferencing off of the end of shader image views for buffer images, but more importantly is needed to get the right answer from resinfo if we are to switch to that. Part-of: --- diff --git a/src/gallium/drivers/freedreno/a6xx/fd6_image.c b/src/gallium/drivers/freedreno/a6xx/fd6_image.c index a83d080fa5b..6098799e22d 100644 --- a/src/gallium/drivers/freedreno/a6xx/fd6_image.c +++ b/src/gallium/drivers/freedreno/a6xx/fd6_image.c @@ -89,7 +89,7 @@ static void translate_image(struct fd6_image *img, const struct pipe_image_view /* size is encoded with low 15b in WIDTH and high bits in * HEIGHT, in units of elements: */ - unsigned sz = prsc->width0; + unsigned sz = pimg->u.buf.size / util_format_get_blocksize(format); img->width = sz & MASK(15); img->height = sz >> 15; img->depth = 0;