[Mesa-stable] [Mesa-dev] [PATCH 1/2] i965/fs: Don't let the EOT send message interfere with the MRF hack
Neil Roberts
neil at linux.intel.com
Tue Jun 9 04:05:21 PDT 2015
Both patches look good to me and I can confirm they make the Piglit
tests pass on Skylake.
Reviewed-by: Neil Roberts <neil at linux.intel.com>
My original assumption of the problem was that the implied writes from
the SCRATCH_WRITE instruction aren't taken into account when calculating
the liveliness of the registers and I didn't realise that in the
particular case of the bug report this doesn't matter because the
register for the EOT message is effectively hard-coded to clash with the
message register used for spilling. I'm still not totally convinced that
there's not still a problem where a register can be allocated to clash
with the scratch write register because nothing in
fs_live_variables::setup_def_use takes into account the implied MRF
writes. However if that is the case and I haven't just misunderstood the
code then it is a separate problem and we'd still need this patch
anyway.
I was thinking it's a bit risky to just use a register that is lower
than the lowest used MRF register because it could be possible for a
message to use a really low register number and then this would end up
using a negative register number. However in practice on Gen7+ it looks
like there's hardly anything left that is using the fake MRF and we're
unlikely to add more so it probably doesn't really matter.
- Neil
More information about the mesa-stable
mailing list