From c61e660323272d078abdf6f7a5bc9f06970538ef Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sat, 2 Apr 2022 12:14:32 -0400 Subject: [PATCH] asahi: Handle 3rd deflake address Context switching is so broken. Just trying to get closer. Adding some XML here to see if we're missing something else obvious. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/lib/cmdbuf.xml | 11 ++++++++++- src/gallium/drivers/asahi/magic.c | 19 ++++++------------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/asahi/lib/cmdbuf.xml b/src/asahi/lib/cmdbuf.xml index 7c1d15949b7..cd1abbb3082 100644 --- a/src/asahi/lib/cmdbuf.xml +++ b/src/asahi/lib/cmdbuf.xml @@ -520,7 +520,7 @@ - + @@ -535,6 +535,15 @@ geometry counts --> + + + + + + + + + diff --git a/src/gallium/drivers/asahi/magic.c b/src/gallium/drivers/asahi/magic.c index c05c9a0ff3d..d6b15f7dfcd 100644 --- a/src/gallium/drivers/asahi/magic.c +++ b/src/gallium/drivers/asahi/magic.c @@ -172,17 +172,9 @@ demo_cmdbuf(uint64_t *buf, size_t size, uint32_t *map = (uint32_t *) buf; memset(map, 0, 518 * 4); - map[54] = 0x6b0003; - map[55] = 0x3a0012; - map[56] = 1; - - /* Unknown address at word 110 */ - - map[112] = 1; - map[114] = 0x1c; - map[118] = 0xffffffff; - map[119] = 0xffffffff; - map[120] = 0xffffffff; + uint64_t deflake_buffer = demo_zero(pool, 0x7e0); + uint64_t deflake_1 = deflake_buffer + 0x2a0; + uint64_t deflake_2 = deflake_buffer + 0x20; uint64_t unk_buffer = demo_zero(pool, 0x1000); uint64_t unk_buffer_2 = demo_zero(pool, 0x8000); @@ -271,8 +263,9 @@ demo_cmdbuf(uint64_t *buf, size_t size, cfg.unknown_offset = offset_unk; cfg.encoder = encoder_ptr; - cfg.deflake_1 = demo_zero(pool, 0x540); - cfg.deflake_2 = demo_zero(pool, 0x280); + cfg.deflake_1 = deflake_1; + cfg.deflake_2 = deflake_2; + cfg.deflake_3 = deflake_buffer; } return total_size;