Re: [PATCH] Tile Blitting
From: Michel Dänzer <hidden>
Date: 2003-02-27 18:25:08
On Don, 2003-02-27 at 15:15, Antonino Daplas wrote:
On Thu, 2003-02-27 at 09:18, James Simmons wrote:quoted
quoted
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 ------------------------------------------------------- This sf.net email is sponsored by:ThinkGeek Welcome to geek heaven. http://thinkgeek.com/sf