[Intel-gfx] [RFC 0/3] render state initialization (bdw rc6)

Ben Widawsky ben at bwidawsk.net
Wed Apr 23 20:04:48 CEST 2014


On Tue, Apr 22, 2014 at 09:51:56PM +0100, Chris Wilson wrote:
> On Tue, Apr 22, 2014 at 08:19:41PM +0300, Mika Kuoppala wrote:
> > Hi,
> > 
> > Here are patches to initialize first render context to a hopefully, 
> > valid state. If pipeline/context is not initialized and we enter rc6 on bdw,
> > the render ring can hung on the first batch submitted. That is atleast
> > the hypothesis this work is based on.
> > 
> > The states are stripped from rendercopy_genX's from i-g-t/lib and
> > the state generators are part of i-g-t also. The states are
> > propably overshoot from what can be consider the minimal valid
> > (null) state on the pipeline. I just initialized everything rendercopy
> > does and haven't really put effort on optimizing the state until
> > I get some test results that this indeed solves anything.
> > 
> > The state generators can be found here but they are not needed for testing.
> > http://cgit.freedesktop.org/~miku/intel-gpu-tools/log/?h=null_state_gen
> > 
> > Gen7 and Gen8 seems to atleast survive the boot but Gen6 is totally
> > untested.
> > 
> > Here is the branch for testing:
> > http://cgit.freedesktop.org/~miku/drm-intel/log/?h=render_state
> > 
> > I am interested to know if these patches make matters better/worse for those
> > who have issues with first batch hanging on bdw, but as always, any feedback
> > is greatly appreciated.
> > 
> > Mika Kuoppala (3):
> >   drm/i915: export vmap_batch from command parser
> It's only a single page, it does not need to be vmapped.
> 
> >   drm/i915: add render state initialization
> >   drm/i915: add null render states for gen6, gen7 and gen8
> 
> I still don't buy that this is anything more than papering over a
> problem. The state you load into the context is invalid as soon as it is
> executed, which may lead to problems, we don't know since the problem is
> not being discussed, and it will certainly be more explicit if the right
> bits are poked into the context directly to keep the hw from falling over.
> -Chris
> 

Paper is better than no paper. Anyway there are a couple of units where
we know NULL is better than not NULL (VFE is one). I have been unable to
get an exact reason why this is needed so that we know exactly what to
fix. It has been a very frustrating experience.

We could try to get info on what Windows does, but we may not be able to
get a, "why."

-- 
Ben Widawsky, Intel Open Source Technology Center



More information about the Intel-gfx mailing list