diff options
author | Jonathan Marek <[email protected]> | 2019-09-04 15:18:09 -0400 |
---|---|---|
committer | Jonathan Marek <[email protected]> | 2019-09-06 02:24:29 +0000 |
commit | 3516a90ab4842a6610dc31514809d490bc4add87 (patch) | |
tree | 3d6be56b022c70ec895751dc3df918175c2ba951 /src/gallium/drivers/freedreno | |
parent | 517b60dc13f1d3fcffee2564b7ad7aed34b83068 (diff) |
freedreno/a2xx: ir2: fix lowering of instructions after float lowering
Some instructions generated by int/bool float lowering need to be lowered
by opt_algebraic.
Fixes: 43dbd7d6
Signed-off-by: Jonathan Marek <[email protected]>
Reviewed-by: Rob Clark <[email protected]>
Reviewed-by: Eric Anholt <[email protected]>
Diffstat (limited to 'src/gallium/drivers/freedreno')
-rw-r--r-- | src/gallium/drivers/freedreno/a2xx/ir2_nir.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/gallium/drivers/freedreno/a2xx/ir2_nir.c b/src/gallium/drivers/freedreno/a2xx/ir2_nir.c index 6915194234d..bb3ca9c9c0c 100644 --- a/src/gallium/drivers/freedreno/a2xx/ir2_nir.c +++ b/src/gallium/drivers/freedreno/a2xx/ir2_nir.c @@ -1097,15 +1097,14 @@ ir2_nir_compile(struct ir2_context *ctx, bool binning) if (binning) cleanup_binning(ctx); - /* postprocess */ - OPT_V(ctx->nir, nir_opt_algebraic_late); - OPT_V(ctx->nir, nir_copy_prop); OPT_V(ctx->nir, nir_opt_dce); OPT_V(ctx->nir, nir_opt_move, nir_move_comparisons); OPT_V(ctx->nir, nir_lower_int_to_float); OPT_V(ctx->nir, nir_lower_bool_to_float); + while(OPT(ctx->nir, nir_opt_algebraic)); + OPT_V(ctx->nir, nir_opt_algebraic_late); OPT_V(ctx->nir, nir_lower_to_source_mods, nir_lower_all_source_mods); OPT_V(ctx->nir, nir_lower_alu_to_scalar, ir2_alu_to_scalar_filter_cb, NULL); |