etnaviv: nir: switch to etna_nir_lower_to_source_mods(..)
authorChristian Gmeiner <cgmeiner@igalia.com>
Tue, 18 Jul 2023 09:36:08 +0000 (11:36 +0200)
committerMarge Bot <emma+marge@anholt.net>
Mon, 24 Jul 2023 15:22:56 +0000 (15:22 +0000)
commit935730a563ed8922259d7012bef8d33afd94b6ea
treef724769c8c0a5ca5a8b76360e6a1536698b79f36
parent5ae3bd616c1b2be7db7f13cfe87496e650264c04
etnaviv: nir: switch to etna_nir_lower_to_source_mods(..)

nir's source modifiers are going away soon and with it also the lowering
pass. Lets switch to our own lowering pass. We need to run our own
lowering pass almost at the end else opc_cse(..) etc. might do some
wrong needed opts as nir does not see our modifiers.

Also we need to remove the last nir_opt_dce(..) as it will remove not dead
code caused by the used load_const hack.

32    %15 = load_const (0x00000000 = 0.000000)
32     %4 = fabs %15 (0.000000)

nir_opt_dce is correct when it removes the two instructions. But in reality
the load_const is a uniform that should not be removed.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>
Acked-by: Yonggang Luo <luoyonggang@gmail.com>
Acked-by: Lucas Stach <l.stach@pengutronix.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24216>
src/gallium/drivers/etnaviv/etnaviv_compiler_nir.c
src/gallium/drivers/etnaviv/etnaviv_nir.c