Clipping src and crtc rectangles for SetCrtc and SetPlane

Adam Cheney acheney at nvidia.com
Thu Dec 4 13:22:14 PST 2014



> -----Original Message-----
> From: Ville Syrjälä [mailto:ville.syrjala at linux.intel.com]
> Sent: Thursday, December 04, 2014 4:05 PM
> To: Adam Cheney
> Cc: dri-devel at lists.freedesktop.org
> Subject: Re: Clipping src and crtc rectangles for SetCrtc and SetPlane
> 
> On Thu, Dec 04, 2014 at 08:27:41PM +0000, Adam Cheney wrote:
> > Hi dri-devel,
> >
> > I have a question about validating the user specified rectangles in SetCrtc and
> SetPlane.
> >
> > To me this is required for src_ or crtc_ rectangles to be legal, true for both
> SetCrtc and SetPlane:
> >
> >
> > 1)      src_{x,y,w,h} fits entirely within the fb size
> >
> > 2)      crtc_{x,y,w,h} fits entirely within the mode size
> >
> > There is some common code that enforces 1), but 2) appears to be up to
> individual drivers to enforce (if they choose to) as far as I can tell.
> >
> > If the crtc_ output rectangle extends outside of the connector's active mode,
> should DRM drivers perform the mode clipping themselves, or should this be
> considered an application bug and an error code returned?
> >
> > Is there any reason not to enforce 2) in the core DRM code, rather than in the
> individual drivers?
> 
> We clip the crtc_ coords rather than require that they fit inside the crtc.
> It's a bug for the driver not to do that as far as I'm concerned.
> 
> Since we do have sub-pixel src coordinates we could have required the crtc_
> coordinates to stay within the crtc limits without losing functionality, but
> allowing them to extend outside made it easier to write test code, and gave me
> a nice excuse to push the drm_rect stuff ;)
> 
> --
> Ville Syrjälä
> Intel OTC

Thanks!  This is also my feeling.  It's make DRM easier to use if the drivers perform the clipping rather than producing an error, or even worse just pushing the invalid request to the hardware.

-Adam
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information.  Any unauthorized review, use, disclosure or distribution
is prohibited.  If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------


More information about the dri-devel mailing list