OSDN Git Service

i965: Avoid applying negate to wrong MAD source.
authorMatt Turner <mattst88@gmail.com>
Fri, 27 Feb 2015 18:59:17 +0000 (10:59 -0800)
committerEmil Velikov <emil.l.velikov@gmail.com>
Sat, 7 Mar 2015 18:23:15 +0000 (18:23 +0000)
commit31fcb21ef523434a254c0bbff515345c2c6d8152
treeabfbd754f05e9cee3d55fb4f5871bb8b13e4a61f
parent0cd8e357e323f39603bfb178108d94f83d6a3c37
i965: Avoid applying negate to wrong MAD source.

For some given GLSL IR like (+ (neg x) (* 1.2 x)), the try_emit_mad
function would see that one of the +'s sources was a negate expression
and set mul_negate = true without confirming that it was actually a
multiply.

Cc: 10.5 <mesa-stable@lists.freedesktop.org>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89315
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=89095
Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
(cherry picked from commit d528907fd2950c7bb968fff66dd79863cd128890)
[Emil Velikov: drop the changes in brw_vec4_visitor.cpp]
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com>
Conflicts:
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
src/mesa/drivers/dri/i965/brw_fs_visitor.cpp