<p dir="ltr"><br>
On Jul 16, 2015 2:00 PM, "Jordan Justen" <<a href="mailto:jordan.l.justen@intel.com">jordan.l.justen@intel.com</a>> wrote:<br>
><br>
> This prevents an assertion failure in brw_fs_live_variables.cpp,<br>
> fs_live_variables::setup_one_write: Assertion `var < num_vars' failed.</p>
<p dir="ltr">Best guess is that you should just fix regs_read to return the right value (1 in this case).  Most other send instructions use mlen but that may not be needed tour CS_TERMINATE.<br>
--Jason</p>
<p dir="ltr">> Signed-off-by: Jordan Justen <<a href="mailto:jordan.l.justen@intel.com">jordan.l.justen@intel.com</a>><br>
> Cc: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br>
> ---<br>
>  src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 7 ++++---<br>
>  1 file changed, 4 insertions(+), 3 deletions(-)<br>
><br>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp<br>
> index 94d6a58..62dfb9a 100644<br>
> --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp<br>
> +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp<br>
> @@ -1960,11 +1960,12 @@ fs_visitor::emit_cs_terminate()<br>
>      */<br>
>     struct brw_reg g0 = retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD);<br>
>     fs_reg payload = fs_reg(GRF, alloc.allocate(1), BRW_REGISTER_TYPE_UD);<br>
> -   bld.exec_all().MOV(payload, g0);<br>
> +   const fs_builder bld8 = bld.group(8, 0);<br>
> +   bld8.exec_all().MOV(payload, g0);<br>
><br>
>     /* Send a message to the thread spawner to terminate the thread. */<br>
> -   fs_inst *inst = bld.exec_all()<br>
> -                      .emit(CS_OPCODE_CS_TERMINATE, reg_undef, payload);<br>
> +   fs_inst *inst = bld8.exec_all()<br>
> +                       .emit(CS_OPCODE_CS_TERMINATE, reg_undef, payload);<br>
>     inst->eot = true;<br>
>  }<br>
><br>
> --<br>
> 2.1.4<br>
><br>
</p>