From e9e22546ffd76c6d0738f12d702c54e7758d9e1f Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Thu, 27 Jun 2019 10:18:22 -0700 Subject: [PATCH] panfrost/decode: Compute padded_num_vertices for MODULO Signed-off-by: Alyssa Rosenzweig --- src/gallium/drivers/panfrost/pandecode/decode.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/panfrost/pandecode/decode.c b/src/gallium/drivers/panfrost/pandecode/decode.c index 129e769cace..4cc7ca03995 100644 --- a/src/gallium/drivers/panfrost/pandecode/decode.c +++ b/src/gallium/drivers/panfrost/pandecode/decode.c @@ -895,15 +895,25 @@ pandecode_replay_attributes(const struct pandecode_mapped_memory *mem, pandecode_log("{\n"); pandecode_indent++; - pandecode_prop("elements = (%s_%d_p) | %s", base, i, pandecode_attr_mode_name(attr[i].elements & 7)); + unsigned mode = attr[i].elements & 7; + pandecode_prop("elements = (%s_%d_p) | %s", base, i, pandecode_attr_mode_name(mode)); pandecode_prop("shift = %d", attr[i].shift); pandecode_prop("extra_flags = %d", attr[i].extra_flags); pandecode_prop("stride = 0x%" PRIx32, attr[i].stride); pandecode_prop("size = 0x%" PRIx32, attr[i].size); + + /* Decode further where possible */ + + if (mode == MALI_ATTR_MODULO) { + unsigned odd = (2 * attr[i].extra_flags) + 1; + unsigned pot = (1 << attr[i].shift); + pandecode_msg("padded_num_vertices = %d\n", odd * pot); + } + pandecode_indent--; pandecode_log("}, \n"); - if ((attr[i].elements & 7) == MALI_ATTR_NPOT_DIVIDE) { + if (mode == MALI_ATTR_NPOT_DIVIDE) { i++; pandecode_log("{\n"); pandecode_indent++; -- 2.11.0