I've just created a branch to house some experiments to do with 
integrating the i965 driver a little better with core Mesa.

In particular, the i965 driver houses a cloned version of the vertex 
building code from the tnl module.  My particular plan is to eliminate 
both copies of this code and recreate it in a new location where it is 
separate from both the tnl module and the drivers.  In this new 
incarnation the code will have a single purpose - to build and manage 
VBO's containing vertices passed to mesa whether through the 
intermediate api, as vertex arrays, display lists or even directly as 
VBO's.  The "vbo_builder" module will keep track of these VBO's and make 
a single callback I'm calling "DrawPrimitives" which passes a list of 
primitives, a list of active arrays (all within VBO's) and possibly an 
index buffer.  The driver's task is simply to upload (if necessary) 
those VBO's and draw the primitives.

The tnl/ module in turn has been stripped of its display list building 
and immediate api, and will have a single new entrypoint, also called 
DrawPrimitives which matches the callback above exactly.

Also as a result, the nasty array_cache thing can go away forever.

This will (once merged) have a few effects on other drivers.  The vtxfmt 
code in a couple of drivers (r200, r300) starts to look redundant - the 
assembly optimizations there could be cleaned up and pulled into 
vbo_builder.  The radeon_vtxfmt_a.c needs a bit more investigation, but 
hopefully can be adapted to work well with the vbo building code.

Ultimately what this should mean is that we end up with just a single 
way of building vertices across all drivers, both software and hardware 
tnl, and falling back to swtnl in a hardware driver should be as simple 
as calling the tnl module's DrawPrimitive() command directly from the 
driver.

Keith

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Mesa3d-dev mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mesa3d-dev

Reply via email to