From: Ankit Nautiyal <ankit.k.nautiyal@intel.com>
To: intel-gfx@lists.freedesktop.org, intel-xe@lists.freedesktop.org
Cc: jani.nikula@linux.intel.com, imre.deak@intel.com,
Ankit Nautiyal <ankit.k.nautiyal@intel.com>
Subject: [PATCH 00/17] Account for DSC bubble overhead for horizontal slices
Date: Fri, 30 Jan 2026 13:47:55 +0530 [thread overview]
Message-ID: <20260130081812.32087-1-ankit.k.nautiyal@intel.com> (raw)
When DSC is enabled on a pipe, the pipe pixel rate input to cdclk frequency
and pipe joiner calculations needs to be adjusted to account for
compression overhead: specifically, the "bubbles" added at each horizontal
slice boundary. This overhead has always existed, even on earlier
platforms, but was not previously accounted for.
Currently, the number of joined pipes is computed much earlier than the
decision to use DSC: both during the mode_valid phase for each mode and in
the compute_config phase for a given mode. As a result, the DSC bubble
overhead cannot be considered when determining the number of pipes to join,
which may lead to incorrect configurations.
This series refactors the sequence of steps used to determine the number of
pipes to be joined and the DSC policy. The first few patches restructure
the mode_valid and compute config logic to make room for DSC bubble
overhead accounting. With these, we iterate over joiner candidates and
select the minimal joiner configuration that satisfies the
mode-requirements. The later patches introduce the actual overhead
adjustment and use it for: the minimum cdclk requirements with DSC,
SST mode_valid logic, and SST/MST compute_config logic.
Rev 2:
- Refactor joiner computation for compute config.
- Refactor DSC BW calculation.
- Add overhead for SST/MST compute config phase for recomputing joiner
requirements for DSC.
- NOTE:
- For Patch#7 (drm/i915/dp: Rework pipe joiner logic in mode_valid)
git diff = --patience is used for better readability.
Rev 3:
- Use diff = --patience in format-patch for better readability.
- Add a macro to iterate over the joiner candidates.
- Add a separate helper to check pixel rate against dotclock limit.
- Add patch from Chaitanya for additional platform specific
limitations [1].
[1] https://patchwork.freedesktop.org/patch/661952/?series=151047&rev=1
Rev 4:
- Address review comments from Jani and Imre.
- Drop enum for joiner candidates and iterate over num of pipes joined.
- Rename some of the helpers.
- Split the patch to check for pixel limit for max uncompressed
dotclock into PTL and other platforms. For PTL the bspec and HSDES
matches, but for other platforms need to confirm the need for the
limits.
Rev 5:
- Address comments from Imre.
- Add a patch to remove joiner helpers that are no longer required.
- Dropped the patch to replace the joiner loops with an iterator; will
follow up this separately.
- Modified the patch to enforce pixel limit for max uncomprssed
dotclock for pre PTL platforms, and added the limit only for WCL.
Limits for prior platforms is intentionally left to avoid regression
on these platforms and deal with them if there are actual issues
reported.
- Use diff = --histogram as its seen to work better for this series as
also suggested by Imre.
Rev 6:
- Address comments from Imre.
- Re-add the patch to replace the joiner loops with iterator; [credits to
Imre to figure it out and for the suggested changes.]
Ankit Nautiyal (15):
drm/i915/dp: Early reject bad hdisplay in intel_dp_mode_valid
drm/i915/dp: Move num_joined_pipes and related checks together
drm/i915/dp: Extract helper to get the hdisplay limit
drm/i915/dp: Rework pipe joiner logic in mode_valid
drm/i915/dp: Rework pipe joiner logic in compute_config
drm/i915/dp_mst: Move the check for dotclock at the end
drm/i915/dp_mst: Move the joiner dependent code together
drm/i915/dp_mst: Rework pipe joiner logic in mode_valid
drm/i915/dp_mst: Extract helper to compute link for given joiner
config
drm/i915/dp_mst: Rework pipe joiner logic in compute_config
drm/i915/dp: Remove unused joiner helpers
drm/i915/dp: Introduce helper to check pixel rate against dotclock
limits
drm/i915/dp: Refactor dsc_slice_count handling in
intel_dp_mode_valid()
drm/i915/dp: Account for DSC slice overhead
drm/i915/dp: Add helpers for joiner candidate loops
Chaitanya Kumar Borah (2):
drm/i915/display: Add upper limit check for pixel clock
drm/i915/display: Extend the max dotclock limit to WCL
drivers/gpu/drm/i915/display/intel_display.c | 19 ++
drivers/gpu/drm/i915/display/intel_display.h | 1 +
drivers/gpu/drm/i915/display/intel_dp.c | 312 ++++++++++++-------
drivers/gpu/drm/i915/display/intel_dp.h | 19 +-
drivers/gpu/drm/i915/display/intel_dp_mst.c | 186 +++++++----
drivers/gpu/drm/i915/display/intel_vdsc.c | 1 -
drivers/gpu/drm/i915/display/intel_vdsc.h | 3 +
7 files changed, 367 insertions(+), 174 deletions(-)
--
2.45.2
next reply other threads:[~2026-01-30 8:34 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-30 8:17 Ankit Nautiyal [this message]
2026-01-30 8:17 ` [PATCH 01/17] drm/i915/dp: Early reject bad hdisplay in intel_dp_mode_valid Ankit Nautiyal
2026-01-30 8:17 ` [PATCH 02/17] drm/i915/dp: Move num_joined_pipes and related checks together Ankit Nautiyal
2026-01-30 8:17 ` [PATCH 03/17] drm/i915/dp: Extract helper to get the hdisplay limit Ankit Nautiyal
2026-01-30 8:17 ` [PATCH 04/17] drm/i915/dp: Rework pipe joiner logic in mode_valid Ankit Nautiyal
2026-02-02 8:40 ` Imre Deak
2026-02-02 9:24 ` Nautiyal, Ankit K
2026-02-02 9:27 ` Imre Deak
2026-02-02 9:29 ` Nautiyal, Ankit K
2026-01-30 8:18 ` [PATCH 05/17] drm/i915/dp: Rework pipe joiner logic in compute_config Ankit Nautiyal
2026-01-30 8:18 ` [PATCH 06/17] drm/i915/dp_mst: Move the check for dotclock at the end Ankit Nautiyal
2026-01-30 8:18 ` [PATCH 07/17] drm/i915/dp_mst: Move the joiner dependent code together Ankit Nautiyal
2026-01-30 8:18 ` [PATCH 08/17] drm/i915/dp_mst: Rework pipe joiner logic in mode_valid Ankit Nautiyal
2026-02-02 8:50 ` Imre Deak
2026-01-30 8:18 ` [PATCH 09/17] drm/i915/dp_mst: Extract helper to compute link for given joiner config Ankit Nautiyal
2026-01-30 8:18 ` [PATCH 10/17] drm/i915/dp_mst: Rework pipe joiner logic in compute_config Ankit Nautiyal
2026-01-30 8:18 ` [PATCH 11/17] drm/i915/dp: Remove unused joiner helpers Ankit Nautiyal
2026-01-30 8:18 ` [PATCH 12/17] drm/i915/dp: Introduce helper to check pixel rate against dotclock limits Ankit Nautiyal
2026-01-30 8:18 ` [PATCH 13/17] drm/i915/dp: Refactor dsc_slice_count handling in intel_dp_mode_valid() Ankit Nautiyal
2026-01-30 8:18 ` [PATCH 14/17] drm/i915/dp: Account for DSC slice overhead Ankit Nautiyal
2026-01-30 8:18 ` [PATCH 15/17] drm/i915/dp: Add helpers for joiner candidate loops Ankit Nautiyal
2026-02-02 8:51 ` Imre Deak
2026-01-30 8:18 ` [PATCH 16/17] drm/i915/display: Add upper limit check for pixel clock Ankit Nautiyal
2026-01-30 8:18 ` [PATCH 17/17] drm/i915/display: Extend the max dotclock limit to WCL Ankit Nautiyal
2026-01-30 8:41 ` ✗ CI.checkpatch: warning for Account for DSC bubble overhead for horizontal slices (rev6) Patchwork
2026-01-30 8:42 ` ✓ CI.KUnit: success " Patchwork
2026-01-30 8:58 ` ✗ CI.checksparse: warning " Patchwork
2026-01-30 9:15 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-01-30 11:10 ` Nautiyal, Ankit K
-- strict thread matches above, loose matches on Subject: below --
2026-02-02 10:37 [PATCH 00/17] Account for DSC bubble overhead for horizontal slices Ankit Nautiyal
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=20260130081812.32087-1-ankit.k.nautiyal@intel.com \
--to=ankit.k.nautiyal@intel.com \
--cc=imre.deak@intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=jani.nikula@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