Xvideo performance on Radeon 7500 vs Intel 915

Ken Mandelberg km at mathcs.emory.edu
Thu Dec 14 08:52:27 PST 2006


I want to thank Roland both for his pink bar downscale patch for the 
Radeon and the suggestion to increase the agp mode that made a big 
difference in the Radeon performance.

I'm now tackling the other 1080i issue I encountered. Although 
xine/mplayer/vlc can all now do 1080i with xv, mythtv can't.

I've traced this through the radeon-video.c code and it comes down to 
this. At 1080i

pPriv->video_offset = RADEONAllocateMemory(pScrn, &pPriv->video_memory,
                                               (pPriv->doubleBuffer ?
                                                (new_size * 2) : new_size));


gets called with doublebuffer on, where new_size*2 is 6,266,880. This is 
the same for myth and the others all of which are doing 1920*1088 at 
this point, but it only fails for myth.

Ultimately this calls

linear = xf86AllocateOffscreenLinear(pScreen, size, 16,
                                                 NULL, NULL, NULL);


with size 1,566,720  which succeeds for xine/mplayer/vlc but fails for myth.

After the failure, the driver tries

xf86QueryLargestOffscreenLinear(pScreen, &max_size, 16,
                                             PRIORITY_EXTREME);

and max_size comes back 1,479,808 which is too small.

So I guess myth is using enough of the "OffscreenLinear" in the GUI to 
leave not enough left for the actual video.

I've turned off myth's preview mpg imaging, and its not apparent to me 
where the qt myth interface is using the resource. It doesn't show up in 
the alloc points I'm catching in radeon_video.c.

I've also noticed that with just the very top level of the mythfrontend 
gui running, that xine/mplayer/vlc can't display the 1080i mpg, which is 
consistent.

Is there any more I can do on the driver side to work around this? The 
radeon 7500 is supposed to have 32MB of ram, but I guess much less of it 
is available as offscreenlinear.











More information about the xorg mailing list