panfrost: fix attribute continuation decoding
Because attribute continuations aren't considered whole attributes, we need to increase the total number of attributes for each continuation when decoding, otherwise we will end up missing a buffer for every continuation we have. Signed-off-by: Italo Nicola <italonicola@collabora.com> Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com> Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8066>
This commit is contained in:
@@ -466,13 +466,13 @@ pandecode_attributes(const struct pandecode_mapped_memory *mem,
|
||||
pan_unpack(cl + i * MALI_ATTRIBUTE_BUFFER_LENGTH, ATTRIBUTE_BUFFER, temp);
|
||||
DUMP_UNPACKED(ATTRIBUTE_BUFFER, temp, "%s:\n", prefix);
|
||||
|
||||
if (temp.type != MALI_ATTRIBUTE_TYPE_1D_NPOT_DIVISOR)
|
||||
continue;
|
||||
|
||||
pan_unpack(cl + (i + 1) * MALI_ATTRIBUTE_BUFFER_LENGTH,
|
||||
ATTRIBUTE_BUFFER_CONTINUATION_NPOT, temp2);
|
||||
pan_print(pandecode_dump_stream, ATTRIBUTE_BUFFER_CONTINUATION_NPOT,
|
||||
temp2, (pandecode_indent + 1) * 2);
|
||||
if (temp.type == MALI_ATTRIBUTE_TYPE_1D_NPOT_DIVISOR) {
|
||||
pan_unpack(cl + (i + 1) * MALI_ATTRIBUTE_BUFFER_LENGTH,
|
||||
ATTRIBUTE_BUFFER_CONTINUATION_NPOT, temp2);
|
||||
pan_print(pandecode_dump_stream, ATTRIBUTE_BUFFER_CONTINUATION_NPOT,
|
||||
temp2, (pandecode_indent + 1) * 2);
|
||||
i++; count++;
|
||||
}
|
||||
}
|
||||
pandecode_log("\n");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user