Just an observation -- old code was based on eot || other cond. New code
seems to set last_rt only when eot is set. Is there a last_rt setting
missing? Or was the extra condition superfluous before?

On Fri, May 18, 2018, 19:35 Jason Ekstrand <ja...@jlekstrand.net> wrote:

> From: Francisco Jerez <curroje...@riseup.net>
>
> Reviewed-by: Jason Ekstrand <ja...@jlekstrand.net>
> ---
>  src/intel/compiler/brw_fs.cpp           | 1 +
>  src/intel/compiler/brw_fs_generator.cpp | 6 +-----
>  src/intel/compiler/brw_fs_visitor.cpp   | 2 ++
>  src/intel/compiler/brw_ir_fs.h          | 1 +
>  4 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp
> index 8d92786..d67c0a4 100644
> --- a/src/intel/compiler/brw_fs.cpp
> +++ b/src/intel/compiler/brw_fs.cpp
> @@ -3246,6 +3246,7 @@ fs_visitor::emit_repclear_shader()
>        }
>     }
>     write->eot = true;
> +   write->last_rt = true;
>
>     calculate_cfg();
>
> diff --git a/src/intel/compiler/brw_fs_generator.cpp
> b/src/intel/compiler/brw_fs_generator.cpp
> index aa94629..471ef64 100644
> --- a/src/intel/compiler/brw_fs_generator.cpp
> +++ b/src/intel/compiler/brw_fs_generator.cpp
> @@ -289,10 +289,6 @@ fs_generator::fire_fb_write(fs_inst *inst,
>      */
>     const uint32_t surf_index = inst->target;
>
> -   bool last_render_target = inst->eot ||
> -                             (prog_data->dual_src_blend && dispatch_width
> == 16);
> -
> -
>     brw_fb_WRITE(p,
>                  payload,
>                  implied_header,
> @@ -301,7 +297,7 @@ fs_generator::fire_fb_write(fs_inst *inst,
>                  nr,
>                  0,
>                  inst->eot,
> -                last_render_target,
> +                inst->last_rt,
>                  inst->header_size != 0);
>
>     brw_mark_surface_used(&prog_data->base, surf_index);
> diff --git a/src/intel/compiler/brw_fs_visitor.cpp
> b/src/intel/compiler/brw_fs_visitor.cpp
> index 41dbd76..a24808e 100644
> --- a/src/intel/compiler/brw_fs_visitor.cpp
> +++ b/src/intel/compiler/brw_fs_visitor.cpp
> @@ -103,6 +103,7 @@ fs_visitor::emit_dummy_fs()
>     fs_inst *write;
>     write = bld.emit(FS_OPCODE_FB_WRITE);
>     write->eot = true;
> +   write->last_rt = true;
>     if (devinfo->gen >= 6) {
>        write->base_mrf = 2;
>        write->mlen = 4 * reg_width;
> @@ -459,6 +460,7 @@ fs_visitor::emit_fb_writes()
>        inst->target = 0;
>     }
>
> +   inst->last_rt = true;
>     inst->eot = true;
>  }
>
> diff --git a/src/intel/compiler/brw_ir_fs.h
> b/src/intel/compiler/brw_ir_fs.h
> index f06a33c..92dad26 100644
> --- a/src/intel/compiler/brw_ir_fs.h
> +++ b/src/intel/compiler/brw_ir_fs.h
> @@ -374,6 +374,7 @@ public:
>
>     uint8_t sources; /**< Number of fs_reg sources. */
>
> +   bool last_rt:1;
>     bool pi_noperspective:1;   /**< Pixel interpolator noperspective flag
> */
>  };
>
> --
> 2.5.0.400.gff86faf
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to