SiliconMotion Rotation

2003-08-18 Thread Chris Edgington
The siliconmotion driver has its own internal rotation option. It appears
that this works by enabling ShadowFB, then using the hardware rotation
capabilities to rotate-blt the changed areas. This worked fine with XF
4.2.0. However, with the same hardware, this is broken with XF 4.3.0. I
diffed the smi_driver.c code between those versions and nothing seems to
have been changed in the driver code that would have affected rotation.

One thing that is not clear to me is how the X system in general is
notified of the rotated resolution. In the driver, when rotation is
enabled, the only apparent swapping of width and height that goes to
anything outside of the driver is the initialization of the framebuffer
layer's ScreenInit. Is this enough to communicate the rotated resolution?

Running XF 4.2, if I start the server, then run xwininfo, click on the
desktop, it reports back a window size of 600x800, which is what I would
expect. If I then switch to XF 4.3, start the server, run xwininfo, click on
the desktop, it reports a window size of 800x600. So, did something change
about the higher level stuff that now requires something else to be done to
change the desktop size?

Thanks,
-Chris


___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel


Re: SiliconMotion Rotation

2003-08-18 Thread Dr Andrew C Aitchison
On Mon, 18 Aug 2003, Chris Edgington wrote:

 The siliconmotion driver has its own internal rotation option. It appears
 that this works by enabling ShadowFB, then using the hardware rotation
 capabilities to rotate-blt the changed areas. This worked fine with XF
 4.2.0. However, with the same hardware, this is broken with XF 4.3.0. I
 diffed the smi_driver.c code between those versions and nothing seems to
 have been changed in the driver code that would have affected rotation.

I have heard that the addition of the RandR (Rotate and Resize)
extension into 4.3 broke some drivers which already did rotation.
 
 One thing that is not clear to me is how the X system in general is
 notified of the rotated resolution. In the driver, when rotation is
 enabled, the only apparent swapping of width and height that goes to
 anything outside of the driver is the initialization of the framebuffer
 layer's ScreenInit. Is this enough to communicate the rotated resolution?

If I heard correctly, one of the features of RandR is that it allows
this sort of notification.

Unfortunately this area suffered in the political fight which happened 
around the time of the 4.3 release.

-- 
Dr. Andrew C. Aitchison Computer Officer, DPMMS, Cambridge
[EMAIL PROTECTED]   http://www.dpmms.cam.ac.uk/~werdna

___
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel