[Mesa-dev] [PATCH 08/14] i965/fs: Initialize a builder explicitly in the gen4 send dependency work-arounds.
Jason Ekstrand
jason at jlekstrand.net
Tue Jul 28 14:02:18 PDT 2015
On Tue, Jul 28, 2015 at 1:23 AM, Francisco Jerez <currojerez at riseup.net> wrote:
> Instead of relying on the default one. This shouldn't lead to any
> functional changes because DEP_RESOLVE_MOV overrides the execution
> controls of the instruction anyway.
Actually, DEP_RESOLVE_MOV calls half() on the builder which doesn't
make any sense. I think the pre-builder intention, based on the
comment, was force_uncompressed and to use a SIMD8 instruction so that
it adds as few deps as possible. I'm not sure what it's actually
doing now. In any case, saying that it overrides everything isn't
right.
> ---
> src/mesa/drivers/dri/i965/brw_fs.cpp | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs.cpp b/src/mesa/drivers/dri/i965/brw_fs.cpp
> index 71d372c..8bc9372 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs.cpp
> @@ -2827,7 +2827,8 @@ fs_visitor::insert_gen4_pre_send_dependency_workarounds(bblock_t *block,
> if (block->start() == scan_inst) {
> for (int i = 0; i < write_len; i++) {
> if (needs_dep[i])
> - DEP_RESOLVE_MOV(bld.at(block, inst), first_write_grf + i);
> + DEP_RESOLVE_MOV(fs_builder(this, block, inst),
> + first_write_grf + i);
> }
> return;
> }
> @@ -2843,7 +2844,7 @@ fs_visitor::insert_gen4_pre_send_dependency_workarounds(bblock_t *block,
> if (reg >= first_write_grf &&
> reg < first_write_grf + write_len &&
> needs_dep[reg - first_write_grf]) {
> - DEP_RESOLVE_MOV(bld.at(block, inst), reg);
> + DEP_RESOLVE_MOV(fs_builder(this, block, inst), reg);
> needs_dep[reg - first_write_grf] = false;
> if (scan_inst->exec_size == 16)
> needs_dep[reg - first_write_grf + 1] = false;
> @@ -2890,7 +2891,8 @@ fs_visitor::insert_gen4_post_send_dependency_workarounds(bblock_t *block, fs_ins
> if (block->end() == scan_inst) {
> for (int i = 0; i < write_len; i++) {
> if (needs_dep[i])
> - DEP_RESOLVE_MOV(bld.at(block, scan_inst), first_write_grf + i);
> + DEP_RESOLVE_MOV(fs_builder(this, block, scan_inst),
> + first_write_grf + i);
> }
> return;
> }
> @@ -2905,7 +2907,8 @@ fs_visitor::insert_gen4_post_send_dependency_workarounds(bblock_t *block, fs_ins
> scan_inst->dst.reg >= first_write_grf &&
> scan_inst->dst.reg < first_write_grf + write_len &&
> needs_dep[scan_inst->dst.reg - first_write_grf]) {
> - DEP_RESOLVE_MOV(bld.at(block, scan_inst), scan_inst->dst.reg);
> + DEP_RESOLVE_MOV(fs_builder(this, block, scan_inst),
> + scan_inst->dst.reg);
> needs_dep[scan_inst->dst.reg - first_write_grf] = false;
> }
>
> --
> 2.4.6
>
More information about the mesa-dev
mailing list