Clipping src and crtc rectangles for SetCrtc and SetPlane

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Dec 4 13:04:50 PST 2014


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


More information about the dri-devel mailing list