|
From: Michel <mi...@da...> - 2003-02-27 18:25:10
|
On Don, 2003-02-27 at 15:15, Antonino Daplas wrote: > On Thu, 2003-02-27 at 09:18, James Simmons wrote: > > > > Thus, the restriction that the buffer must be completely copied by the > > > driver before returning. And because of this restriction, an extra copy > > > which might be unnecessary cannot be avoided (this was noted by Petr). > > > > > > Treating the buffer as a ringbuffer, we eliminate these restrictions. > > > > I didn't realize that the below was a ringbuffer implementation. The name > > threw me off. > > Well, it's not strictly a ringbuffer implementation. This would require > a head and tail pointer where fbcon will adjust the tail and the > driver/hardware will adjust the head. This will be very difficult to > implement in a device independent manner. So we just cheat by issuing > an fb_sync() per loop to flush all pending commands. That still seems suboptimal though. What the DRM often does is have the chip write an age value to a scratch register when it's done processing something. Maybe something like that could be used to avoid waiting for the chip to go idle at all? -- Earthling Michel Dänzer (MrCooper)/ Debian GNU/Linux (powerpc) developer XFree86 and DRI project member / CS student, Free Software enthusiast |