Messages in this thread | | | Date | Sat, 25 Dec 1999 23:44:17 +1000 (EST) | From | Ben Williamson <> | Subject | Re: Announce: DinX windowing system 0.2.0 |
| |
On Fri, 24 Dec 1999, Lucca wrote:
> Performance currently resembles the old manual etch-a-sketch devices, but > that is being worked on. Ultimately performance should be virtually the > same as using a framebuffer directly.
Right. Just to clarify, performance is currently horrible on PC hardware because we read (memmove) from the framebuffer a lot when dragging windows around. And it seems PC hardware does this really slowly.
DinX is designed with small systems in mind, many of which have the video buffer in main DRAM, and no 2D accel. (I'm thinking of my favourite ARM parts, like the ARM7500, CL-PS7110, EP7211 etc.) On these, reading the buffer is as fast as any other memory, so DinX should work fine the way it is now.
> It doesn't add a "window manager" to the frame buffer or anything like > that. Think of it instead as a framebuffer multiplexer; if written to use > dinx, multiple framebuffer apps can coexist happily. Dinx does not > provide goodies like internal windows, sprites, transparency/translucency, > etc. Those have to be done in userspace.
Right. The idea is just to take clipping and blitting out of the server process and put them in the kernel, to avoid lots of context switches and big complex buffering code.
Something else I should mention: The clipping code performs no memory allocations, so drawing keeps off the heap. When an obscuring window splits a rectangular blit into two rectangles, the routine recurses for each, so the complexity of the visible area goes on the stack. Now, how much stack space does the kernel have? :)
Cheers,
- Ben.
------------------------------------------------------------------- Ben Williamson benw@pobox.com http://www.pobox.com/~benw/
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/
| |