i965/vec4: Don't spill non-GRF-aligned register regions.
authorFrancisco Jerez <currojerez@riseup.net>
Fri, 2 Sep 2016 05:36:15 +0000 (22:36 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Wed, 14 Sep 2016 21:50:59 +0000 (14:50 -0700)
commitf33a8f8fcfb6ce3baa8813b32d5eff20506f3df1
tree356d724a6ed9db82602cf3dde05e6b4a05af4ac0
parent8531f943d9aac13489a02e5a5b4bfa381c465a44
i965/vec4: Don't spill non-GRF-aligned register regions.

A better fix would be to do something along the lines of the FS
back-end spilling code and emit a scratch read before any instruction
that overwrites the register to spill partially due to a non-zero
sub-register offset.  In the meantime mark registers used with a
non-zero sub-register offset as no-spill to prevent the spilling code
from miscompiling the program.

Reviewed-by: Iago Toral Quiroga <itoral@igalia.com>
src/mesa/drivers/dri/i965/brw_vec4_reg_allocate.cpp
src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp