freedreno/ir3: start on indirect gpr reads
authorRob Clark <robclark@freedesktop.org>
Wed, 31 Dec 2014 01:02:36 +0000 (20:02 -0500)
committerRob Clark <robclark@freedesktop.org>
Thu, 8 Jan 2015 00:37:28 +0000 (19:37 -0500)
commit1e5c207dba4dbd07919bff2efe57ad361a44ac84
tree5c138ae76d07d4de3648ae8bdf78fbc72c72e1ec
parent63e5b72da8b1df4bbb0fcf46524d106f51264605
freedreno/ir3: start on indirect gpr reads

Handle TEMP[ADDR[]] src registers by generating a fanin to group array
elements, similarly to how texture fetch instructions work.

NOTE:
For all the scalar instructions generated for a single tgsi vector
operation which uses an array src (or possibly even uses the same array
as multiple srcs), re-use the same fanin node.  Since a vector operation
operates on all components at the same time, it should never see more
than one version of the same array.

Signed-off-by: Rob Clark <robclark@freedesktop.org>
src/gallium/drivers/freedreno/ir3/ir3.h
src/gallium/drivers/freedreno/ir3/ir3_compiler.c
src/gallium/drivers/freedreno/ir3/ir3_ra.c