[Mesa-dev] [PATCH v2 00/13] Engine parameter for instructions

Jason Ekstrand jason at jlekstrand.net
Wed Oct 31 18:18:11 UTC 2018


On Wed, Oct 31, 2018 at 11:10 AM Toni Lönnberg <toni.lonnberg at intel.com>
wrote:

> When we debug media or 3d+media workloads, we'd like to be able to see
> what is
> in the aub dumps for those workloads. At the moment the decoder can't
> distinguish instructions which share the same opcode between the render
> and
> video pipe, and thus aubinator outputs garbage on media instructions.
>
> I was reluctant to make these changes into Mesa in the first place since
> the
> work is related to media, not 3d, but as aubinator is now located here,
> here we
> are.
>

That's fine.  It's fine if these changres live in mesa.


> As far as I can see, these are the options:
>
> 1. Put these in Mesa as aubinator now resides here instead of IGT.
>    a) Put all instruction definitions in the current genxml files, be it
> with a
>       tag or an attribute, both methods have their advantages and
> disadvantages.
>    b) Separate genxml files into common, render and video (and blitter?)
>
> 2. Fork aubinator tools and related genxml infra to a completely separate
>    project.
>
> If I have missed an option, feel free to suggest.
>

I wasn't suggesting we fork the tools and the XML.  I was just wondering
whether we wanted to do separate sections or an attribute.  I think it
should land in mesa either way.

--Jason


> On Wed, Oct 31, 2018 at 09:20:39AM -0500, Jason Ekstrand wrote:
> > Toni,
> >
> > I'm a bit curious where you're going with this.  I started on a similar
> > project a couple of years ago:
> >
> > https://gitlab.freedesktop.org/jekstrand/mesa/commits/wip/genxml-engines
> >
> > Mine took a different (not necessarily better) approach of surrounding
> the
> > instructions in an <engine> tag.  I'm not sure if that's any better or
> > worse than an attribute.
> >
> > At the time, I was planning to port over the blitter code to genxml and
> get
> > aubinator decoding blit streams.  I canned the project because there are
> > few enough differences in hardware generations for the blitter to be
> worth
> > the re-compilation and I had better things to do.  I've always thought it
> > would be good to support other engines for no other reason than to make
> > aubinator for blits.  It would also likely be useful to have if we wanted
> > to start doing media in mesa for some reason.  What's your motivation?  I
> > ask because I can't really have an opinion on the approach unless I know
> > where it's headed.
> >
> > --Jason
> >
> > On Wed, Oct 31, 2018 at 8:12 AM Toni Lönnberg <toni.lonnberg at intel.com>
> > wrote:
> >
> > > These patches add an engine parameter to the instructions defined in
> the
> > > genxml
> > > files so that they can be distinguished when sending them to different
> > > engines.
> > > By default, an instruction is defined to be used by all engines and is
> > > defined
> > > for a specific engine by adding the parameter "engine" to the
> definition.
> > > Currently the supported engines are "render", "video" and "blitter".
> > >
> > > v2:
> > >
> > > * gen_engine enum removed and replaced with use of
> > > drm_i915_gem_engine_class
> > >
> > > * The current engine being used is now saved in the decoder context
> and is
> > > not
> > >   being passed through gen_print_batch().
> > >
> > > * Split the genxml changes into multiple patches
> > >
> > > Toni Lönnberg (13):
> > >   intel/decoder: tools: gen_engine to drm_i915_gem_engine_class
> > >   intel/decoder: Engine parameter for instructions
> > >   intel/decoder: tools: Use engine for decoding batch instructions
> > >   intel/genxml: Add engine definition to render engine instructions
> > >     (gen4)
> > >   intel/genxml: Add engine definition to render engine instructions
> > >     (gen45)
> > >   intel/genxml: Add engine definition to render engine instructions
> > >     (gen5)
> > >   intel/genxml: Add engine definition to render engine instructions
> > >     (gen6)
> > >   intel/genxml: Add engine definition to render engine instructions
> > >     (gen7)
> > >   intel/genxml: Add engine definition to render engine instructions
> > >     (gen75)
> > >   intel/genxml: Add engine definition to render engine instructions
> > >     (gen8)
> > >   intel/genxml: Add engine definition to render engine instructions
> > >     (gen9)
> > >   intel/genxml: Add engine definition to render engine instructions
> > >     (gen10)
> > >   intel/genxml: Add engine definition to render engine instructions
> > >     (gen11)
> > >
> > >  src/intel/common/gen_batch_decoder.c     |  25 ++-
> > >  src/intel/common/gen_decoder.c           |  18 +-
> > >  src/intel/common/gen_decoder.h           |  11 +-
> > >  src/intel/genxml/gen10.xml               | 206 +++++++++++-----------
> > >  src/intel/genxml/gen11.xml               | 208 +++++++++++------------
> > >  src/intel/genxml/gen4.xml                |  36 ++--
> > >  src/intel/genxml/gen45.xml               |  38 ++---
> > >  src/intel/genxml/gen5.xml                |  44 ++---
> > >  src/intel/genxml/gen6.xml                |  94 +++++-----
> > >  src/intel/genxml/gen7.xml                | 154 ++++++++---------
> > >  src/intel/genxml/gen75.xml               | 184 ++++++++++----------
> > >  src/intel/genxml/gen8.xml                | 202 +++++++++++-----------
> > >  src/intel/genxml/gen9.xml                | 208 +++++++++++------------
> > >  src/intel/tools/aub_read.c               |  22 +--
> > >  src/intel/tools/aub_read.h               |  11 +-
> > >  src/intel/tools/aubinator.c              |   8 +-
> > >  src/intel/tools/aubinator_error_decode.c |  16 ++
> > >  17 files changed, 763 insertions(+), 722 deletions(-)
> > >
> > > --
> > > 2.17.1
> > >
> > > _______________________________________________
> > > mesa-dev mailing list
> > > mesa-dev at lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> > >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181031/94e6667a/attachment.html>


More information about the mesa-dev mailing list