pan/decode: Fix overrun decoding planes

We need to calculate the # of descriptors like we do on Midgard.

Fixes: ae9316f812 ("pan/decode: Decode Valhall surface descriptor")
Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17842>
(cherry picked from commit 07e9543270)
This commit is contained in:
Alyssa Rosenzweig 2022-08-01 18:56:49 -04:00 committed by Dylan Baker
parent 2dae420bca
commit 8e1135cf39
2 changed files with 8 additions and 3 deletions

View file

@ -3910,7 +3910,7 @@
"description": "pan/decode: Fix overrun decoding planes",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": "ae9316f8128bec52c3ed5f06f341103241af24e1"
},

View file

@ -712,8 +712,13 @@ pandecode_bifrost_texture(
pandecode_indent++;
#if PAN_ARCH >= 9
/* TODO: count */
for (unsigned i = 0; i < 4; ++i)
int plane_count = temp.levels * temp.array_size;
/* Miptree for each face */
if (temp.dimension == MALI_TEXTURE_DIMENSION_CUBE)
plane_count *= 6;
for (unsigned i = 0; i < plane_count; ++i)
DUMP_ADDR(PLANE, temp.surfaces + i * pan_size(PLANE), "Plane %u:\n", i);
#else
struct pandecode_mapped_memory *tmem = pandecode_find_mapped_gpu_mem_containing(temp.surfaces);