From b0ea4883f0a1eeb15b147e4e25dc568b089563f5 Mon Sep 17 00:00:00 2001 From: Danylo Piliaiev Date: Mon, 4 Sep 2023 17:53:09 +0200 Subject: [PATCH] ir3/tests: Use fd_dev_info to infer GPU generation Signed-off-by: Danylo Piliaiev Part-of: --- src/freedreno/ir3/tests/disasm.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/src/freedreno/ir3/tests/disasm.c b/src/freedreno/ir3/tests/disasm.c index 46e811f..fe8fa00 100644 --- a/src/freedreno/ir3/tests/disasm.c +++ b/src/freedreno/ir3/tests/disasm.c @@ -47,11 +47,12 @@ #define INSTR_4XX(i, d, ...) { .gpu_id = 420, .instr = #i, .expected = d, __VA_ARGS__ } #define INSTR_5XX(i, d, ...) { .gpu_id = 540, .instr = #i, .expected = d, __VA_ARGS__ } #define INSTR_6XX(i, d, ...) { .gpu_id = 630, .instr = #i, .expected = d, __VA_ARGS__ } -#define INSTR_7XX(i, d, ...) { .gpu_id = 730, .instr = #i, .expected = d, __VA_ARGS__ } +#define INSTR_7XX(i, d, ...) { .chip_id = 0x07030001, .instr = #i, .expected = d, __VA_ARGS__ } /* clang-format on */ static const struct test { int gpu_id; + int chip_id; const char *instr; const char *expected; /** @@ -486,6 +487,13 @@ main(int argc, char **argv) printf("Testing a%d %s: \"%s\"...\n", test->gpu_id, test->instr, test->expected); + struct fd_dev_id dev_id = { + .gpu_id = test->gpu_id, + .chip_id = test->chip_id, + }; + + const struct fd_dev_info *dev_info = fd_dev_info(&dev_id); + rewind(fdisasm); memset(disasm_output, 0, output_size); @@ -499,7 +507,7 @@ main(int argc, char **argv) }; isa_disasm(code, 8, fdisasm, &(struct isa_decode_options){ - .gpu_id = test->gpu_id, + .gpu_id = dev_info->chip * 100, .show_errors = true, .no_match_cb = print_raw, }); @@ -519,19 +527,18 @@ main(int argc, char **argv) * Test assembly, which should result in the identical binary: */ - unsigned gen = test->gpu_id / 100; - if (!compilers[gen]) { - dev_ids[gen].gpu_id = test->gpu_id; - dev_ids[gen].chip_id = 0; - compilers[gen] = ir3_compiler_create(NULL, &dev_ids[gen], - &(struct ir3_compiler_options){}); + if (!compilers[dev_info->chip]) { + dev_ids[dev_info->chip].gpu_id = test->gpu_id; + dev_ids[dev_info->chip].chip_id = test->chip_id; + compilers[dev_info->chip] = ir3_compiler_create( + NULL, &dev_ids[dev_info->chip], &(struct ir3_compiler_options){}); } FILE *fasm = fmemopen((void *)test->expected, strlen(test->expected), "r"); struct ir3_kernel_info info = {}; - struct ir3_shader *shader = ir3_parse_asm(compilers[gen], &info, fasm); + struct ir3_shader *shader = ir3_parse_asm(compilers[dev_info->chip], &info, fasm); fclose(fasm); if (!shader) { printf("FAIL: %sexpected assembler fail\n", -- 2.7.4