From: "Nautiyal, Ankit K" <ankit.k.nautiyal@intel.com>
To: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>,
<intel-gfx@lists.freedesktop.org>,
<intel-xe@lists.freedesktop.org>
Subject: Re: [RFC v2 6/6] drm/i915/dsc: Check if dsc prefill sufficient for vblank
Date: Mon, 23 Dec 2024 15:35:21 +0530 [thread overview]
Message-ID: <8ff6708a-ba90-4fbc-acbe-ce4a71fafdca@intel.com> (raw)
In-Reply-To: <20241217180710.1048355-7-mitulkumar.ajitkumar.golani@intel.com>
On 12/17/2024 11:37 PM, Mitul Golani wrote:
> Check if dsc prefill latency is sufficient for vblank.
>
> Signed-off-by: Mitul Golani <mitulkumar.ajitkumar.golani@intel.com>
> ---
> drivers/gpu/drm/i915/display/skl_watermark.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)
>
> diff --git a/drivers/gpu/drm/i915/display/skl_watermark.c b/drivers/gpu/drm/i915/display/skl_watermark.c
> index a538e2b82c12..0f1ee755fd8a 100644
> --- a/drivers/gpu/drm/i915/display/skl_watermark.c
> +++ b/drivers/gpu/drm/i915/display/skl_watermark.c
> @@ -2292,6 +2292,25 @@ static int icl_build_plane_wm(struct intel_crtc_state *crtc_state,
> return 0;
> }
>
> +static int
> +skl_dsc_prefill_time(const struct intel_crtc_state *crtc_state)
> +{
> + const struct intel_crtc_scaler_state *scaler_state =
> + &crtc_state->scaler_state;
> + int hscale = scaler_state->scalers[0].hscale;
> + int vscale = scaler_state->scalers[0].vscale;
> +
> + if (!crtc_state->dsc.compression_enable)
> + return 0;
> + /*
> + * FIXME: CDCLK Prefill adjustment to add
> + */
> + if (scaler_state->scaler_users)
> + return DIV_ROUND_UP(15 * crtc_state->linetime * hscale * vscale, 10);
As mentioned in previous patch, hscale and vscale are left shifted
values, need to compute this precisely.
Also as per spec for pipe scaler is used for 444 to 420 conversion.
Chroma subsampling is a 2x downscale. So need to account for it.
Regards,
Ankit
> +
> + return 0;
> +}
> +
> static int
> scaler_prefill_time(const struct intel_crtc_state *crtc_state)
> {
> @@ -2324,6 +2343,7 @@ skl_is_vblank_too_short(const struct intel_crtc_state *crtc_state,
> return crtc_state->framestart_delay +
> intel_usecs_to_scanlines(adjusted_mode, latency) +
> scaler_prefill_time(crtc_state) +
> + skl_dsc_prefill_time(crtc_state) +
> wm0_lines >
> adjusted_mode->crtc_vtotal - adjusted_mode->crtc_vblank_start;
> }
next prev parent reply other threads:[~2024-12-23 10:05 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
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 [this message]
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=8ff6708a-ba90-4fbc-acbe-ce4a71fafdca@intel.com \
--to=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.