mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 08:50:13 +01:00
i965/compiler: Disable trig workarounds on KBL+
The precision of our trig instructions appears to have been fixed on Kaby Lake. Neither Ben nor I can find any documentation for this. However, the dEQP precision tests now pass with INTEL_PRECISE_TRIG=0 where they fail on Sky Lake. Signed-off-by: Jason Ekstrand <jason@jlekstrand.net> Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
parent
767b163e47
commit
a8ef92b031
2 changed files with 8 additions and 4 deletions
|
|
@ -449,6 +449,7 @@ nir_optimize(nir_shader *nir, bool is_scalar)
|
|||
nir_shader *
|
||||
brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir)
|
||||
{
|
||||
const struct gen_device_info *devinfo = compiler->devinfo;
|
||||
bool progress; /* Written by OPT and OPT_V */
|
||||
(void)progress;
|
||||
|
||||
|
|
@ -457,7 +458,9 @@ brw_preprocess_nir(const struct brw_compiler *compiler, nir_shader *nir)
|
|||
if (nir->stage == MESA_SHADER_GEOMETRY)
|
||||
OPT(nir_lower_gs_intrinsics);
|
||||
|
||||
if (compiler->precise_trig)
|
||||
/* See also brw_nir_trig_workarounds.py */
|
||||
if (compiler->precise_trig &&
|
||||
!(devinfo->gen >= 10 || devinfo->is_kabylake))
|
||||
OPT(brw_nir_apply_trig_workarounds);
|
||||
|
||||
static const nir_lower_tex_options tex_options = {
|
||||
|
|
|
|||
|
|
@ -23,9 +23,10 @@
|
|||
|
||||
import nir_algebraic
|
||||
|
||||
# The SIN and COS instructions on Intel hardware can produce values
|
||||
# slightly outside of the [-1.0, 1.0] range for a small set of values.
|
||||
# Obviously, this can break everyone's expectations about trig functions.
|
||||
# Prior to Kaby Lake, The SIN and COS instructions on Intel hardware can
|
||||
# produce values slightly outside of the [-1.0, 1.0] range for a small set of
|
||||
# values. Obviously, this can break everyone's expectations about trig
|
||||
# functions. This appears to be fixed in Kaby Lake.
|
||||
#
|
||||
# According to an internal presentation, the COS instruction can produce
|
||||
# a value up to 1.000027 for inputs in the range (0.08296, 0.09888). One
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue