From: Paulo Zanoni <paulo.r.zanoni@intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: stable@vger.kernel.org
Subject: Re: [PATCH] drm/i915/gen9: fix DDB partitioning for multi-screen cases
Date: Tue, 04 Oct 2016 14:44:09 -0300 [thread overview]
Message-ID: <1475603049.2381.37.camel@intel.com> (raw)
In-Reply-To: <1475602652-17326-1-git-send-email-paulo.r.zanoni@intel.com>
Em Ter, 2016-10-04 às 14:37 -0300, Paulo Zanoni escreveu:
> With the previous code we were only recomputing the DDB partitioning
> for the CRTCs included in the atomic commit, so any other active
> CRTCs
> would end up having their DDB registers zeroed. In this patch we make
> sure that the computed state starts as a copy of the current
> partitioning, and then we only zero the DDBs that we're actually
> going to recompute.
>
> How to reproduce the bug:
> 1 - Enable the primary plane on pipe A
> 2 - Enable the primary plane on pipe B
> 3 - Enable the sprite plane on pipe A
Forgot to mention: sprite or cursor.
>
> Step 3 will zero the DDB partitioning for pipe B since it's not
> included in the commit that enabled the sprite for pipe A.
>
> I expect this to fix many FIFO underrun problems on gen9+.
>
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96226
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=96828
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97450
> Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97596
> Bugzilla: https://www.phoronix.com/scan.php?page=news_item&px=Intel-S
> kylake-Multi-Screen-Woes
> Cc: stable@vger.kernel.org
> Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com>
> ---
> drivers/gpu/drm/i915/intel_pm.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> I still have to confirm whether this closes the above bugs, but it
> certainly fixes the problem I described.
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c
> b/drivers/gpu/drm/i915/intel_pm.c
> index 425544b..0c2e252 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -3362,13 +3362,15 @@ skl_allocate_pipe_ddb(struct intel_crtc_state
> *cstate,
> int num_active;
> int id, i;
>
> + /* Clear the partitioning for disabled planes. */
> + memset(ddb->plane[pipe], 0, sizeof(ddb->plane[pipe]));
> + memset(ddb->y_plane[pipe], 0, sizeof(ddb->y_plane[pipe]));
> +
> if (WARN_ON(!state))
> return 0;
>
> if (!cstate->base.active) {
> ddb->pipe[pipe].start = ddb->pipe[pipe].end = 0;
> - memset(ddb->plane[pipe], 0, sizeof(ddb-
> >plane[pipe]));
> - memset(ddb->y_plane[pipe], 0, sizeof(ddb-
> >y_plane[pipe]));
> return 0;
> }
>
> @@ -4054,6 +4056,12 @@ skl_compute_ddb(struct drm_atomic_state
> *state)
> intel_state->wm_results.dirty_pipes = ~0;
> }
>
> + /*
> + * We're not recomputing for the pipes not included in the
> commit, so
> + * make sure we start with the current state.
> + */
> + memcpy(ddb, &dev_priv->wm.skl_hw.ddb, sizeof(*ddb));
> +
> for_each_intel_crtc_mask(dev, intel_crtc, realloc_pipes) {
> struct intel_crtc_state *cstate;
>
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2016-10-04 17:44 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-04 17:37 [PATCH] drm/i915/gen9: fix DDB partitioning for multi-screen cases Paulo Zanoni
2016-10-04 17:44 ` Paulo Zanoni [this message]
2016-10-06 11:41 ` Maarten Lankhorst
2016-10-04 18:19 ` ✓ Fi.CI.BAT: success for " Patchwork
2016-10-07 15:31 ` [PATCH] " Lyude
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=1475603049.2381.37.camel@intel.com \
--to=paulo.r.zanoni@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=stable@vger.kernel.org \
/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.