summaryrefslogtreecommitdiffstats
path: root/src/mesa/drivers/dri/i965/brw_ir_fs.h
diff options
context:
space:
mode:
authorFrancisco Jerez <currojerez@riseup.net>2015-04-22 14:46:17 +0300
committerFrancisco Jerez <currojerez@riseup.net>2015-05-12 15:47:56 +0300
commit4171ef371a25fccf9e96c0908a4848ea79dcfef2 (patch)
tree8c43e3e4006ba16237013b0559c0de92223e1d6c /src/mesa/drivers/dri/i965/brw_ir_fs.h
parent0db663503ea86579d3352fe83d428d573a8d2b03 (diff)
downloadexternal_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.h5
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;