This will be useful in the SIMD lowering pass to avoid having to construct a builder object of the known region width just to pass it as argument to offset(), which doesn't do anything with it other than taking the builder dispatch_width as region width. --- src/mesa/drivers/dri/i965/brw_fs.h | 18 ++---------------- src/mesa/drivers/dri/i965/brw_ir_fs.h | 19 +++++++++++++++++++ 2 files changed, 21 insertions(+), 16 deletions(-)
diff --git a/src/mesa/drivers/dri/i965/brw_fs.h b/src/mesa/drivers/dri/i965/brw_fs.h index ae75872..d2d99ba 100644 --- a/src/mesa/drivers/dri/i965/brw_fs.h +++ b/src/mesa/drivers/dri/i965/brw_fs.h @@ -44,23 +44,9 @@ namespace brw { struct brw_gs_compile; static inline fs_reg -offset(fs_reg reg, const brw::fs_builder& bld, unsigned delta) +offset(const fs_reg ®, const brw::fs_builder &bld, unsigned delta) { - switch (reg.file) { - case BAD_FILE: - break; - case ARF: - case FIXED_GRF: - case MRF: - case VGRF: - case ATTR: - case UNIFORM: - return byte_offset(reg, - delta * reg.component_size(bld.dispatch_width())); - case IMM: - assert(delta == 0); - } - return reg; + return offset(reg, bld.dispatch_width(), delta); } /** diff --git a/src/mesa/drivers/dri/i965/brw_ir_fs.h b/src/mesa/drivers/dri/i965/brw_ir_fs.h index b08757d..cc1561d 100644 --- a/src/mesa/drivers/dri/i965/brw_ir_fs.h +++ b/src/mesa/drivers/dri/i965/brw_ir_fs.h @@ -140,6 +140,25 @@ horiz_offset(const fs_reg ®, unsigned delta) unreachable("Invalid register file"); } +static inline fs_reg +offset(fs_reg reg, unsigned width, unsigned delta) +{ + switch (reg.file) { + case BAD_FILE: + break; + case ARF: + case FIXED_GRF: + case MRF: + case VGRF: + case ATTR: + case UNIFORM: + return byte_offset(reg, delta * reg.component_size(width)); + case IMM: + assert(delta == 0); + } + return reg; +} + /** * Get the scalar channel of \p reg given by \p idx and replicate it to all * channels of the result. -- 2.7.3 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev