[Mesa-dev] [PATCH v3 19/42] intel/compiler: don't compact 3-src instructions with Src1Type or Src2Type bits

Iago Toral itoral at igalia.com
Fri Jan 18 10:12:42 UTC 2019


On Thu, 2019-01-17 at 14:14 -0600, Jason Ekstrand wrote:
> On Tue, Jan 15, 2019 at 7:55 AM Iago Toral Quiroga <itoral at igalia.com
> > wrote:
> > We are now using these bits, so don't assert that they are not set,
> > just
> > 
> > avoid compaction in that case.
> > 
> > 
> > 
> > Reviewed-by: Topi Pohjolainen <topi.pohjolainen at intel.com>
> > 
> > ---
> > 
> >  src/intel/compiler/brw_eu_compact.c | 5 ++++-
> > 
> >  1 file changed, 4 insertions(+), 1 deletion(-)
> > 
> > 
> > 
> > diff --git a/src/intel/compiler/brw_eu_compact.c
> > b/src/intel/compiler/brw_eu_compact.c
> > 
> > index ae14ef10ec0..20fed254331 100644
> > 
> > --- a/src/intel/compiler/brw_eu_compact.c
> > 
> > +++ b/src/intel/compiler/brw_eu_compact.c
> > 
> > @@ -928,8 +928,11 @@ has_3src_unmapped_bits(const struct
> > gen_device_info *devinfo,
> > 
> >        assert(!brw_inst_bits(src, 127, 126) &&
> > 
> >               !brw_inst_bits(src, 105, 105) &&
> > 
> >               !brw_inst_bits(src, 84, 84) &&
> > 
> > -             !brw_inst_bits(src, 36, 35) &&
> > 
> >               !brw_inst_bits(src, 7,  7));
> > 
> > +
> > 
> > +      /* Src1Type and Src2Type, used for mixed-precision floating
> > point */
> > 
> > +      if (brw_inst_bits(src, 36, 35))
> > 
> > +         return true;
> 
> You're only doing this in the broadwell case.  What about SKL+ and
> CHV?  Can we compact mixed-precision stuff there?  Looks like maybe
> we can but there should be at least something in the commit message
> about that.

In these platforms compaction is possible in some cases
and  set_3src_control_index() takescare of this by including these bits
in a tablre lookup for accepted combinations. I can add thisto the
commit message:
"We are now using these bits, so don't assert that they are not set. In
gen8, if these bits are setcompaction is not possible. On gen9 and CHV
platforms set_3src_control_index() checks thesebits (and others)
against a table to validate if the particular bit combination is
eligible forcompaction or not."
With that said, if I am reading this correctly, it looks like all
entries in gen8_3src_control_index_table that allow compaction require
these bits to be zero at present, so I guess that right now we could
also just extend the check I am adding here for BDW to other platforms,
however, I guess that relying on the array with accepted bit
combinations for compaction is more reliable should any future
platforms allow for more combinations.
> >     }
> > 
> > 
> > 
> >     return false;
> > 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20190118/b843c6e2/attachment.html>


More information about the mesa-dev mailing list