[Mesa-dev] [PATCH 1/5] intel/eu: Use EXECUTE_1 for JMPI

Matt Turner mattst88 at gmail.com
Thu Aug 31 21:37:45 UTC 2017


On Thu, Aug 31, 2017 at 2:25 PM, Jason Ekstrand <jason at jlekstrand.net> wrote:
> There doesn't seem to be a good reason for using EXECUTE_2 for JMPI and
> brw_fs_generator manually stomps it to 1.  This is a functional change
> because it changes all of the clip and SF programs on gen4-5 to use
> EXECUTE_1 for JMPI.  Piglit says that this is ok.

The PRM says "The execution size must be 1."

> ---
>  src/intel/compiler/brw_eu_emit.c        | 2 +-
>  src/intel/compiler/brw_fs_generator.cpp | 1 -
>  2 files changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/src/intel/compiler/brw_eu_emit.c b/src/intel/compiler/brw_eu_emit.c
> index 8c952e7..ada550c 100644
> --- a/src/intel/compiler/brw_eu_emit.c
> +++ b/src/intel/compiler/brw_eu_emit.c
> @@ -1183,7 +1183,7 @@ brw_JMPI(struct brw_codegen *p, struct brw_reg index,
>     struct brw_reg ip = brw_ip_reg();
>     brw_inst *inst = brw_alu2(p, BRW_OPCODE_JMPI, ip, ip, index);
>
> -   brw_inst_set_exec_size(devinfo, inst, BRW_EXECUTE_2);
> +   brw_inst_set_exec_size(devinfo, inst, BRW_EXECUTE_1);

This is fixing a bug added in 2009 in commit
73137997e23ff6c1145d036315d1a9ad96651281

| insn->header.execution_size = 1;

But the execution size encodings are

   BRW_EXECUTE_1  = 0,
   BRW_EXECUTE_2  = 1,
   BRW_EXECUTE_4  = 2,

etc.

With an updated commit message that contains this information:

Reviewed-by: Matt Turner <mattst88 at gmail.com>


More information about the mesa-dev mailing list