From: Daniel Vetter <daniel@ffwll.ch>
To: Matt Roper <matthew.d.roper@intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 2/3] drm/i915/gen9: Compute data rates for all planes on first commit
Date: Mon, 20 Jun 2016 14:47:11 +0200 [thread overview]
Message-ID: <20160620124711.GA23520@phenom.ffwll.local> (raw)
In-Reply-To: <20160617210307.GF14404@intel.com>
On Fri, Jun 17, 2016 at 02:03:07PM -0700, Matt Roper wrote:
> On Mon, Jun 13, 2016 at 04:50:31PM +0200, Daniel Vetter wrote:
> > On Thu, Jun 09, 2016 at 03:14:54PM -0700, Matt Roper wrote:
> > > When we sanitize our DDB and watermark info during the first atomic
> > > commit, we need to calculate the total data rate. Since we haven't
> > > explicitly added the planes for each CRTC to our atomic state, the total
> > > data rate calculation will try to use the cached values from a previous
> > > commit (which are 0 since there was no previous commit); this result is
> > > incorrect if we inherited any active planes from the BIOS.
> > >
> > > During our very first atomic commit, we need to explicitly add all
> > > active planes to the atomic state to ensure that valid data rate values
> > > are calculated for them. Subsequent commits will then have valid cached
> > > values to fall back on.
> > >
> > > Reported-by: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> > > Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
> > > Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
> > > ---
> > > drivers/gpu/drm/i915/intel_pm.c | 12 ++++++++++++
> > > 1 file changed, 12 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> > > index 0cd38ca..ba08639 100644
> > > --- a/drivers/gpu/drm/i915/intel_pm.c
> > > +++ b/drivers/gpu/drm/i915/intel_pm.c
> > > @@ -3933,6 +3933,18 @@ skl_compute_ddb(struct drm_atomic_state *state)
> > > if (IS_ERR(cstate))
> > > return PTR_ERR(cstate);
> > >
> > > + /*
> > > + * If this is our first commit after hw readout, we don't have
> > > + * valid data rate values cached. Add all planes to ensure we
> > > + * calculate a valid data rate.
> > > + */
> > > + if (dev_priv->wm.distrust_bios_wm) {
> > > + ret = drm_atomic_add_affected_planes(state,
> > > + &intel_crtc->base);
> >
> > Again, imo should be pulled out. Other wm code probably has the exact same
> > bug.
> > -Daniel
>
> By "pulled out" do you mean ensure the initial data rates are calculated
> at readout time? As I mentioned on the other email, we don't actually
> read out non-primary plane states, plane scaler states, etc., so we
> don't actually have all the information we need to handle this at
> readout time; out hardware and software states aren't truly in sync
> until the first atomic commit happens.
>
> We should get better at reading out more hardware state, but that's a
> bit more involved and I've been short on upstream development time
> lately so I wanted to make sure I had a timely fix for the regressions
> Tvrtko reported.
One more I forgot in the other reply: We force-disable non-primary planes.
Hence wm state for those are kinda irrelevant. Again I think it's best to
group all this together with the plane readout/fb reconstruction code, so
that we have all the plane readout logic in one place. I know that we
already need to have the split between modeset readoud and plane
reconstruction, and that's imo bad enough. If possible I'd like if we
don't have to split it further into a separate plane/wm fixup path that's
hiding in the atomic_check code somewhere.
-Daniel
>
>
> Matt
>
> >
> > > + if (ret)
> > > + return ret;
> > > + }
> > > +
> > > ret = skl_allocate_pipe_ddb(cstate, ddb);
> > > if (ret)
> > > return ret;
> > > --
> > > 2.1.4
> > >
> > > _______________________________________________
> > > Intel-gfx mailing list
> > > Intel-gfx@lists.freedesktop.org
> > > https://lists.freedesktop.org/mailman/listinfo/intel-gfx
> >
> > --
> > Daniel Vetter
> > Software Engineer, Intel Corporation
> > http://blog.ffwll.ch
>
> --
> Matt Roper
> Graphics Software Engineer
> IoTG Platform Enabling & Development
> Intel Corporation
> (916) 356-2795
--
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-06-20 12:47 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-09 22:14 [PATCH 0/3] SKL watermark fixes for !fbcon Matt Roper
2016-06-09 22:14 ` [PATCH 1/3] drm/i915/gen9: Initialize intel_state->active_crtcs during WM sanitization Matt Roper
2016-06-13 8:59 ` Maarten Lankhorst
2016-06-13 9:02 ` Maarten Lankhorst
2016-06-13 14:49 ` Daniel Vetter
2016-06-17 21:00 ` Matt Roper
2016-06-20 12:44 ` Daniel Vetter
2016-06-09 22:14 ` [PATCH 2/3] drm/i915/gen9: Compute data rates for all planes on first commit Matt Roper
2016-06-13 9:04 ` Maarten Lankhorst
2016-06-13 14:50 ` Daniel Vetter
2016-06-17 21:03 ` Matt Roper
2016-06-20 12:47 ` Daniel Vetter [this message]
2016-06-09 22:14 ` [PATCH 3/3] drm/i915/gen9: Drop invalid WARN() during data rate calculation Matt Roper
2016-06-13 9:33 ` Maarten Lankhorst
2016-06-13 9:38 ` [PATCH i-g-t] kms_universal_plane: Add testcase for when no plane is visible on the crtc Maarten Lankhorst
2016-06-17 21:25 ` [PATCH 3/3] drm/i915/gen9: Drop invalid WARN() during data rate calculation Matt Roper
2016-06-10 6:24 ` ✗ Ro.CI.BAT: failure for SKL watermark fixes for !fbcon Patchwork
2016-06-10 14:20 ` Matt Roper
2016-06-10 7:28 ` [PATCH 0/3] " Jani Nikula
2016-06-10 14:17 ` Matt Roper
2016-06-10 8:48 ` Tvrtko Ursulin
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=20160620124711.GA23520@phenom.ffwll.local \
--to=daniel@ffwll.ch \
--cc=intel-gfx@lists.freedesktop.org \
--cc=matthew.d.roper@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox