On Wed, Sep 24, 2014 at 1:35 PM, Erik Faye-Lund <kusmab...@gmail.com> wrote: > Hm. Don't I need to expand this last immediate to a vector of > type->components() size as well? > > If so, this patch should go on top: > > diff --git a/src/glsl/builtin_functions.cpp b/src/glsl/builtin_functions.cpp > index 1820dd5..bfa46eb 100644 > --- a/src/glsl/builtin_functions.cpp > +++ b/src/glsl/builtin_functions.cpp > @@ -2749,13 +2749,11 @@ builtin_builder::do_atan(ir_factory &body, > const glsl_type *type, ir_variable *r > /* range-reduction fixup */ > body.emit(assign(tmp, add(tmp, > csel(greater(abs(y_over_x), > - swizzle(imm(1.0f), > - SWIZZLE_XXXX, > - type->components())), > + imm(1.0f, type->components())), > add(mul(tmp, > imm(-2.0f)), > imm(M_PI_2f)), > - imm(0.0f))))); > + imm(0.0f, type->components()))))); > > /* sign fixup */ > body.emit(assign(res, mul(tmp, sign(y_over_x))));
Ugh, it seems things fail piglit's shaders/glsl-fs-atan-1 pretty badly on swrast. ../../src/mesa/program/ir_to_mesa.cpp:1426: virtual void {anonymous}::ir_to_mesa_visitor::visit(ir_expression*): Assertion `!"not supported"' failed. Ugh, yeah. We don't seem to support ir_trip_csel on swrast, and there's no attempt to lower it unless it's condition is constant 0 or 1 (in opt_algebraic.cpp). So yeah, this regresses there, but looking at the other builtins, so does anything that uses gentype mix(gentype, gentype, genBtype) etc. However, that's at least blocked by a GLSL v130 check, which swrast does not support. So, I've got some more work to do :/ _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev