[Mesa-dev] [PATCH 4/4] intel/compiler: Add scheduler deps for instructions that implicitly read g0

Jason Ekstrand jason at jlekstrand.net
Sat Apr 21 01:59:52 UTC 2018


If Ken's good with duct tape then so am I.  Rb.

On April 20, 2018 17:54:00 Kenneth Graunke <kenneth at whitecape.org> wrote:

> On Friday, April 20, 2018 5:01:17 PM PDT Jason Ekstrand wrote:
> > On Fri, Apr 20, 2018 at 4:30 PM, Ian Romanick <idr at freedesktop.org> wrote:
> >
> > > On 04/20/2018 11:56 AM, Jason Ekstrand wrote:
> > > > Ugh... I was actually thinking about this the other day.  How did you
> > > > come up with your list of instructions?  Is there some algorithmic way
> > > > to determine it such as sends with no header?
> > >
> > > I just looked through the generator for pseudo-ops that emit explicit
> > > reads of g0.  Since it was a manual process, I may have missed some. :(
> > > I don't know of a way to automate this, but... it may be possible.  Not
> > > sure.
> > >
> >
> > We ran into a similar issue with Dota 2 on Vulkan which was fixed by
> > ff4726077d86800d33520581f154a27dac408588
> >
> > For vec4, this may be a reasonable solution.  I don't like list of
> > instructions in general but I'm a bit more ok with duct tape in vec4.
> > Adding matt & Ken in case they have opinions.
>
> Duct tape in vec4 seems good to me.  Patch is:
> Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
>
> In the scalar backend, we're trying to move away from these implicit
> things happening in the generator, and just make them visible to the
> visitor (like Jason did).
>
> I suspect that just about everything that turns into a SEND message
> will need g0 for FFTID - the shared functions need the fixed-function
> thread ID to know where to send the return message.  It might be passed
> as side-band though and not actually read as part of g0...so we probably
> can't do anything that simple...
>
> But as I said, R-b.  I certainly wouldn't advocate spending more time
> in vec4 than you have to.





More information about the mesa-dev mailing list