Module: Mesa Branch: main Commit: 569ed0f238658560302b907ca9ff5b11187473bd URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=569ed0f238658560302b907ca9ff5b11187473bd
Author: Danylo Piliaiev <[email protected]> Date: Thu Apr 27 22:33:19 2023 +0200 freedreno: Early exit in device matching if id doesn't have chip_id Assert was wrong and caused issues when there are devices defined after devices that are matched by chip_id. Signed-off-by: Danylo Piliaiev <[email protected]> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21498> --- src/freedreno/common/freedreno_dev_info.c | 4 +++- src/freedreno/ir3/tests/disasm.c | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/freedreno/common/freedreno_dev_info.c b/src/freedreno/common/freedreno_dev_info.c index d32695c5fc4..a9bc2a5ba20 100644 --- a/src/freedreno/common/freedreno_dev_info.c +++ b/src/freedreno/common/freedreno_dev_info.c @@ -45,7 +45,9 @@ dev_id_compare(const struct fd_dev_id *ref, const struct fd_dev_id *id) if (ref->gpu_id && id->gpu_id) { return ref->gpu_id == id->gpu_id; } else { - assert(ref->chip_id && id->chip_id); + if (!id->chip_id) + return false; + /* Match on either: * (a) exact match: */ diff --git a/src/freedreno/ir3/tests/disasm.c b/src/freedreno/ir3/tests/disasm.c index c40302c577d..cdfe781502a 100644 --- a/src/freedreno/ir3/tests/disasm.c +++ b/src/freedreno/ir3/tests/disasm.c @@ -489,6 +489,7 @@ main(int argc, char **argv) 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){}); }
