Z-BufferI added the z-buffer 'processor' to the flexline over the last few days. It was actually pretty easy to implement, since it just reads in a fragment, makes the depth comparison, and either passes on the fragment (and update the z-buffer) or else simply discards the fragment by not passing it on to its output buffer.
In some respects, it is nice to be free of the constraints of the hardware rendering systems. For example, I implemented a floating point z-buffer (just because I could [grin]) which couldn't be done in hardware unless you have a brand new $400 video card. Of course, there is that small performance penalty that has to be paid for using software instead of hardware...
Anyways, I also added a back face culling processor to the pipeline as well. The next component will be a triangle clipper for triangles that intersect the viewing frustum. Once this is completed, the traditional pipeline will be complete (more or less - I could add alpha blending, but I have read/write access to the framebuffer in the pixel shader, so it isn't really necesary). Then it will be on to the bigger and better specialty processors.
More on that to come. In the meantime, here is a screenshot from the z-buffer doing its thing: