Mesa (staging/19.1): intel/nir: do not apply the fsin and fcos trig workarounds for consts

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Sep 20 11:10:26 UTC 2019


Module: Mesa
Branch: staging/19.1
Commit: c89af0900936ecd307d5f4830e9b54ad263b73db
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c89af0900936ecd307d5f4830e9b54ad263b73db

Author: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
Date:   Tue Dec  4 16:41:36 2018 +0100

intel/nir: do not apply the fsin and fcos trig workarounds for consts

If we have fsin or fcos trigonometric operations with constant values
as inputs, we will multiply the result by 0.99997 in
brw_nir_apply_trig_workarounds, making the result wrong.

Adjusting the rules so they do not apply to const values we let a
later constant fold to deal with it.

v2:
- Do not early constant fold but only apply the trig workaround for
  non constants (Caio).
- Add fixes tag to commit log (Caio).

Fixes: bfd17c76c12 "i965: Port INTEL_PRECISE_TRIG=1 to NIR."
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
Signed-off-by: Andres Gomez <agomez at igalia.com>
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira at intel.com>
(cherry picked from commit 3c474f851313db5318d727d017b763ea2cb01e6d)

---

 src/intel/compiler/brw_nir_trig_workarounds.py | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/intel/compiler/brw_nir_trig_workarounds.py b/src/intel/compiler/brw_nir_trig_workarounds.py
index d60e094c625..dddadc71da2 100644
--- a/src/intel/compiler/brw_nir_trig_workarounds.py
+++ b/src/intel/compiler/brw_nir_trig_workarounds.py
@@ -37,8 +37,8 @@ import argparse
 import sys
 
 TRIG_WORKAROUNDS = [
-    (('fsin', 'x'), ('fmul', ('fsin', 'x'), 0.99997)),
-    (('fcos', 'x'), ('fmul', ('fcos', 'x'), 0.99997)),
+    (('fsin', 'x(is_not_const)'), ('fmul', ('fsin', 'x'), 0.99997)),
+    (('fcos', 'x(is_not_const)'), ('fmul', ('fcos', 'x'), 0.99997)),
 ]
 
 




More information about the mesa-commit mailing list