From 8da2fdc8890cd39a635f68d55bba60e450d8ee14 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sat, 2 Apr 2022 22:23:57 -0400 Subject: [PATCH] asahi: Compute segment list length Quiesces agxdecode error introduced in previous commit. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/gallium/drivers/asahi/magic.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/gallium/drivers/asahi/magic.c b/src/gallium/drivers/asahi/magic.c index 14d1fd96bc9..63be86dec0c 100644 --- a/src/gallium/drivers/asahi/magic.c +++ b/src/gallium/drivers/asahi/magic.c @@ -277,10 +277,17 @@ demo_cmdbuf(uint64_t *buf, size_t size, static struct agx_map_header demo_map_header(uint64_t cmdbuf_id, uint64_t encoder_id, unsigned cmdbuf_size, unsigned count) { + /* Structure: header followed by resource groups. For now, we use a single + * resource group for every resource. This could be optimized. + */ + unsigned length = sizeof(struct agx_map_header); + length += count * sizeof(struct agx_map_entry); + assert(length < 0x10000); + return (struct agx_map_header) { .cmdbuf_id = cmdbuf_id, .segment_count = 1, - .length = 0x130, + .length = length, .encoder_id = encoder_id, .kernel_commands_start_offset = 0, .kernel_commands_end_offset = cmdbuf_size,