i965/vs: Add missing resolve_bool_comparison calls on GEN4 and GEN5
authorIan Romanick <ian.d.romanick@intel.com>
Wed, 25 Feb 2015 01:57:18 +0000 (20:57 -0500)
committerIan Romanick <ian.d.romanick@intel.com>
Fri, 13 Mar 2015 19:57:32 +0000 (12:57 -0700)
commite76a8dc8ed8af9ea9c99ff4f84948fa834317ee9
tree00015acc8c49ff7cc68c8c9ecceacab951a91e83
parent21ff9bfe1cea8c0a51e9f607cc580df62baa3445
i965/vs: Add missing resolve_bool_comparison calls on GEN4 and GEN5

The ir_unop_any problem was discovered by some later optimization passes
that generate ir_triop_csel.  I was also able to reproduce it by
modifying the gl-2.0-vertexattribpointer vertex shader to generate its
result using

   color = mix(vec4(0, 1, 0, 0),
               vec4(1, 0, 0, 0),
               bvec4(any(greaterThan(diff, vec4(tolerance)))));

instead of an if-statement.  This also required using #version 130 and
MESA_GLSL_VERSION_OVERRIDE=130.

I have not nominated this for stable releases because I don't think
there's any way to trigger the problem without GLSL 1.30 or
optimizations that don't exist in stable.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Abdiel Janulgue <abdiel.janulgue@intel.com>
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp