public inbox for intel-gfx@lists.freedesktop.org
 help / color / mirror / Atom feed
From: Matt Roper <matthew.d.roper@intel.com>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 07/16] drm/i915/gen9: Allow skl_allocate_pipe_ddb() to operate on in-flight state
Date: Wed, 13 Apr 2016 18:58:08 -0700	[thread overview]
Message-ID: <20160414015808.GS22764@intel.com> (raw)
In-Reply-To: <570386E3.2070106@linux.intel.com>

On Tue, Apr 05, 2016 at 11:35:31AM +0200, Maarten Lankhorst wrote:
> Op 01-04-16 om 03:46 schreef Matt Roper:
> > We eventually want to calculate watermark values at atomic 'check' time
> > instead of atomic 'commit' time so that any requested configurations
> > that result in impossible watermark requirements are properly rejected.
> > The first step along this path is to allocate the DDB at atomic 'check'
> > time.  As we perform this transition, allow the main allocation function
> > to operate successfully on either an in-flight state or an
> > already-commited state.  Once we complete the transition in a future
> > patch, we'll come back and remove the unnecessary logic for the
> > already-committed case.
> >
> > Note one other minor change here...when working with the
> > already-committed state, we pull the active CRTC's from
> > hweight(dev_priv->active_crtcs) instead of
> > dev_priv->wm.config.num_pipes_active.  The values should be equivalent,
> > but dev_priv->wm.config is pretty much unused at this point and it would
> > be nice to eventually remove it entirely.
> > ---
...
> > @@ -3078,13 +3109,26 @@ skl_allocate_pipe_ddb(struct intel_crtc_state *cstate,
> >  	total_data_rate = skl_get_total_relative_data_rate(cstate);
> >  
> >  	start = alloc->start;
> > -	for_each_intel_plane_on_crtc(dev, intel_crtc, intel_plane) {
> > +	for_each_intel_plane_mask(dev, intel_plane, cstate->base.plane_mask) {
> >  		struct drm_plane *plane = &intel_plane->base;
> > -		struct drm_plane_state *pstate = intel_plane->base.state;
> > +		struct drm_plane_state *pstate;
> >  		unsigned int data_rate, y_data_rate;
> >  		uint16_t plane_blocks, y_plane_blocks = 0;
> >  		int id = skl_wm_plane_id(intel_plane);
> >  
> > +		/*
> > +		 * TODO: Remove support for already-committed state once we
> > +		 * only allocate DDB on in-flight states.
> > +		 */
> > +		if (cstate->base.state) {
> > +			pstate = drm_atomic_get_plane_state(cstate->base.state,
> > +							    plane);
> >
> Yuck again? :( No way around this by storing data rates for example?

Is there a reason to try to avoid grabbing the plane state here?  If we
get here, then we already have the CRTC lock, so we're not preventing
any potential for parallel updates of this plane (at least not on Intel
hardware where planes are tied to the CRTC).

> Oh well, at least set cstate->base.planes_changed please.

I'm not sure I follow this one.  We're using pstate in a read-only
manner so nothing we're doing here should necessitate programming planes
as far as I can see.


Matt


-- 
Matt Roper
Graphics Software Engineer
IoTG Platform Enabling & Development
Intel Corporation
(916) 356-2795
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

  reply	other threads:[~2016-04-14  1:58 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-04-01  1:46 [PATCH 00/16] Pre-calculate SKL-style atomic watermarks Matt Roper
2016-04-01  1:46 ` [PATCH 01/16] drm/i915: Reorganize WM structs/unions in CRTC state Matt Roper
2016-04-01  1:46 ` [PATCH 02/16] drm/i915: Make skl_plane_relative_data_rate use passed " Matt Roper
2016-04-01  1:46 ` [PATCH 03/16] drm/i915: Rename s/skl_compute_pipe_wm/skl_build_pipe_wm/ Matt Roper
2016-04-01  1:46 ` [PATCH 04/16] drm/i915/skl+: Use plane size for relative data rate calculation Matt Roper
2016-04-06 15:09   ` Imre Deak
2016-04-06 18:05     ` Matt Roper
2016-04-01  1:46 ` [PATCH 05/16] drm/i915/gen9: Allow calculation of data rate for in-flight state Matt Roper
2016-04-01  1:46 ` [PATCH 06/16] drm/i915: Ensure intel_state->active_crtcs is always set Matt Roper
2016-04-05  9:29   ` Maarten Lankhorst
2016-04-01  1:46 ` [PATCH 07/16] drm/i915/gen9: Allow skl_allocate_pipe_ddb() to operate on in-flight state Matt Roper
2016-04-05  9:35   ` Maarten Lankhorst
2016-04-14  1:58     ` Matt Roper [this message]
2016-04-18 12:56       ` Maarten Lankhorst
2016-04-01  1:46 ` [PATCH 08/16] drm/i915/gen9: Compute DDB allocation at atomic check time Matt Roper
2016-04-05  9:45   ` Maarten Lankhorst
2016-04-01  1:46 ` [PATCH 09/16] drm/i915/gen9: Drop re-allocation of DDB at atomic commit Matt Roper
2016-04-01  1:46 ` [PATCH 10/16] drm/i915/gen9: Calculate plane WM's from state Matt Roper
2016-04-01  1:46 ` [PATCH 11/16] drm/i915/gen9: Allow watermark calculation on in-flight atomic state Matt Roper
2016-04-05  9:52   ` Maarten Lankhorst
2016-04-01  1:46 ` [PATCH 12/16] drm/i915/gen9: Use a bitmask to track dirty pipe watermarks Matt Roper
2016-04-01  1:46 ` [PATCH 13/16] drm/i915/gen9: Propagate watermark calculation failures up the call chain Matt Roper
2016-04-01  1:46 ` [PATCH 14/16] drm/i915/gen9: Calculate watermarks during atomic 'check' Matt Roper
2016-04-05 13:01   ` Patrik Jakobsson
2016-04-01  1:46 ` [PATCH 15/16] drm/i915/gen9: Reject display updates that exceed wm limitations Matt Roper
2016-04-01  1:46 ` [PATCH 16/16] drm/i915: Remove wm_config from dev_priv/intel_atomic_state Matt Roper
2016-04-05 10:14   ` Maarten Lankhorst
2016-04-01  9:36 ` ✗ Fi.CI.BAT: warning for Pre-calculate SKL-style atomic watermarks Patchwork

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=20160414015808.GS22764@intel.com \
    --to=matthew.d.roper@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=maarten.lankhorst@linux.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