Rotate trouble on r300 (was: Re: XRandR rotate support HW rotate or not?)
Xavier Bestel
xavier.bestel at free.fr
Thu Nov 6 01:39:33 PST 2008
On Thu, 2008-11-06 at 10:35 +0100, Michel Dänzer wrote:
> On Thu, 2008-11-06 at 10:30 +0100, Xavier Bestel wrote:
> > On Thu, 2008-11-06 at 10:27 +0100, Michel Dänzer wrote:
> > > On Thu, 2008-11-06 at 10:20 +0100, Xavier Bestel wrote:
> > > > On Sat, 2008-11-01 at 12:25 +0100, Michel Dänzer wrote:
> > > > > On Fri, 2008-10-31 at 19:17 +0100, Xavier Bestel wrote:
> > > > > > Le vendredi 31 octobre 2008 à 09:34 -0400, Alex Deucher a écrit :
> > > > > > > 2008/10/31 <FloraGui at viatech.com.cn>:
> > > > > > > > Dear Keith Packard:
> > > > > > > >
> > > > > > > > I have recently study RandR, I found if we use RandR rotate no matter
> > > > > > > > static rotate or dynamic rotate,we always use RandR's own software rotate.
> > > > > > > >
> > > > > > > > We draw the screen desktop very slow, how can we support HW rotate
> > > > > > > > using RandR or it is a RandR limitation, if it is, RandR1.3 has support HW
> > > > > > > > rotate or not ?
> > > > > > >
> > > > > > > Your driver needs to implement the EXA composite hook with support for
> > > > > > > transforms and the randr 1.2 shadow_create/allocate/destroy hooks.
> > > > > > > The basic idea is that when you elect to rotate your screen, a shadow
> > > > > > > framebuffer is allocated in the randr core code calling the driver
> > > > > > > shadow* hooks to allocate a buffer for the rotated screen. The crtc
> > > > > > > is then pointed to this shadow buffer. The randr core code then uses
> > > > > > > the driver's EXA composite hook to transform the regions that are
> > > > > > > damaged and display them in the shadow buffer. Both the Intel driver
> > > > > > > and the radeon driver implement this.
> > > > > >
> > > > > > BTW, does anyone know why rotating the screen doesn't play well with
> > > > > > compiz on an r300 ? The screen looks garbled (like if the framebuffer
> > > > > > wasn't rotated so the pitch is all wrong), every second image (e.g. when
> > > > > > you move the cube slowly, one image is perfect, the next one is
> > > > > > garbled).
> > > > >
> > > > > Does disabling tiling and/or page flipping help?
> > > >
> > > > Ok, after using it for a while, I think I can say it doesn't help that
> > > > much: with page flipping disabled, the driver hangs regularly the
> > > > machine. It's a solid lock, the machine doesn't pong.
> > >
> > > Is that only when using rotation, or even otherwise?
> >
> > Even otherwise.
>
> Still using compiz though? Then there seems to be a problem with
> non-flip buffer swaps, maybe in the radeon DRM kernel module.
Yes, always using compiz.
I'm using a relatively recent git checkout of the radeon driver, but all
the rest is from debian packages (unstable + experimental when
applicable).
Xav
More information about the xorg
mailing list