Mesa (master): i965/fs: Fix offset() for registers with zero stride.
Francisco Jerez
currojerez at kemper.freedesktop.org
Tue May 12 12:50:11 UTC 2015
Module: Mesa
Branch: master
Commit: 4171ef371a25fccf9e96c0908a4848ea79dcfef2
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=4171ef371a25fccf9e96c0908a4848ea79dcfef2
Author: Francisco Jerez <currojerez at riseup.net>
Date: Wed Apr 22 14:46:17 2015 +0300
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 at gmail.com>
---
src/mesa/drivers/dri/i965/brw_ir_fs.h | 5 +++--
1 file 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;
More information about the mesa-commit
mailing list