[Mesa-dev] [PATCH 07/15] i965/vec4: Inline get_pull_constant_offset
Eduardo Lima Mitev
elima at igalia.com
Fri Dec 18 04:42:58 PST 2015
Patch is:
Reviewed-by: Eduardo Lima Mitev <elima at igalia.com>
On 12/10/2015 05:23 AM, Jason Ekstrand wrote:
> It's not really doing enough anymore to justify a helper function.
> ---
> src/mesa/drivers/dri/i965/brw_vec4.h | 2 --
> src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp | 37 ++++++++++----------------
> 2 files changed, 14 insertions(+), 25 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_vec4.h b/src/mesa/drivers/dri/i965/brw_vec4.h
> index ae5bf69..f2e5ce1 100644
> --- a/src/mesa/drivers/dri/i965/brw_vec4.h
> +++ b/src/mesa/drivers/dri/i965/brw_vec4.h
> @@ -284,8 +284,6 @@ public:
>
> src_reg get_scratch_offset(bblock_t *block, vec4_instruction *inst,
> src_reg *reladdr, int reg_offset);
> - src_reg get_pull_constant_offset(bblock_t *block, vec4_instruction *inst,
> - src_reg *reladdr, int reg_offset);
> void emit_scratch_read(bblock_t *block, vec4_instruction *inst,
> dst_reg dst,
> src_reg orig_src,
> diff --git a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
> index 443d0eb..7712d34 100644
> --- a/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_vec4_visitor.cpp
> @@ -1464,27 +1464,6 @@ vec4_visitor::get_scratch_offset(bblock_t *block, vec4_instruction *inst,
> }
> }
>
> -src_reg
> -vec4_visitor::get_pull_constant_offset(bblock_t * block, vec4_instruction *inst,
> - src_reg *reladdr, int reg_offset)
> -{
> - if (reladdr) {
> - src_reg index = src_reg(this, glsl_type::int_type);
> -
> - emit_before(block, inst, ADD(dst_reg(index), *reladdr,
> - brw_imm_d(reg_offset * 16)));
> -
> - return index;
> - } else if (devinfo->gen >= 8) {
> - /* Store the offset in a GRF so we can send-from-GRF. */
> - src_reg offset = src_reg(this, glsl_type::int_type);
> - emit_before(block, inst, MOV(dst_reg(offset), brw_imm_d(reg_offset * 16)));
> - return offset;
> - } else {
> - return brw_imm_d(reg_offset * 16);
> - }
> -}
> -
> /**
> * Emits an instruction before @inst to load the value named by @orig_src
> * from scratch space at @base_offset to @temp.
> @@ -1666,8 +1645,20 @@ vec4_visitor::emit_pull_constant_load(bblock_t *block, vec4_instruction *inst,
> {
> int reg_offset = base_offset + orig_src.reg_offset;
> const unsigned index = prog_data->base.binding_table.pull_constants_start;
> - src_reg offset = get_pull_constant_offset(block, inst, orig_src.reladdr,
> - reg_offset);
> +
> + src_reg offset;
> + if (orig_src.reladdr) {
> + offset = src_reg(this, glsl_type::int_type);
> +
> + emit_before(block, inst, ADD(dst_reg(offset), *orig_src.reladdr,
> + brw_imm_d(reg_offset * 16)));
> + } else if (devinfo->gen >= 8) {
> + /* Store the offset in a GRF so we can send-from-GRF. */
> + offset = src_reg(this, glsl_type::int_type);
> + emit_before(block, inst, MOV(dst_reg(offset), brw_imm_d(reg_offset * 16)));
> + } else {
> + offset = brw_imm_d(reg_offset * 16);
> + }
>
> emit_pull_constant_load_reg(temp,
> brw_imm_ud(index),
>
More information about the mesa-dev
mailing list