[PATCH 4/5] drm/i915: Add rotation support for the cursor plane

Sagar Arun Kamble sagar.a.kamble at intel.com
Tue Feb 18 02:09:33 PST 2014


On Tue, 2014-02-18 at 11:23 +0200, Ville Syrjälä wrote:
> On Tue, Feb 18, 2014 at 01:19:05PM +0530, Sagar Arun Kamble wrote:
> > On Mon, 2014-02-17 at 19:51 +0200, Ville Syrjälä wrote:
> > > On Mon, Feb 17, 2014 at 10:53:50PM +0530, Sagar Arun Kamble wrote:
> > > > On Fri, 2014-02-14 at 13:39 +0200, Ville Syrjälä wrote:
> > > > > On Fri, Feb 14, 2014 at 04:31:17PM +0530, Sagar Arun Kamble wrote:
> > > > > > On Wed, 2014-02-12 at 23:15 +0200, ville.syrjala at linux.intel.com wrote:
> > > > > > > From: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > > > > > > 
> > > > > > > The cursor plane also supports 180 degree rotation. Add a new
> > > > > > > "cursor-rotation" property on the crtc which controls this.
> > > > > > > 
> > > > > > > Unlike sprites, the cursor has a fixed size, so if you have a small
> > > > > > > cursor image with the rest of the bo filled by transparent pixels,
> > > > > > > simply flipping the rotation property will cause the visible part
> > > > > > > of the cursor to shift. This is something to keep in mind when
> > > > > > > using cursor rotation.
> > > > > > By flipping you meant setting 180 degree rotation?
> > > > > 
> > > > > Yes.
> > > > > 
> > > > > > Don't we have to adjust the cursor base as well to the lower right
> > > > > > corner apart from setting the control bit?
> > > > > 
> > > > > No, the hardware does that automagically. Hmm. Except on gen4
> > > > > apparently. Looks like I need to test on gen4, and fix it if it's
> > > > > really the case.
> > > > I tried on BYT system and 180 rotation on cursor plane is showing
> > > > garbage data in cursor plane. We might need to adjust the cursor base.
> > > 
> > > Yeah it's the same on gen4. I already have a fixed patch, but didn't
> > > repost it yet.
> > > 
> > > > Another thing, pipe rotation somehow did not work for me when I do this:
> > > > echo 0x4 > /sys/kernel/debug/dri/0/i915_pipe_rotation
> > > > Only cursor plane had impact. Need to debug this as well.
> > > 
> > > That's expected. It doesn't actually call the set_property codepath,
> > > instead it just sets the value directly and excpects a subsequent
> > > modeset to do the actual work. It was anyway just a hack to try things
> > > out a bit, so I didn't implement it properly. But it should be trivial
> > > to make it work correctly, so I might as well do it...
> > Yeah. Tried doing modeset and it works perfectly.
> > For Cursor rotation we might need to add check for 32bpp cursors as
> > well.
> 
> We don't support anything else at the moment. And I don't think there's
> much point in adding support for any legacy cursor formats. The one
> thing we want to do is add support for larger cursor sizes. But I think
> that can wait until we expose the cursor as a drm_plane.
Actually I am working on enabling larger cursor sizes now. Will share
patch now.
> 




More information about the dri-devel mailing list