Fixes performance regression in SynMark PSPom caused by loops with float counters not always unrolling.
For example: for (float i = 0.02; i < 0.9; i += 0.11) ... --- src/compiler/nir/nir_loop_analyze.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/compiler/nir/nir_loop_analyze.c b/src/compiler/nir/nir_loop_analyze.c index 71cbe3c..a5f464a 100644 --- a/src/compiler/nir/nir_loop_analyze.c +++ b/src/compiler/nir/nir_loop_analyze.c @@ -384,8 +384,8 @@ get_iteration(nir_op cond_op, nir_const_value *initial, nir_const_value *step, case nir_op_flt: case nir_op_feq: case nir_op_fne: { - int32_t initial_val = initial->f32[0]; - int32_t span = limit->f32[0] - initial_val; + float initial_val = initial->f32[0]; + float span = limit->f32[0] - initial_val; iter = span / step->f32[0]; break; } -- 2.9.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev