i965/fs: Fix offset() for registers with zero stride.

stride == 0 implies that the register has one channel per vector
component.

Reviewed-by: Matt Turner <mattst88@gmail.com>
This commit is contained in:
Francisco Jerez 2015-04-22 14:46:17 +03:00
parent 0db663503e
commit 4171ef371a

View file

@ -131,14 +131,15 @@ horiz_offset(fs_reg reg, unsigned delta)
static inline fs_reg
offset(fs_reg reg, unsigned delta)
{
assert(reg.stride > 0);
switch (reg.file) {
case BAD_FILE:
break;
case GRF:
case MRF:
case ATTR:
return byte_offset(reg, delta * reg.width * reg.stride * type_sz(reg.type));
return byte_offset(reg,
delta * MAX2(reg.width * reg.stride, 1) *
type_sz(reg.type));
case UNIFORM:
reg.reg_offset += delta;
break;