On Fri, Apr 30, 2004 at 07:57:20AM +1000, Benjamin Herrenschmidt wrote: > > > > Finally, the geometry of screens is something that has nothing to > > > do in the kernel imho. > > > > I don't like micro kernel designs. This is way micro kernels handle this > > problem. > > This has nothing to do with microkernel design and everything to do with > not bloating the kernel with things that don't to be there. I would like the kernel to handle CRTCs and overlays in the same way, and that way IMHO should be to calculate register values in userspace and just have a few ioctls to have the kernel write them. Set all registers ioctl: Nothing special needed here I think. Set buffer offset (pan/flip) ioctl: This one should return the current vertical blank counter. It's needed for proper triple buffering. It should also be able to choose when to flip (immediately or vblank, on top/bottom/any field). Wait for vertical blank ioctl: This one should also return the current vblank counter. It should also be able to wait for absolute and relative vblank counter values. Waiting for relative=1 would insure you're at the vblank when it returns and waiting for absolute=last_flip_counter_value+1 would help with double buffering. The main reason for userspace register calculation is that there are a lot of knobs in some hardware (especially with overlays). Trying to abstract those without loosing any features would be a problem. And even the API would cover all of todays graphics chip something new might come along in the future and the API might become too limited. -- Ville Syrjälä syrjala@sci.fi http://www.sci.fi/~syrjala/ ------------------------------------------------------- This SF.Net email is sponsored by: Oracle 10g Get certified on the hottest thing ever to hit the market... Oracle 10g. Take an Oracle 10g class now, and we'll give you the exam FREE. http://ads.osdn.com/?ad_id149&alloc_id66&op=click