i965/fs: Mark last used ip for all regs read in the payload
authorJordan Justen <jordan.l.justen@intel.com>
Mon, 2 Feb 2015 22:23:35 +0000 (14:23 -0800)
committerConnor Abbott <connor.w.abbott@intel.com>
Fri, 17 Jul 2015 17:10:48 +0000 (10:10 -0700)
commitc4a2217e79ac78c59cec3eb97542ceb819f92a44
treeba346dedf55d245226f2151bda64bf7811bb46d9
parent9f344b908a95440d215f29c0b05b8ea8dba2839e
i965/fs: Mark last used ip for all regs read in the payload

If a source register in the push constant registers uses more than one
register, then we wouldn't update payload_last_use_ip for subsequent
registers.

Unlike most uniform data pushed into registers, the CS gl_LocalInvocationID
data varies per execution channel. Therefore for SIMD16 mode, we have vec16
data in the payload. In this case we then need to mark 2 registers in
payload_last_use_ip as last used by the instruction. There's a similar
situation for the z and w coordinates of gl_FragCoord for fragment shaders,
where it had only happened to work before because of some bogus interferences
which the next commit removes.

(Connor: added bit about gl_FragCoord to commit message)

Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
Reviewed-by: Connor Abbott <connor.w.abbott@intel.com>
src/mesa/drivers/dri/i965/brw_fs_reg_allocate.cpp