r600/sfn: Don't tag mem-ring and stream instructions as exports
authorGert Wollny <gert.wollny@collabora.com>
Tue, 23 Aug 2022 13:03:48 +0000 (15:03 +0200)
committerMarge Bot <emma+marge@anholt.net>
Fri, 26 Aug 2022 08:27:41 +0000 (08:27 +0000)
commitfd71cd0b6a068ce4f0187b26d4527c3e1b6dee86
tree0cb34316027b1949913166eb1b4bab41f8afb108
parent3a0f085837bd605dd5fbd52e4cf934995193e689
r600/sfn: Don't tag mem-ring and stream instructions as exports

Export instructions allow burst writes, so it makes send to try
to allocate consecutive registers, but for ring writes we don't
schedule the outputs correctly to exploit this, so for now
don't mark these instructions as export to let the RA restart
picking colors.

When the scheduler starts to emit the ring writes in the right order
to allow for bust writes we might revisit this.

This fixes
  spec@glsl-1.50@execution@variable-indexing@gs-output-array-vec4-index-wr

Fixes: 79ca456b4837b3bc21cf9ef3c03c505c4b4909f6
   r600/sfn: rewrite NIR backend

Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/6975

Signed-off-by: Gert Wollny <gert.wollny@collabora.com>
Reviewed-by: Filip Gawin <filip@gawin.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18212>
src/gallium/drivers/r600/sfn/sfn_liverangeevaluator.cpp
src/gallium/drivers/r600/sfn/sfn_scheduler.cpp