<div dir="auto">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?</div><br><div class="gmail_quote"><div dir="ltr">On Fri, May 18, 2018, 19:35 Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Francisco Jerez <<a href="mailto:currojerez@riseup.net" target="_blank" rel="noreferrer">currojerez@riseup.net</a>><br>
<br>
Reviewed-by: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net" target="_blank" rel="noreferrer">jason@jlekstrand.net</a>><br>
---<br>
 src/intel/compiler/brw_fs.cpp           | 1 +<br>
 src/intel/compiler/brw_fs_generator.cpp | 6 +-----<br>
 src/intel/compiler/brw_fs_visitor.cpp   | 2 ++<br>
 src/intel/compiler/brw_ir_fs.h          | 1 +<br>
 4 files changed, 5 insertions(+), 5 deletions(-)<br>
<br>
diff --git a/src/intel/compiler/brw_fs.cpp b/src/intel/compiler/brw_fs.cpp<br>
index 8d92786..d67c0a4 100644<br>
--- a/src/intel/compiler/brw_fs.cpp<br>
+++ b/src/intel/compiler/brw_fs.cpp<br>
@@ -3246,6 +3246,7 @@ fs_visitor::emit_repclear_shader()<br>
       }<br>
    }<br>
    write->eot = true;<br>
+   write->last_rt = true;<br>
<br>
    calculate_cfg();<br>
<br>
diff --git a/src/intel/compiler/brw_fs_generator.cpp b/src/intel/compiler/brw_fs_generator.cpp<br>
index aa94629..471ef64 100644<br>
--- a/src/intel/compiler/brw_fs_generator.cpp<br>
+++ b/src/intel/compiler/brw_fs_generator.cpp<br>
@@ -289,10 +289,6 @@ fs_generator::fire_fb_write(fs_inst *inst,<br>
     */<br>
    const uint32_t surf_index = inst->target;<br>
<br>
-   bool last_render_target = inst->eot ||<br>
-                             (prog_data->dual_src_blend && dispatch_width == 16);<br>
-<br>
-<br>
    brw_fb_WRITE(p,<br>
                 payload,<br>
                 implied_header,<br>
@@ -301,7 +297,7 @@ fs_generator::fire_fb_write(fs_inst *inst,<br>
                 nr,<br>
                 0,<br>
                 inst->eot,<br>
-                last_render_target,<br>
+                inst->last_rt,<br>
                 inst->header_size != 0);<br>
<br>
    brw_mark_surface_used(&prog_data->base, surf_index);<br>
diff --git a/src/intel/compiler/brw_fs_visitor.cpp b/src/intel/compiler/brw_fs_visitor.cpp<br>
index 41dbd76..a24808e 100644<br>
--- a/src/intel/compiler/brw_fs_visitor.cpp<br>
+++ b/src/intel/compiler/brw_fs_visitor.cpp<br>
@@ -103,6 +103,7 @@ fs_visitor::emit_dummy_fs()<br>
    fs_inst *write;<br>
    write = bld.emit(FS_OPCODE_FB_WRITE);<br>
    write->eot = true;<br>
+   write->last_rt = true;<br>
    if (devinfo->gen >= 6) {<br>
       write->base_mrf = 2;<br>
       write->mlen = 4 * reg_width;<br>
@@ -459,6 +460,7 @@ fs_visitor::emit_fb_writes()<br>
       inst->target = 0;<br>
    }<br>
<br>
+   inst->last_rt = true;<br>
    inst->eot = true;<br>
 }<br>
<br>
diff --git a/src/intel/compiler/brw_ir_fs.h b/src/intel/compiler/brw_ir_fs.h<br>
index f06a33c..92dad26 100644<br>
--- a/src/intel/compiler/brw_ir_fs.h<br>
+++ b/src/intel/compiler/brw_ir_fs.h<br>
@@ -374,6 +374,7 @@ public:<br>
<br>
    uint8_t sources; /**< Number of fs_reg sources. */<br>
<br>
+   bool last_rt:1;<br>
    bool pi_noperspective:1;   /**< Pixel interpolator noperspective flag */<br>
 };<br>
<br>
-- <br>
2.5.0.400.gff86faf<br>
<br>
_______________________________________________<br>
mesa-dev mailing list<br>
<a href="mailto:mesa-dev@lists.freedesktop.org" target="_blank" rel="noreferrer">mesa-dev@lists.freedesktop.org</a><br>
<a href="https://lists.freedesktop.org/mailman/listinfo/mesa-dev" rel="noreferrer noreferrer" target="_blank">https://lists.freedesktop.org/mailman/listinfo/mesa-dev</a><br>
</blockquote></div>