On Wed, May 18, 2016 at 6:00 PM, Kenneth Graunke <kenn...@whitecape.org> wrote: > ffma is an explicitly fused multiply add with higher precision. > The optimizer will take care of promoting mul/add to fma when > it's beneficial to do so. > > This fixes failures on Gen4-5 when using this pass, as those platforms > don't actually implement fma().
hmm, we can't rely on the opt-algebraic pass to do this? BR, -R > Signed-off-by: Kenneth Graunke <kenn...@whitecape.org> > --- > src/compiler/nir/nir_lower_wpos_ytransform.c | 20 ++++++++------------ > 1 file changed, 8 insertions(+), 12 deletions(-) > > diff --git a/src/compiler/nir/nir_lower_wpos_ytransform.c > b/src/compiler/nir/nir_lower_wpos_ytransform.c > index 36e25b9..ccf0fd3 100644 > --- a/src/compiler/nir/nir_lower_wpos_ytransform.c > +++ b/src/compiler/nir/nir_lower_wpos_ytransform.c > @@ -123,19 +123,15 @@ emit_wpos_adjustment(lower_wpos_ytransform_state *state, > * inversion/identity, or the other way around if we're drawing to an FBO. > */ > if (invert) { > - /* MAD wpos_temp.y, wpos_input, wpostrans.xxxx, wpostrans.yyyy > - */ > - wpos_temp_y = nir_ffma(b, > - nir_channel(b, wpos_temp, 1), > - nir_channel(b, wpostrans, 0), > - nir_channel(b, wpostrans, 1)); > + /* wpos_temp.y = wpos_input * wpostrans.xxxx + wpostrans.yyyy */ > + wpos_temp_y = nir_fadd(b, nir_fmul(b, nir_channel(b, wpos_temp, 1), > + nir_channel(b, wpostrans, 0)), > + nir_channel(b, wpostrans, 1)); > } else { > - /* MAD wpos_temp.y, wpos_input, wpostrans.zzzz, wpostrans.wwww > - */ > - wpos_temp_y = nir_ffma(b, > - nir_channel(b, wpos_temp, 1), > - nir_channel(b, wpostrans, 2), > - nir_channel(b, wpostrans, 3)); > + /* wpos_temp.y = wpos_input * wpostrans.zzzz + wpostrans.wwww */ > + wpos_temp_y = nir_fadd(b, nir_fmul(b, nir_channel(b, wpos_temp, 1), > + nir_channel(b, wpostrans, 2)), > + nir_channel(b, wpostrans, 3)); > } > > wpos_temp = nir_vec4(b, > -- > 2.8.2 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev