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

Attachment: 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)

Reply via email to