On Wed, Oct 08, 2025 at 07:22:00AM +0000, Garg, Nemesa wrote:
> 
> 
> > -----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.

Indeed, I'm more interested in a per-plane sharpen / unsharpen property.

> Hope this is fine.

-- 
With best wishes
Dmitry

Reply via email to