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
