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){});
       }

Reply via email to