intel/fs: Mark LINTERP opcode as writing accumulator on platforms without PLN
authorJason Ekstrand <jason.ekstrand@intel.com>
Mon, 28 May 2018 16:42:49 +0000 (09:42 -0700)
committerJason Ekstrand <jason.ekstrand@intel.com>
Thu, 28 Jun 2018 20:19:38 +0000 (13:19 -0700)
commit566e6abd6d70266aea2f43ad9fefaf7718d76c57
treeea98b74bbcf38eec6c7af23d4ad39ffd7d600c48
parent73d60455e90e14ef8618bfd09b0b4f54e1d58b48
intel/fs: Mark LINTERP opcode as writing accumulator on platforms without PLN

When we don't have PLN (gen4 and gen11+), we implement LINTERP as either
LINE+MAC or a pair of MADs.  In both cases, the accumulator is written
by the first of the two instructions and read by the second.  Even
though the accumulator value isn't actually ever used from a logical
instruction perspective, it is trashed so we need to make the scheduler
aware.  Otherwise, the scheduler could end up re-ordering instructions
and putting a LINTERP between another an instruction which writes the
accumulator and another which tries to use that result.

Cc: mesa-stable@lists.freedesktop.org
Reviewed-by: Matt Turner <mattst88@gmail.com>
src/intel/compiler/brw_shader.cpp