pub fn edge_shift(pointer: (i32, i32), hotspot: (u32, u32)) -> (u32, u32)Expand description
How far to move the sprite up and left inside its buffer so the plane need not start above or left of the CRTC (drm-cxx#384).
Some drivers ā the SA8155Pās ā refuse a negative CRTC_X/CRTC_Y, and
the usual fix, trimming the source, is refused by others: i915 and amdgpu
take no source offset on a cursor plane. Moving the pixels works on all of
them. The plane goes to the edge and the sprite is drawn shifted by what
would have hung off it.
At most the hotspot, so the hotspot never leaves the buffer: a pointer that is itself off the top or left of the CRTC keeps a negative position, as before.