From: Samuel Iglesias Gonsálvez Date: Tue, 4 Dec 2018 15:41:36 +0000 (+0100) Subject: intel/nir: do not apply the fsin and fcos trig workarounds for consts X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=3c474f851313db5318d727d017b763ea2cb01e6d;p=mesa.git 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 Signed-off-by: Andres Gomez Reviewed-by: Caio Marcelo de Oliveira Filho --- 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)), ]