From: "Ville Syrjälä" <ville.syrjala@linux.intel.com>
To: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Cc: intel-gfx@lists.freedesktop.org
Subject: Re: [PATCH 2/3] drm/i915: Enable IPS for sprite plane
Date: Mon, 20 Nov 2017 13:25:44 +0200 [thread overview]
Message-ID: <20171120112544.GS10981@intel.com> (raw)
In-Reply-To: <fbea9ce4-7809-45b4-55e9-d1798f09a150@linux.intel.com>
On Mon, Nov 20, 2017 at 12:12:40PM +0100, Maarten Lankhorst wrote:
> Op 17-11-17 om 16:55 schreef Ville Syrjälä:
> > On Fri, Nov 17, 2017 at 04:37:55PM +0100, Maarten Lankhorst wrote:
> >> Signed-off-by: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
> >> ---
> >> drivers/gpu/drm/i915/intel_display.c | 13 ++++++-------
> >> 1 file changed, 6 insertions(+), 7 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
> >> index 8283e80597bd..38a1cdb3dbb2 100644
> >> --- a/drivers/gpu/drm/i915/intel_display.c
> >> +++ b/drivers/gpu/drm/i915/intel_display.c
> >> @@ -5044,7 +5044,7 @@ static void intel_post_plane_update(struct intel_crtc_state *old_crtc_state)
> >> intel_fbc_post_update(crtc);
> >>
> >> if (primary_state->base.visible &&
> >> - (needs_modeset(&pipe_config->base) ||
> >> + (pipe_config->disable_cxsr ||
> >> !old_primary_state->base.visible))
> >> intel_post_enable_primary(&crtc->base, pipe_config);
> >> }
> >> @@ -5064,7 +5064,7 @@ static void intel_pre_plane_update(struct intel_crtc_state *old_crtc_state,
> >> struct intel_atomic_state *old_intel_state =
> >> to_intel_atomic_state(old_state);
> >>
> >> - if (needs_modeset(&pipe_config->base) || !pipe_config->ips_enabled)
> >> + if (pipe_config->disable_cxsr || !pipe_config->ips_enabled)
> > What does IPS have to do with cxsr?
> Nothing, laziness. disable cxsr is set when planes get disabled.
> >> hsw_disable_ips(old_crtc_state);
> >>
> >> if (old_pri_state) {
> >> @@ -6224,12 +6224,11 @@ static bool pipe_config_supports_ips(struct drm_i915_private *dev_priv,
> >> visible_planes = pipe_config->active_planes & ~BIT(PLANE_CURSOR);
> >>
> >> /*
> >> - * FIXME IPS should be fine as long as one plane is
> >> - * enabled, but in practice it seems to have problems
> >> - * when going from primary only to sprite only and vice
> >> - * versa.
> >> + * IPS should be fine as long as one plane is enabled, but
> >> + * temporarily disable it when when going from primary only
> >> + * to sprite only and vice versa.
> >> */
> >> - if (visible_planes != BIT(PLANE_PRIMARY))
> >> + if (hweight32(visible_planes) != 1)
> >> return false;
> > That should just be
> > if (active_planes == 0)
> > return false;
> >
> > assuming we have no problems with the toggling between
> > primary only and sprite only.
> >
> > I can't recall how the cursor affecrs IPS. But I think IPS should
> > work as long as any plane (including the cursor) is enabled.
> But cursor visibility can change without the full atomic commit, so it's too unreliable to take into
> account with the calculations.
Hmm. I guess we can ignore the cursor then. It's generally pretty
small, so probably no huge benefit from using IPS with cursor only
anyway.
>
> What happens when it doesn't work well? Would it be caught by any tests?
I think it should be caught by CRCs, if we have any that capture
CRCs across plane enable/disable.
Except, there is a problem on ilk-ivb at least, maybe it went all
the way to bdw. IIRC when I last tried a test like that the CRC for
a black primary plane didn't match the CRC for no planes. And I think I
tried to eliminate gamma/csc as the source of the discrepancy without
success. Also IIRC there was always a single frame with an even stranger
CRC just after turning off the last plane.
--
Ville Syrjälä
Intel OTC
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx
next prev parent reply other threads:[~2017-11-20 11:25 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-17 15:37 [PATCH 0/3] drm/i915: Enable fastboot, v2! Maarten Lankhorst
2017-11-17 15:37 ` [PATCH 1/3] drm/i915: Make ips_enabled a property depending on whether IPS is enabled Maarten Lankhorst
2017-11-17 15:52 ` Ville Syrjälä
2017-11-20 10:48 ` Maarten Lankhorst
2017-11-20 10:58 ` Ville Syrjälä
2017-11-20 12:09 ` Maarten Lankhorst
2017-11-17 15:37 ` [PATCH 2/3] drm/i915: Enable IPS for sprite plane Maarten Lankhorst
2017-11-17 15:55 ` Ville Syrjälä
2017-11-20 11:12 ` Maarten Lankhorst
2017-11-20 11:25 ` Ville Syrjälä [this message]
2017-11-17 15:37 ` [(resend) PATCH 3/3] drm/i915: Re-enable fastboot by default Maarten Lankhorst
2017-11-17 16:46 ` ✓ Fi.CI.BAT: success for drm/i915: Enable fastboot, v2! Patchwork
2017-11-17 17:58 ` [PATCH 0/3] " Rodrigo Vivi
2017-11-17 18:04 ` ✓ Fi.CI.IGT: success for " 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=20171120112544.GS10981@intel.com \
--to=ville.syrjala@linux.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;
as well as URLs for NNTP newsgroup(s).