intel/fs: Add a lowering pass for linear interpolation.
authorRafael Antognolli <rafael.antognolli@intel.com>
Tue, 23 Oct 2018 16:03:32 +0000 (09:03 -0700)
committerRafael Antognolli <rafael.antognolli@intel.com>
Mon, 22 Apr 2019 23:54:00 +0000 (16:54 -0700)
commit9ea90aae1e778c56381c63fc43cfe6a29a25c45f
tree931024a3c7be49669f483e8ea49c876960ea12c2
parentc0504569eac5e5c305e9f0c240e248aca9d8891f
intel/fs: Add a lowering pass for linear interpolation.

On gen11, instead of using a PLN instruction, we convert
FS_OPCODE_LINTERP to 2 or 4 multiply adds. That is done in the
fs_generator code.

This patch adds a lowering pass that does the same thing at the
fs_visitor. It also drops the usage of NF types, since we don't need the
extra precision and it lets us skip the accumulator. With all that, some
optimizations will still be run on the generated code, and we should get
better scheduling.

v2: Update comment about saturation and conditional mod (Matt)

Reviewed-by: Matt Turner <mattst88@gmail.com>
src/intel/compiler/brw_fs.cpp
src/intel/compiler/brw_fs.h