Heya, Recently, I've been looking up and reading through the documentation available for the 3D Engine[1] part of the project ( It's in need of some love as well ), and the software model of our rasterizer found in the SVN repository. This has been in order to try to plan ahead, and identify the work that has to be done. And in relations to that I have some questions.
First, in each of the different stages [2] in the pipeline, Rasterize, Ownership, etc, we have some that just have to be forwarded for further use into the pipeline. Texture coordinates and Texture ID is a good example. Hence, what I'm thinking, is that if we in front of the Rasterizer / Scissor step in the pipeline, include a issue unit, it should be possible for the issue unit to bite off the unneeded parts and just forward it to the correct stage where it's first needed. Then, in the different stages in the pipeline, we could include a FIFO buffer where we store the data for future usage. Also, since we're operating on a strict in-order processor, it shouldn't need to be anything more complex than a simple FIFO buffer. Also, by doing this, we can try to hide some of the latencies found in the pipeline in memory reads / writes. As an example, imagine that we have the case of texture element. In the current model, it would require that the pipeline stalls while waiting for a texture fetch. If we send the coordinates ahead, it should be possible to prefetch some of the needed texels before the fragments gets to the texture stage. I am sure that this technique can be utilized more places in the pipeline as well. Secondly, we have a lot of configuration parameters which need to set for the engine, and which needs to be handled in an efficient manner. Hence, I'm suggesting that we add some sort of registry file to the architecture as well. Also by employing this technique, we could later incorporate some sort of performance counter system, or as a way of giving feedback from the system. I tried to modify Tim's original block diagram with Gimp to kinda show what I was talking about and the result can be found here [3]. Also, I would like to apologize for breaking the pretty diagram. It seems like a simple action such as drawing a box or a straight line in gimp is meant to be hard. Kenneth [1] http://wiki.opengraphics.org/tiki-index.php?page=OGA%20Engine [2] http://langly.org/og/block_diagram.gif [3] http://langly.org/og/block-mod.gif -- Life on the earth might be expensive, but it includes an annual free trip around the sun. Kenneth Østby http://langly.org
signature.asc
Description: Digital signature
_______________________________________________ Open-graphics mailing list [email protected] http://lists.duskglow.com/mailman/listinfo/open-graphics List service provided by Duskglow Consulting, LLC (www.duskglow.com)
