diff options
author | Francisco Jerez <currojerez@riseup.net> | 2015-04-22 14:46:17 +0300 |
---|---|---|
committer | Francisco Jerez <currojerez@riseup.net> | 2015-05-12 15:47:56 +0300 |
commit | 4171ef371a25fccf9e96c0908a4848ea79dcfef2 (patch) | |
tree | 8c43e3e4006ba16237013b0559c0de92223e1d6c /src/mesa/drivers/dri/i965/brw_ir_fs.h | |
parent | 0db663503ea86579d3352fe83d428d573a8d2b03 (diff) | |
download | external_mesa3d-4171ef371a25fccf9e96c0908a4848ea79dcfef2.zip external_mesa3d-4171ef371a25fccf9e96c0908a4848ea79dcfef2.tar.gz external_mesa3d-4171ef371a25fccf9e96c0908a4848ea79dcfef2.tar.bz2 |
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>
Diffstat (limited to 'src/mesa/drivers/dri/i965/brw_ir_fs.h')
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_ir_fs.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/mesa/drivers/dri/i965/brw_ir_fs.h b/src/mesa/drivers/dri/i965/brw_ir_fs.h index f3dfe79..a98f4e3 100644 --- a/src/mesa/drivers/dri/i965/brw_ir_fs.h +++ b/src/mesa/drivers/dri/i965/brw_ir_fs.h @@ -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; |