ma, 2006-09-18 kello 10:49 +0300, Marko Mäkelä kirjoitti: > On Sun, Sep 17, 2006 at 11:46:23PM +0300, Heikki Lindholm wrote: > > > 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. > > No, in fact it is waiting for the current operation to finish. If you > do Flip() immediately after initiating a large blit operation, the CPU > will busy-wait in mga_waitidle() until the operation has finished.
Ok. I'll look into that. I don't care if I have to add (dirty) hacks to the kernel, because the vdr box will be single-purpose anyway. Was there some patches floating around already, or just conceptual stuff? -- Heikki Lindholm _______________________________________________ Softdevice-devel mailing list [email protected] https://lists.berlios.de/mailman/listinfo/softdevice-devel
