i965/fs: Simplify byte_offset().
authorFrancisco Jerez <currojerez@riseup.net>
Fri, 2 Sep 2016 02:27:12 +0000 (19:27 -0700)
committerFrancisco Jerez <currojerez@riseup.net>
Wed, 14 Sep 2016 21:50:56 +0000 (14:50 -0700)
In the most common case this can now be implemented as a simple
addition because the offset is already encoded as a single scalar
value in bytes.

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

index 721c2eb34e82471314f38f7187150367d2901f62..e8e25b98c58ba441a8fd633f406bd0e6703da49f 100644 (file)
@@ -79,17 +79,13 @@ byte_offset(fs_reg reg, unsigned delta)
       break;
    case VGRF:
    case ATTR:
-   case UNIFORM: {
-      const unsigned reg_size = (reg.file == UNIFORM ? 4 : REG_SIZE);
-      const unsigned suboffset = reg.offset % reg_size + delta;
-      reg.offset += ROUND_DOWN_TO(suboffset, reg_size);
-      reg.offset = ROUND_DOWN_TO(reg.offset, reg_size) + suboffset % reg_size;
+   case UNIFORM:
+      reg.offset += delta;
       break;
-   }
    case MRF: {
-      const unsigned suboffset = reg.offset % REG_SIZE + delta;
+      const unsigned suboffset = reg.offset + delta;
       reg.nr += suboffset / REG_SIZE;
-      reg.offset = ROUND_DOWN_TO(reg.offset, REG_SIZE) + suboffset % REG_SIZE;
+      reg.offset = suboffset % REG_SIZE;
       break;
    }
    case ARF: