[Mesa-dev] [RFC PATCH 1/5] i965/eu: set correct execution size in brw_NOP

Iago Toral itoral at igalia.com
Thu Dec 10 00:19:22 PST 2015


On Wed, 2015-12-09 at 10:38 -0800, Matt Turner wrote:
> On Wed, Dec 9, 2015 at 4:15 AM, Iago Toral Quiroga <itoral at igalia.com> wrote:
> > ---
> >  src/mesa/drivers/dri/i965/brw_eu_emit.c | 1 +
> >  1 file changed, 1 insertion(+)
> >
> > diff --git a/src/mesa/drivers/dri/i965/brw_eu_emit.c b/src/mesa/drivers/dri/i965/brw_eu_emit.c
> > index f8c0f80..9543d5e 100644
> > --- a/src/mesa/drivers/dri/i965/brw_eu_emit.c
> > +++ b/src/mesa/drivers/dri/i965/brw_eu_emit.c
> > @@ -1256,6 +1256,7 @@ brw_F16TO32(struct brw_codegen *p, struct brw_reg dst, struct brw_reg src)
> >  void brw_NOP(struct brw_codegen *p)
> >  {
> >     brw_inst *insn = next_insn(p, BRW_OPCODE_NOP);
> > +   brw_inst_set_exec_size(p->devinfo, insn, BRW_EXECUTE_4);
> 
> I don't follow this change. Was this implicitly set before?

Yes, brw_NOP's uses brw_vec4_grf() for both dst and src0, so the code in
brw_set_dest will set an execution size of 4 (otherwise we hit the
assertion in validate_reg that checks execsize >= width). I have changed
this to use brw_vec1_grf and an execsize of 1 and it seems to work fine
though, so I'll merge that change in the patch.

Thanks Matt!

Iago

> At least in newer documentation, NOP is defined to have nearly all
> fields 0 which would mean execution size must be 1.
> 




More information about the mesa-dev mailing list