On Tue, Oct 28, 2025 at 05:37:36PM +0530, Ankit Nautiyal wrote: > This is a resend of the patch series [1] originally submitted by > Nemesa Garg <[email protected]> to: > - [email protected] > - [email protected] > - [email protected] > > One of the patches was missed by Patchwork, which caused the xe CI to skip > running tests for the full series. To ensure proper CI coverage and > results, I’ve applied the series on top of the latest tree and regenerated > it using `git format-patch`. > > [1] https://patchwork.freedesktop.org/series/138754/ > > > --- Original cover letter follows --- > > Many a times images are blurred or upscaled content is also not as > crisp as original rendered image. Traditional sharpening techniques often > apply a uniform level of enhancement across entire image, which sometimes > result in over-sharpening of some areas and potential loss of natural details. > > Intel has come up with Display Engine based adaptive sharpening filter > with minimal power and performance impact. From LNL onwards, the Display > hardware can use one of the pipe scaler for adaptive sharpness filter. > This can be used for both gaming and non-gaming use cases like photos, > image viewing. It works on a region of pixels depending on the tap size. > > This is an attempt to introduce an adaptive sharpness solution which > helps in improving the image quality. For this new CRTC property is added. > The user can set this property with desired sharpness strength value with > 0-255. A value of 1 representing minimum sharpening strength and 255 > representing maximum sharpness strength. A strength value of 0 means no > sharpening or sharpening feature disabled. > It works on a region of pixels depending on the tap size. The coefficients > are used to generate an alpha value which is used to blend the sharpened > image to original image. > > Middleware MR link: > https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3665 > IGT patchwork link: https://patchwork.freedesktop.org/series/130218/ > > Continuing discussions from: https://patchwork.freedesktop.org/series/129888/ > > https://invent.kde.org/plasma/kwin/-/merge_requests/7689 > Got ack from kwin maintainer on the UAPI patch. > > Nemesa Garg (10): > drm/drm_crtc: Introduce sharpness strength property > drm/i915/display: Introduce HAS_CASF for sharpness support > drm/i915/display: Add CASF strength and winsize > drm/i915/display: Add filter lut values > drm/i915/display: Compute the scaler coefficients > drm/i915/display: Add and compute scaler parameter > drm/i915/display: Configure the second scaler > drm/i915/display: Set and get the casf config > drm/i915/display: Enable/disable casf > drm/i915/display: Expose sharpness strength property
The i915 part of this needs a rewrite: - it needs to properly integrated into skl_scaler.c instead of reimplementing half of it - for some reason it's doing stuff in the pre/post plane update hooks instead of from the vblank evade critical section, which means the updates won't be atomic and also can't be executed via DSB - the state computation is in the wrong place. It should be part of compute_config() but now it's somewhere later where it's screwing up the prefill stuff again (I can't land the final prefill fixes now because this laded in the meantime). > > drivers/gpu/drm/drm_atomic_uapi.c | 4 + > drivers/gpu/drm/drm_crtc.c | 35 +++ > drivers/gpu/drm/i915/Makefile | 1 + > drivers/gpu/drm/i915/display/intel_casf.c | 293 ++++++++++++++++++ > drivers/gpu/drm/i915/display/intel_casf.h | 22 ++ > .../gpu/drm/i915/display/intel_casf_regs.h | 33 ++ > drivers/gpu/drm/i915/display/intel_crtc.c | 3 + > .../drm/i915/display/intel_crtc_state_dump.c | 5 + > drivers/gpu/drm/i915/display/intel_display.c | 37 ++- > .../drm/i915/display/intel_display_device.h | 1 + > .../drm/i915/display/intel_display_types.h | 15 + > drivers/gpu/drm/i915/display/skl_scaler.c | 91 +++++- > drivers/gpu/drm/i915/display/skl_scaler.h | 2 + > drivers/gpu/drm/xe/Makefile | 1 + > include/drm/drm_crtc.h | 18 ++ > 15 files changed, 548 insertions(+), 13 deletions(-) > create mode 100644 drivers/gpu/drm/i915/display/intel_casf.c > create mode 100644 drivers/gpu/drm/i915/display/intel_casf.h > create mode 100644 drivers/gpu/drm/i915/display/intel_casf_regs.h > > -- > 2.45.2 -- Ville Syrjälä Intel
