su, 2006-09-17 kello 23:17 +0300, Marko Mäkelä kirjoitti:
> On Sun, Sep 17, 2006 at 08:33:37PM +0300, Heikki Lindholm wrote:
> > The included patch makes dfb:mgatv use YV12 colourspace for video and 
> > the hardware subpicture layer for OSD. The patch is a prime example of 
> > bad goal-oriented programming, but does what I wanted: improves 
> > performance to the level that my 450 MHz P2 can now function as a DVB 
> > box like no underpowered P2 has done before! Unfortunately, the patch 
> > probably breaks everything else, but I'm too lazy to clean it up.
> 
> I'm very much interested in this.

Then, maybe, I didn't waste my time posting it :)

> You didn't get rid of the CPU-burning Flip() calls, did you?  At least
> on my system, DirectFB spends about 10% of the CPU cycles waiting for
> MGA engine ready.  Adding a usleep(2000) right before the Flip() call
> reduces the CPU load but risks dropping frames.  I believe it would be
> much more efficient if the Flip() method blocked the thread until the
> hardware is ready.  That would require some new ioctl() in the kernel.

I read your earlier comment about this on the list. I was curious to ask
if you could elaborate on this a bit. I _very_ briefly looked at what
the Flip call does, and the only wait I saw was the wait for vsync,
which for matroxfb seems to be nicely handled by a waitqueue in the
kernel. Where exactly is the wait you're referring to? I believe adding
an usleep() is really artificial way of reducing cpu load and not really
solving anything - at least when the CPU really is underpowered as in my
case - unless there's some convenient reordering happening in the
scheduling of the vdr threads caused by the added usleep.

-- Heikki Lindholm


_______________________________________________
Softdevice-devel mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/softdevice-devel

Reply via email to