> -----Original Message-----
> From: Dmitry Baryshkov <[email protected]>
> Sent: Saturday, October 4, 2025 3:38 PM
> To: Garg, Nemesa <[email protected]>
> Cc: [email protected]; [email protected]; dri-
> [email protected]; Nautiyal, Ankit K <[email protected]>;
> G M, Adarsh <[email protected]>; Simona Vetter
> <[email protected]>
> Subject: Re: [PATCH 01/10] drm/drm_crtc: Introduce sharpness strength
> property
> 
> On Wed, Oct 01, 2025 at 12:04:51PM +0530, Nemesa Garg wrote:
> > Introduce a new crtc property "SHARPNESS_STRENGTH" that allows the
> > user to set the intensity so as to get the sharpness effect.
> > The value of this property can be set from 0-255.
> > It is useful in scenario when the output is blurry and user want to
> > sharpen the pixels. User can increase/decrease the sharpness level
> > depending on the content displayed.
> >
> > v2: Rename crtc property variable [Arun]
> >     Add modeset detail in uapi doc[Uma]
> > v3: Fix build issue
> > v4: Modify the subject line[Ankit]
> >
> > Signed-off-by: Nemesa Garg <[email protected]>
> > Reviewed-by: Ankit Nautiyal <[email protected]>
> > Tested-by: Adarsh G M <[email protected]>
> > Acked-by: Simona Vetter <[email protected]>
> > ---
> >  drivers/gpu/drm/drm_atomic_uapi.c |  4 ++++
> >  drivers/gpu/drm/drm_crtc.c        | 35 +++++++++++++++++++++++++++++++
> >  include/drm/drm_crtc.h            | 18 ++++++++++++++++
> >  3 files changed, 57 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/drm_atomic_uapi.c
> > b/drivers/gpu/drm/drm_atomic_uapi.c
> > index 85dbdaa4a2e2..b2cb5ae5a139 100644
> > --- a/drivers/gpu/drm/drm_atomic_uapi.c
> > +++ b/drivers/gpu/drm/drm_atomic_uapi.c
> > @@ -419,6 +419,8 @@ static int drm_atomic_crtc_set_property(struct
> drm_crtc *crtc,
> >             set_out_fence_for_crtc(state->state, crtc, fence_ptr);
> >     } else if (property == crtc->scaling_filter_property) {
> >             state->scaling_filter = val;
> > +   } else if (property == crtc->sharpness_strength_property) {
> > +           state->sharpness_strength = val;
> >     } else if (crtc->funcs->atomic_set_property) {
> >             return crtc->funcs->atomic_set_property(crtc, state, property,
> val);
> >     } else {
> > @@ -456,6 +458,8 @@ drm_atomic_crtc_get_property(struct drm_crtc
> *crtc,
> >             *val = 0;
> >     else if (property == crtc->scaling_filter_property)
> >             *val = state->scaling_filter;
> > +   else if (property == crtc->sharpness_strength_property)
> > +           *val = state->sharpness_strength;
> >     else if (crtc->funcs->atomic_get_property)
> >             return crtc->funcs->atomic_get_property(crtc, state, property,
> val);
> >     else {
> > diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
> > index 46655339003d..a7797d260f1e 100644
> > --- a/drivers/gpu/drm/drm_crtc.c
> > +++ b/drivers/gpu/drm/drm_crtc.c
> > @@ -229,6 +229,25 @@ struct dma_fence *drm_crtc_create_fence(struct
> drm_crtc *crtc)
> >   *                 Driver's default scaling filter
> >   *         Nearest Neighbor:
> >   *                 Nearest Neighbor scaling filter
> > + * SHARPNESS_STRENGTH:
> > + * Atomic property for setting the sharpness strength/intensity by
> userspace.
> > + *
> > + * The value of this property is set as an integer value ranging
> > + * from 0 - 255 where:
> > + *
> > + * 0: Sharpness feature is disabled(default value).
> > + *
> > + * 1: Minimum sharpness.
> > + *
> > + * 255: Maximum sharpness.
> > + *
> > + * User can gradually increase or decrease the sharpness level and can
> > + * set the optimum value depending on content.
> > + * This value will be passed to kernel through the UAPI.
> > + * The setting of this property does not require modeset.
> > + * The sharpness effect takes place post blending on the final composed
> output.
> > + * If the feature is disabled, the content remains same without any
> sharpening effect
> > + * and when this feature is applied, it enhances the clarity of the
> content.
> 
> I can repeat my question from XDC: should we extend this to negative values,
> allowing softening (unsharpening) the image?
> 
Hi Dmitry,
The un-sharpening or blurring is a very valid usecase in pre-blending where 
certain layers (data
>From clients) can be un-sharpened while some other layers can be enhanced with 
>sharpening.
This helps give  focus to the particular content and suppress the background.

However, this current property is targeted for post blending so will be
applied to the entire frame on screen, here sharpening only is the intended 
objective.

We can pursue a pre-blending solution to target the un-sharpening case as well 
as a separate interface.
Hope this is fine.
> >   */
> >
> >  __printf(6, 0)
> 
> --
> With best wishes
> Dmitry

Reply via email to