From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Chris Wilson <chris@chris-wilson.co.uk>,
"Thierry, Michel" <michel.thierry@intel.com>,
"intel-gfx@lists.freedesktop.org"
<intel-gfx@lists.freedesktop.org>
Subject: Re: [PATCH] drm/i915: Enable full PPGTT on gen7
Date: Tue, 9 Sep 2014 16:30:06 +0300 [thread overview]
Message-ID: <20140909133006.GH4193@intel.com> (raw)
In-Reply-To: <20140909130724.GH19343@nuc-i3427.alporthouse.com>
On Tue, Sep 09, 2014 at 02:07:24PM +0100, Chris Wilson wrote:
> On Tue, Sep 09, 2014 at 12:41:34PM +0000, Thierry, Michel wrote:
> >
> >
> > On Tue, Sep 9, 2014 at 1:34 PM, Ville Syrjälä
> > <ville.syrjala@linux.intel.com> wrote:
> > > On Tue, Sep 09, 2014 at 12:57:11PM +0100, Chris Wilson wrote:
> > > > On Fri, Sep 05, 2014 at 02:13:16PM +0100, Michel Thierry wrote:
> > > > > Use full PPGTT as the default option in gen7.
> > > > > Note that aliasing PPGTT is the default option for gen8 (see
> > HAS_PPGTT).
> > > > >
> > > > > This may well come back to bite me later.
> > > >
> > > > Indeed. So something I spotted was that bspec mentions that the per-ring
> > > > PDE registers (RING_PP_DIR_DCLV and RING_PP_DIR_BASE) are stored in
> > > the
> > > > logical context and so the registers are restored along with the
> > > > context. If this is correct what happens when we switch logical contexts
> > > > on RCS whilst we have active work on BCS etc? Does this mean that we
> > > > have to serialise context switches across rings, or is my reading of the
> > > > bspec false?
> > >
> > > How does rcs PP_DIR_* affect bcs? Also IIRC that stuff is part of
> > > the execlist context which isn't saved/restored unless execlists
> > > are actually enabled. IIRC when I tried it, snb did reserve the
> > > space for that stuff in the context image but didn't save/restore
> > > it, but ivb+ didn't even reserve the space.
> > >
> > Yes, my understanding is that these registers are per engine, and bcs
> > couldn't be affected by rcs.
>
> They are per-engine, but are they stored in the logical context (which
> is what bspec says afaict) and so reloaded with the wrong values when
> RCS executes MI_SET_CONTEXT? That is the question.
I don't see any !RCS PP_DIR_* registers listed in the execlist context.
Also BSpec says that RCS PP_DIR_* registers are stored in the power context
rather than the execlist context in ring buffer mode. BSpec is a bit thin
on what happens to these registers on other engines eg. during rc6. I guess
they must have their own power contexts.
--
Ville Syrjälä
Intel OTC
next prev parent reply other threads:[~2014-09-09 13:30 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-05 13:13 [PATCH] drm/i915: Enable full PPGTT on gen7 Michel Thierry
2014-09-08 7:43 ` Daniel Vetter
2014-09-09 11:57 ` Chris Wilson
2014-09-09 12:34 ` Ville Syrjälä
2014-09-09 12:41 ` Thierry, Michel
2014-09-09 13:07 ` Chris Wilson
2014-09-09 13:30 ` Ville Syrjälä [this message]
2014-09-09 13:55 ` Chris Wilson
2014-09-09 15:12 ` Daniel Vetter
2014-09-09 15:22 ` Chris Wilson
2014-09-09 15:29 ` Chris Wilson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140909133006.GH4193@intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=chris@chris-wilson.co.uk \
--cc=intel-gfx@lists.freedesktop.org \
--cc=michel.thierry@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.