From 42084d50e544ddbdd213e2c15b2d5f0369d6f59f Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 26 Jan 2024 14:30:46 -0400 Subject: [PATCH] agx: add parallel copy printing useful for debugging. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/compiler/agx_compiler.h | 1 + src/asahi/compiler/agx_lower_parallel_copy.c | 21 ++++++++++++++++++++ src/asahi/compiler/agx_print.c | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/asahi/compiler/agx_compiler.h b/src/asahi/compiler/agx_compiler.h index f0b207af5a3..bd114782944 100644 --- a/src/asahi/compiler/agx_compiler.h +++ b/src/asahi/compiler/agx_compiler.h @@ -874,6 +874,7 @@ agx_builder_insert(agx_cursor *cursor, agx_instr *I) /* Routines defined for AIR */ +void agx_print_index(agx_index index, bool is_float, FILE *fp); void agx_print_instr(const agx_instr *I, FILE *fp); void agx_print_block(const agx_block *block, FILE *fp); void agx_print_shader(const agx_context *ctx, FILE *fp); diff --git a/src/asahi/compiler/agx_lower_parallel_copy.c b/src/asahi/compiler/agx_lower_parallel_copy.c index ea787770e79..c6a3667b2e9 100644 --- a/src/asahi/compiler/agx_lower_parallel_copy.c +++ b/src/asahi/compiler/agx_lower_parallel_copy.c @@ -7,6 +7,27 @@ #include "agx_builder.h" #include "agx_compiler.h" +UNUSED static void +print_copy(const struct agx_copy *cp) +{ + printf("%sr%u = ", cp->dest_mem ? "m" : "", cp->dest); + agx_print_index(cp->src, false, stdout); + printf("\n"); +} + +UNUSED static void +print_copies(const struct agx_copy *copies, unsigned nr) +{ + printf("[\n"); + + for (unsigned i = 0; i < nr; ++i) { + printf(" "); + print_copy(&copies[i]); + } + + printf("]\n"); +} + /* * Emits code for * diff --git a/src/asahi/compiler/agx_print.c b/src/asahi/compiler/agx_print.c index 8f71ccf9426..4e46e5d087f 100644 --- a/src/asahi/compiler/agx_print.c +++ b/src/asahi/compiler/agx_print.c @@ -27,7 +27,7 @@ agx_print_sized(char prefix, unsigned value, enum agx_size size, FILE *fp) unreachable("Invalid size"); } -static void +void agx_print_index(agx_index index, bool is_float, FILE *fp) { if (index.memory)