freedreno/ir3: fix for array/reg store vs meta instructions
authorRob Clark <robdclark@chromium.org>
Fri, 19 Jul 2019 23:47:15 +0000 (16:47 -0700)
committerRob Clark <robdclark@chromium.org>
Mon, 29 Jul 2019 22:15:31 +0000 (15:15 -0700)
commit73cc2dc08447a1be5cd23053d0d77465c589eb0e
tree3f999e905af08767bdad43a302e8320ed90034c2
parentf7b6a8d12fdc446e325129033e5f61e3bbafb0b2
freedreno/ir3: fix for array/reg store vs meta instructions

fishgl.com has a shader which does roughly:

   foo = texture(...);
   if (bar)
      foo = texture(...);

after lowering phi webs to regs we end up w/ a vec4 reg (array).  But
since it was not an indirect access, we try to skip the extra mov.  This
results that the per-component fanout (split) meta instructions store
directly to the reg (array).  Which doesn't work out in RA.

Signed-off-by: Rob Clark <robdclark@chromium.org>
src/freedreno/ir3/ir3_context.c