[Mesa-dev] [PATCH] i965/cs: Use dispatch width of 8 for cs terminate

Jason Ekstrand jason at jlekstrand.net
Thu Jul 16 13:59:45 PDT 2015


On Jul 16, 2015 2:00 PM, "Jordan Justen" <jordan.l.justen at intel.com> wrote:
>
> This prevents an assertion failure in brw_fs_live_variables.cpp,
> fs_live_variables::setup_one_write: Assertion `var < num_vars' failed.

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.
--Jason

> Signed-off-by: Jordan Justen <jordan.l.justen at intel.com>
> Cc: Jason Ekstrand <jason at jlekstrand.net>
> ---
>  src/mesa/drivers/dri/i965/brw_fs_visitor.cpp | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
>
> diff --git a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> index 94d6a58..62dfb9a 100644
> --- a/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> +++ b/src/mesa/drivers/dri/i965/brw_fs_visitor.cpp
> @@ -1960,11 +1960,12 @@ fs_visitor::emit_cs_terminate()
>      */
>     struct brw_reg g0 = retype(brw_vec8_grf(0, 0), BRW_REGISTER_TYPE_UD);
>     fs_reg payload = fs_reg(GRF, alloc.allocate(1), BRW_REGISTER_TYPE_UD);
> -   bld.exec_all().MOV(payload, g0);
> +   const fs_builder bld8 = bld.group(8, 0);
> +   bld8.exec_all().MOV(payload, g0);
>
>     /* Send a message to the thread spawner to terminate the thread. */
> -   fs_inst *inst = bld.exec_all()
> -                      .emit(CS_OPCODE_CS_TERMINATE, reg_undef, payload);
> +   fs_inst *inst = bld8.exec_all()
> +                       .emit(CS_OPCODE_CS_TERMINATE, reg_undef, payload);
>     inst->eot = true;
>  }
>
> --
> 2.1.4
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/mesa-dev/attachments/20150716/bff1c108/attachment.html>


More information about the mesa-dev mailing list