Problem with persistent scaling/shifting in RADEONDisplayVideo()

Michel Dänzer michel at
Sun Jul 27 23:53:49 PDT 2008

On Fri, 2008-07-25 at 20:09 +0200, Thomas Hilber wrote: 
> I now started a project to use Radeons as RGB/PAL output devices for VDR
> ( 
> It is now possible to alter the 50Hz frame rate dynamically in very small
> units (30usec per second). So I can fully synchronize VGAs frame rate 
> with incoming DVB stream. This way a VGA can provide interlaced PAL 
> output without any jerkyness or field loss. 

Neat. :)

> But it appears that even if I supply the following parameters to
> RADEONPutImage():
> src_x 0 src_y 0 drw_x 0 drw_y 0 src_w 720 src_h 576 drw_w 720 drw_h 576
> the source is not copied exactly 100% to the destination. It appears if
> there still takes place a vertical shift of 1/2 pixel or even less.

Maybe some of the overlay registers aren't programmed quite correctly
for the 1:1 case. Alex Deucher may have some ideas.

> I also tested with your newly introduced great textured XV adaptor. I 
> get excellent picture quality there without any workaround.
> BUT: 
> The change from one frame to the next frame does not take place within
> one scanline as in the case for double buffered overlay XV adaptor.
> An area of many scanlines is involved. Large enough that I can't hide it 
> completely behind the vertical blanking interval. Thus it appears that I 
> can't use textured XV for my system.

I assume this is due to scheduling latency between the vblank interrupt
and the textured video rendering getting emitted from userspace. It may
be possible to avoid this by synchronizing the textured video rendering
to vertical blank, see

Earthling Michel Dänzer           |
Libre software enthusiast         |          Debian, X and DRI developer

More information about the xorg-driver-ati mailing list