From: Miguel F. <mi...@ce...> - 2002-06-26 11:35:08
|
Hi Arpi, On Wed, 2002-06-26 at 06:24, Arpi wrote: > > About the sync on vertical refresh this is simply impossible from > > userspace, without hardware support. I mean, if you were expecting some > > kind of refresh interrupt to flip buffers (like we used to do with vga > > programing) you need to move your code into the kernel. I'm sure Linus > > don't like this idea (otherwise we would be all using ggi by now... :) > > disagree > there are 2 ways to solve it: > 1. DRM - there are helper kernel modules _already_ for XF 4, used for DRI, but > could be used for things like VBI too > 2. Program the card to do the buffer switching at VBI - you don't need to > get and handle interrupts, just enable double/triple buffering mode of card, > and it will switch to next buffer at VBI, without any need of CPU. > At least Matrox and ATI cards can do that, but i'm pretty sure all others > can, at least the common cards. mga_vid and vidix uses this "trick", while > the syncfb handles the interrupts. You are just repeating what i said... read it again: impossible from userspace _without hardware support_. The first idea is using a helper from kernel space and the second idea you have hardware support (flip the buffers at n refreshes from now or something). > And, to be more precise, even the Xv drivers support it - there is custom > XV_DOUBLEBUFFER and similar xv parameters for nvidia and ati cards. > But this form of support is pure hack - there should be a standard way to > enable it, or just enable it by default - as no one wants to disable it... Yep, we use it from xine if available... (in fact, it's configurable) regards, Miguel |