On 05/02/2013 01:08 PM, Paul Berry wrote:
On 2 May 2013 12:54, Chris Wilson <ch...@chris-wilson.co.uk
<mailto:ch...@chris-wilson.co.uk>> wrote:

    On Thu, May 02, 2013 at 09:07:08AM -0700, Eric Anholt wrote:
     > Chris Wilson <ch...@chris-wilson.co.uk
    <mailto:ch...@chris-wilson.co.uk>> writes:
     >
     > > On Thu, May 02, 2013 at 07:26:06AM -0700, Paul Berry wrote:
     > >>    Can you provide a documentation reference for why the value
    we're
     > >>    currently programming (0xfffff001) is unsafe, and why
    0x7fff0001 is
     > >>    correct?� I don't see anything in the bspec.
     > >
     > > The largest GTT size for gen6 is 2GiB (it can be smaller on the
    whim of
     > > the BIOS, though we try to reset it back to 2GiB in i915.ko).
    The upper
     > > bound is used by the hardware to prevent invalid reads and
    return 0,
     > > this is the value we program to ~4GiB. The cause of these hangs
    is the
     > > constant data being read from addresses above 2GiB i.e. beyond
    the end
     > > of the GTT - and so prevented by programming the upper bound to
    the end
     > > of the GTT. Those with access to the simulator can hopefully verify
     > > this, and perhaps we should add this to the set of known bad
    commands in
     > > igt.
     >
     > The simulator has no complaints about these batches.
     >
     > I don't think your model of how the constants work (that there's some
     > undefined, possibly >2gb address being loaded at shader dispatch
    time,
     > which is fixed by sending these packets) is actually how they work --
     > From my reading, the constants are loaded at constant packet time
    into a
     > small buffer on the GPU.  If the last packet and the shader disagree
     > about that buffer, the GPU sometimes blows up.

    That wouldn't explain why setting the DynamicStateUpperBound to 2GiB
    also works around the hang, would it?
    -Chris


Oh, it wasn't clear from your previous email that this was the case.  In
that case I like Ken's suggestion of setting the DynamicStateUpperBound
to the end of the batch buffer.  I think it's sensible to apply Eric's
fix as well, just to be on the safe side.

Ken, how long ago did you bump the kernel requirement to ensure relaxed
relocation support?  If it was recent, then Eric's fix should be the one
we backport to stable releases.

About a month ago, on master.  So not on 9.1.

We should cherry-pick Eric's fix to 9.1 ASAP and do a release, hopefully next week sometime.
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to