On Wed, Feb 14, 2024 at 09:17:06PM +0200, Dmitry Baryshkov wrote: > On Wed, 14 Feb 2024 at 20:47, Ville Syrjälä > <ville.syrjala@xxxxxxxxxxxxxxx> wrote: > > > > On Wed, Feb 14, 2024 at 08:37:02PM +0200, Ville Syrjälä wrote: > > > On Thu, Sep 14, 2023 at 08:06:55AM +0300, Dmitry Baryshkov wrote: > > > > The helper drm_atomic_helper_check_plane_state() runs several checks on > > > > plane src and dst rectangles, including the check whether required > > > > scaling fits into the required margins. The msm driver would benefit > > > > from having a function that does all these checks except the scaling > > > > one. Split them into a new helper called > > > > drm_atomic_helper_check_plane_noscale(). > > > > > > What's the point in eliminating a nop scaling check? > > > > Actually, what are you even doing in there? Are you saying that > > the hardware has absolutely no limits on how much it can scale > > in either direction? > > No, I'm just saying that the scaling ability depends on the rotation > and other plane properties. So I had to separate the basic plane > checks and the scaling check. > Basic (noscale) plane check source and destination rectangles, etc. > After that the driver identifies possible hardware pipe usage and > after that it can perform a scaling check. Hmm. We have sport of similar situation in i915 where we pick a scaler much later and so don't know the exact scaling limits at the time when we do this check. But we opted to pass the lower/upper bounds of the scaling limits instead. That will guarantee that at least completely illegal values are rejected as early as possible, and so we don't have to worry about running into them later on. -- Ville Syrjälä Intel