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@linux.intel.com wrote:
From: Ville Syrjälä ville.syrjala@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...