Mesa (main): ir3/cp: Fix inlining 32->16 const into meta instructions

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Oct 12 12:25:05 UTC 2021


Module: Mesa
Branch: main
Commit: 751f425c378afbe831149f60ed9c5262d6c59f45
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=751f425c378afbe831149f60ed9c5262d6c59f45

Author: Connor Abbott <cwabbott0 at gmail.com>
Date:   Fri Sep 24 18:51:58 2021 +0200

ir3/cp: Fix inlining 32->16 const into meta instructions

We shouldn't return early here, because we still need to actually do the
conversion. Fixes an infinite loop.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13142>

---

 src/freedreno/ir3/ir3_cp.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/src/freedreno/ir3/ir3_cp.c b/src/freedreno/ir3/ir3_cp.c
index e1fa6e63ae7..e7e5ec68c7c 100644
--- a/src/freedreno/ir3/ir3_cp.c
+++ b/src/freedreno/ir3/ir3_cp.c
@@ -420,8 +420,6 @@ reg_cp(struct ir3_cp_ctx *ctx, struct ir3_instruction *instr,
             if (!is_cat2_float(instr->opc) && !is_cat3_float(instr->opc))
                return false;
          } else if (src->cat1.dst_type == TYPE_U16) {
-            if (is_meta(instr))
-               return true;
             /* Since we set CONSTANT_DEMOTION_ENABLE, a float reference of
              * what was a U16 value read from the constbuf would incorrectly
              * do 32f->16f conversion, when we want to read a 16f value.



More information about the mesa-commit mailing list