freedreno/ir3: Disable sin/cos range reduction for mediump.
authorEric Anholt <eric@anholt.net>
Mon, 4 May 2020 21:10:40 +0000 (14:10 -0700)
committerMarge Bot <eric+marge@anholt.net>
Tue, 5 May 2020 17:23:34 +0000 (17:23 +0000)
robclark noted that the blob wasn't doing range reduction in the mediump
case, and I confirmed it on
dEQP-GLES3.functional.shaders.operator.angle_and_trigonometry.sin.mediump_float_fragment
vs
dEQP-GLES3.functional.shaders.operator.angle_and_trigonometry.sin.highp_float_fragment.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4893>

src/freedreno/ir3/ir3_nir_trig.py

index 7e2d554b0d0fcf0cab5b9b675c845c105cf463db..93eb8cae940042dce01a546b73bfdba24c3c0ad1 100644 (file)
@@ -26,8 +26,8 @@ import argparse
 import sys
 
 trig_workarounds = [
-   (('fsin', 'x'), ('fsin', ('fsub', ('fmul', 6.2831853, ('ffract', ('fadd', ('fmul', 0.15915494, 'x'), 0.5))), 3.14159265))),
-   (('fcos', 'x'), ('fcos', ('fsub', ('fmul', 6.2831853, ('ffract', ('fadd', ('fmul', 0.15915494, 'x'), 0.5))), 3.14159265))),
+   (('fsin', 'x@32'), ('fsin', ('fsub', ('fmul', 6.2831853, ('ffract', ('fadd', ('fmul', 0.15915494, 'x'), 0.5))), 3.14159265))),
+   (('fcos', 'x@32'), ('fcos', ('fsub', ('fmul', 6.2831853, ('ffract', ('fadd', ('fmul', 0.15915494, 'x'), 0.5))), 3.14159265))),
 ]