[maemo-developers] [ANNOUNCE] N9/N950 TV out control application

From: Ville Syrjälä syrjala at sci.fi
Date: Tue Mar 13 01:01:48 EET 2012
On Mon, Mar 12, 2012 at 09:57:01PM +0000, Andrew Flegg wrote:
> On 12 March 2012 21:43, Ville Syrjälä <syrjala at sci.fi> wrote:
> > On Mon, Mar 12, 2012 at 06:27:03PM +0000, Andrew Flegg wrote:
> >>
> >> Is it possible to get rotational support in there? So that showing
> >> Music has very wide black bars, but is at least the right way up?
> >
> > Nope. At the very least you'd need to modify the X driver, and doing
> > it optimally from performance POV would require even more changes.
> 
> So xrandr on Harmattan is more like 'xonlyoner' ;-)

Well, somewhat, but the r left is actually the rotate, not resize. Let
me explain. There was some problem with pvr memory management, so
resizing the X screen is disabled by default. IIRC we added some
xorg.conf option to allow it, but there's a good chance of making a
mess of things if you try it.

What you could do is start X with a larger screen size (eg. 854x854), and
then you could safely rotate the LCD output. TV output rotation isn't
really possible since VRFB (tile based hw rotation engine) isn't used. If
you attempt to use non-VRFB based rotation (aka. DMA rotation) on the TV
output, the display controller is likely to fail since the DMA can't keep
up with the display refresh due to the non-tiled memory layout. The
third way to rotate would be using the GPU, but no one ever bothered to
implement that in the X driver.

There are other things you can do with the current xrandr support.
For example you could use a bigger screen size, and pan the LCD and 
TV output viewports to non-overlapping positions, which would give
you independent content on each output. There are going to be problems
with touch coordinates though, and the WM doesn't know how to the handle
the situation either. Also page flipping only works as long as the window
size equals the screen size.

So there is a fair bit of xrandr functionality in the driver, but it's
not utilized by the upper layers. The main reason for that was that the
UI designers wanted the transitions to be glitch free, and there just
wasn't enough time to make that happen with xrandr.

-- 
Ville Syrjälä
syrjala at sci.fi
http://www.sci.fi/~syrjala/
More information about the maemo-developers mailing list