i965/nir: Resolve source modifiers on Gen8+ logic operations.
authorKenneth Graunke <kenneth@whitecape.org>
Fri, 6 Mar 2015 04:39:49 +0000 (20:39 -0800)
committerKenneth Graunke <kenneth@whitecape.org>
Mon, 9 Mar 2015 03:03:35 +0000 (20:03 -0700)
commita84f66a9b6cf46bb19ca71faca5b1d6d81209caf
tree3890ac2e6205b02391ed18fbf452d972ecf51f0d
parent7c25a4a84d01557945ff0273fb481c24cf509837
i965/nir: Resolve source modifiers on Gen8+ logic operations.

On Gen8+, AND/OR/XOR/NOT don't support the abs() source modifier, and
negate changes meaning to bitwise-not (~, not -).  This isn't what NIR
expects, so we should resolve the source modifers via a MOV.

+30 Piglits (fs-op-bit{and,or,xor}-not-abs-*).

Signed-off-by: Kenneth Graunke <kenneth@whitecape.org>
Reviewed-by: Topi Pohjolainen <topi.pohjolainen@intel.com>
src/mesa/drivers/dri/i965/brw_fs.cpp
src/mesa/drivers/dri/i965/brw_fs.h
src/mesa/drivers/dri/i965/brw_fs_nir.cpp