diff options
author | Francisco Jerez <[email protected]> | 2016-05-26 23:09:46 -0700 |
---|---|---|
committer | Francisco Jerez <[email protected]> | 2016-05-29 23:41:38 -0700 |
commit | 4db93592de73d68ce38b3d64eddd451aa6c373cc (patch) | |
tree | 03891ce45e2466795615f4f37ef67fa59064bb5a | |
parent | a5b4f63c1593cdcbc253cce2838c85b2fd796dac (diff) |
i965/fs: Refactor offset() into a separate function taking the width as argument.
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.
Reviewed-by: Jason Ekstrand <[email protected]>
-rw-r--r-- | src/mesa/drivers/dri/i965/brw_fs.h | 18 | ||||
-rw-r--r-- | 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 d28384d8216..4c1ac9cedd2 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 06a74fab94d..35169f8464f 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. |