[Mesa-dev] [PATCH 12/22] i965/vec4: split DF instructions and later duplicate its execsize in IVB/VLV

Samuel Iglesias Gonsálvez siglesias at igalia.com
Fri Jan 13 07:15:57 UTC 2017


On Thu, 2017-01-12 at 15:39 -0800, Matt Turner wrote:
> On Thu, Jan 5, 2017 at 5:07 AM, Samuel Iglesias Gonsálvez
> <siglesias at igalia.com> wrote:
> > We need to split DF instructions in two on IVB/VLV as it needs an
> > execsize 8 to process 4 DF values (one GRF in total).
> > 
> > Signed-off-by: Samuel Iglesias Gonsálvez <siglesias at igalia.com>
> > ---
> >  src/mesa/drivers/dri/i965/brw_ir_vec4.h          |  1 +
> >  src/mesa/drivers/dri/i965/brw_vec4.cpp           | 20
> > +++++++++++++++++++-
> >  src/mesa/drivers/dri/i965/brw_vec4_generator.cpp | 15
> > +++++++++++++--
> >  3 files changed, 33 insertions(+), 3 deletions(-)
> > 
> > diff --git a/src/mesa/drivers/dri/i965/brw_ir_vec4.h
> > b/src/mesa/drivers/dri/i965/brw_ir_vec4.h
> > index 57fc6be..9291be0 100644
> > --- a/src/mesa/drivers/dri/i965/brw_ir_vec4.h
> > +++ b/src/mesa/drivers/dri/i965/brw_ir_vec4.h
> > @@ -291,6 +291,7 @@ public:
> >     bool can_do_writemask(const struct gen_device_info *devinfo);
> >     bool can_change_types() const;
> >     bool has_source_and_destination_hazard() const;
> > +   unsigned exec_data_size() const;
> > 
> >     bool is_align1_partial_write()
> >     {
> > diff --git a/src/mesa/drivers/dri/i965/brw_vec4.cpp
> > b/src/mesa/drivers/dri/i965/brw_vec4.cpp
> > index b5e846d..6ba85d7 100644
> > --- a/src/mesa/drivers/dri/i965/brw_vec4.cpp
> > +++ b/src/mesa/drivers/dri/i965/brw_vec4.cpp
> > @@ -301,6 +301,19 @@ vec4_instruction::can_change_types() const
> >              !src[1].abs && !src[1].negate));
> >  }
> > 
> > +unsigned
> > +vec4_instruction::exec_data_size() const
> > +{
> > +  unsigned exec_data_size = 0;
> > +
> > +  for (int i = 0; i < 3; i++) {
> > +    if (this->src[i].type != BAD_FILE)
> > +      exec_data_size = MAX2(exec_data_size, type_sz(this-
> > >src[i].type));
> 
> Indentation, use braces.
> 
> > +  }
> > +
> > +  return exec_data_size;
> > +}
> 
> I think this should become a static inline function for the reasons
> Curro mentioned in the fs patch.
> 

OK, thanks!

Sam


More information about the mesa-dev mailing list