[Mesa-dev] [PATCH 04/59] i965: use double lowering pass

Samuel Iglesias Gonsálvez siglesias at igalia.com
Fri Apr 29 11:29:01 UTC 2016


From: Connor Abbott <connor.w.abbott at intel.com>

v2: also lower trunc, ceil, floor, fract and roundEven (Iago)
v3: also lower mod for doubles (Sam)

Signed-off-by: Iago Toral Quiroga <itoral at igalia.com>
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
---
 src/mesa/drivers/dri/i965/brw_compiler.c | 1 +
 src/mesa/drivers/dri/i965/brw_nir.c      | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/src/mesa/drivers/dri/i965/brw_compiler.c b/src/mesa/drivers/dri/i965/brw_compiler.c
index 0b05a9e..c72430d 100644
--- a/src/mesa/drivers/dri/i965/brw_compiler.c
+++ b/src/mesa/drivers/dri/i965/brw_compiler.c
@@ -77,6 +77,7 @@ shader_perf_log_mesa(void *data, const char *fmt, ...)
    .lower_fdiv = true,                                                        \
    .lower_scmp = true,                                                        \
    .lower_fmod32 = true,                                                      \
+   .lower_fmod64 = false,                                                     \
    .lower_bitfield_extract = true,                                            \
    .lower_bitfield_insert = true,                                             \
    .lower_uadd_carry = true,                                                  \
diff --git a/src/mesa/drivers/dri/i965/brw_nir.c b/src/mesa/drivers/dri/i965/brw_nir.c
index 5475276..4830774 100644
--- a/src/mesa/drivers/dri/i965/brw_nir.c
+++ b/src/mesa/drivers/dri/i965/brw_nir.c
@@ -410,6 +410,15 @@ nir_optimize(nir_shader *nir, bool is_scalar)
       OPT(nir_opt_dead_cf);
       OPT(nir_opt_remove_phis);
       OPT(nir_opt_undef);
+      OPT_V(nir_lower_doubles, nir_lower_drcp |
+                               nir_lower_dsqrt |
+                               nir_lower_drsq |
+                               nir_lower_dtrunc |
+                               nir_lower_dfloor |
+                               nir_lower_dceil |
+                               nir_lower_dfract |
+                               nir_lower_dround_even |
+                               nir_lower_dmod);
    } while (progress);
 
    return nir;
-- 
2.5.0



More information about the mesa-dev mailing list