All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@linux.intel.com>
To: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>,
	intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: ankit.k.nautiyal@intel.com
Subject: Re: [RFC v2 5/6] drm/i915/scaler: Check if vblank is sufficient for scaler
Date: Mon, 30 Dec 2024 16:17:53 +0200	[thread overview]
Message-ID: <874j2lp84u.fsf@intel.com> (raw)
In-Reply-To: <20241217180710.1048355-6-mitulkumar.ajitkumar.golani@intel.com>

On Tue, 17 Dec 2024, Mitul Golani <mitulkumar.ajitkumar.golani@intel.com> wrote:
> Check if vblank is too short for scaler prefill latency.
>
> Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> ---
>  drivers/gpu/drm/i915/display/skl_watermark.c | 22 ++++++++++++++++++++
>  1 file changed, 22 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
> index d3506e8ccd9b..a538e2b82c12 100644
> --- a/drivers/gpu/drm/i915/display/skl_watermark.c
> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c
> @@ -2292,6 +2292,27 @@ static int icl_build_plane_wm(struct intel_crtc_state *crtc_state,
>  	return 0;
>  }
>  
> +static int
> +scaler_prefill_time(const struct intel_crtc_state *crtc_state)
> +{
> +	const struct intel_crtc_scaler_state *scaler_state =
> +					&crtc_state->scaler_state;
> +	int scaler_users = scaler_state->scaler_users;
> +	int count = 0;
> +	int hscale = scaler_state->scalers[0].hscale;
> +	int vscale = scaler_state->scalers[0].vscale;
> +
> +	while (scaler_users) {
> +		count += scaler_users & 1;
> +		scaler_users >>= 1;
> +	}

See the hweight* family of functions for counting bits.

BR,
Jani.

> +
> +	if (count > 1)
> +		return (4 * crtc_state->linetime * hscale * vscale);
> +	else
> +		return (4 * crtc_state->linetime);
> +}
> +
>  static bool
>  skl_is_vblank_too_short(const struct intel_crtc_state *crtc_state,
>  			int wm0_lines, int latency)
> @@ -2302,6 +2323,7 @@ skl_is_vblank_too_short(const struct intel_crtc_state *crtc_state,
>  	/* FIXME missing scaler and DSC pre-fill time */
>  	return crtc_state->framestart_delay +
>  		intel_usecs_to_scanlines(adjusted_mode, latency) +
> +		scaler_prefill_time(crtc_state) +
>  		wm0_lines >
>  		adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
>  }

-- 
Jani Nikula, Intel

  parent reply	other threads:[~2024-12-30 14:18 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-12-17 18:07 [RFC v2 0/6] Check if is vblank too short Mitul Golani
2024-12-17 18:07 ` [RFC v2 1/6] drm/i915/scaler: Add and compute scaling factors Mitul Golani
2024-12-23  8:28   ` Nautiyal, Ankit K
2025-01-06 16:59     ` Golani, Mitulkumar Ajitkumar
2024-12-17 18:07 ` [RFC v2 2/6] drm/i915/scaler: Add member to track scaler user Mitul Golani
2024-12-23  8:29   ` Nautiyal, Ankit K
2024-12-17 18:07 ` [RFC v2 3/6] drm/i915/scaler: Use crtc_state to setup plane or pipe scaler Mitul Golani
2024-12-23  9:09   ` Nautiyal, Ankit K
2024-12-17 18:07 ` [RFC v2 4/6] drm/i915/scaler: Compute scling factors for " Mitul Golani
2024-12-23  9:52   ` Nautiyal, Ankit K
2024-12-17 18:07 ` [RFC v2 5/6] drm/i915/scaler: Check if vblank is sufficient for scaler Mitul Golani
2024-12-23  9:59   ` Nautiyal, Ankit K
2024-12-30 14:17   ` Jani Nikula [this message]
2024-12-17 18:07 ` [RFC v2 6/6] drm/i915/dsc: Check if dsc prefill sufficient for vblank Mitul Golani
2024-12-23 10:05   ` Nautiyal, Ankit K
2024-12-17 23:04 ` ✓ CI.Patch_applied: success for Check if is vblank too short Patchwork
2024-12-17 23:04 ` ✓ CI.checkpatch: " Patchwork
2024-12-17 23:05 ` ✓ CI.KUnit: " Patchwork
2024-12-17 23:23 ` ✓ CI.Build: " Patchwork
2024-12-17 23:26 ` ✓ CI.Hooks: " Patchwork
2024-12-17 23:27 ` ✗ CI.checksparse: warning " Patchwork
2024-12-18  0:00 ` ✗ Xe.CI.BAT: failure " Patchwork
2024-12-18  9:07 ` ✗ Fi.CI.SPARSE: warning " Patchwork
2024-12-18  9:19 ` ✗ i915.CI.BAT: failure " Patchwork
2024-12-18  9:24 ` ✗ Xe.CI.Full: " 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=874j2lp84u.fsf@intel.com \
    --to=jani.nikula@linux.intel.com \
    --cc=ankit.k.nautiyal@intel.com \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=mitulkumar.ajitkumar.golani@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.