On Mon, Nov 12, 2018 at 1:29 PM Christian Gmeiner < christian.gmei...@gmail.com> wrote:
> Hi Jason > > Am Sa., 1. Sep. 2018 um 21:23 Uhr schrieb Jason Ekstrand < > ja...@jlekstrand.net>: > > > > I don't think either of these work for negative numbers > > > > I would like to land this patch - can you provide some details why > this does not work for > negative numbers? > No, this is correct. It's GLSL's definition of fract(x) that's dumb. GLSL defines fract(x) as x - floor(x) (exactly what your formula says. This means that fract(-1.4) = -1.4 - floor(-1.4) = -1.4 - (-2.0) = -1.4 + 2.0 = 0.6 so GLSL fract() doesn't give you the fractional part at all. *sigh* Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net> > > On September 1, 2018 14:16:11 Christian Gmeiner > > <christian.gmei...@gmail.com> wrote: > > > > > Signed-off-by: Christian Gmeiner <christian.gmei...@gmail.com> > > > --- > > > src/compiler/nir/nir.h | 3 +++ > > > src/compiler/nir/nir_opt_algebraic.py | 1 + > > > 2 files changed, 4 insertions(+) > > > > > > diff --git a/src/compiler/nir/nir.h b/src/compiler/nir/nir.h > > > index 169fa1fa20..d81eefc032 100644 > > > --- a/src/compiler/nir/nir.h > > > +++ b/src/compiler/nir/nir.h > > > @@ -2054,6 +2054,9 @@ typedef struct nir_shader_compiler_options { > > > */ > > > bool fdot_replicates; > > > > > > + /** lowers ffloor to fsub+ffract: */ > > > + bool lower_ffloor; > > > + > > > /** lowers ffract to fsub+ffloor: */ > > > bool lower_ffract; > > > > > > diff --git a/src/compiler/nir/nir_opt_algebraic.py > > > b/src/compiler/nir/nir_opt_algebraic.py > > > index ae1261f874..3d2b861a42 100644 > > > --- a/src/compiler/nir/nir_opt_algebraic.py > > > +++ b/src/compiler/nir/nir_opt_algebraic.py > > > @@ -118,6 +118,7 @@ optimizations = [ > > > (('~flrp', a, 0.0, c), ('fadd', ('fmul', ('fneg', a), c), a)), > > > (('flrp@32', a, b, c), ('fadd', ('fmul', c, ('fsub', b, a)), a), > > > 'options->lower_flrp32'), > > > (('flrp@64', a, b, c), ('fadd', ('fmul', c, ('fsub', b, a)), a), > > > 'options->lower_flrp64'), > > > + (('ffloor', a), ('fsub', a, ('ffract', a)), > 'options->lower_ffloor'), > > > (('ffract', a), ('fsub', a, ('ffloor', a)), > 'options->lower_ffract'), > > > (('~fadd', ('fmul', a, ('fadd', 1.0, ('fneg', ('b2f', c)))), > ('fmul', b, > > > ('b2f', c))), ('bcsel', c, b, a), 'options->lower_flrp32'), > > > (('~fadd@32', ('fmul', a, ('fadd', 1.0, ('fneg', c ))), > ('fmul', b, > > > c )), ('flrp', a, b, c), '!options->lower_flrp32'), > > > -- > > > 2.17.1 > > > > > > _______________________________________________ > > > mesa-dev mailing list > > > mesa-dev@lists.freedesktop.org > > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > > > > > > > -- > greets > -- > Christian Gmeiner, MSc > > https://christian-gmeiner.info >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev