[this message from Simon was bounced]
On Tue, 15 Jun 1999, Keith Whitwell wrote:
**To help avoid combinatoric explosion, note that you can probably do all
**of the culling (+ve area, -ve area, no cull) cases together.
**
**I think that what functions you implement will depend on the hardware to
**such an extent that you are unlikely to be able to come up with a
**'definitive' answer to your search. Triangle setup in software is fast
**becoming a thing of the past. The first impact this will have on what
**I've said above is that polygon offset and backface culling are no
**longer things you want to do in the draw_triangle() routine - you would
**almost certainly expect the card to do it for you.
Yes. In the examples above I tried to focus on one problematic aspect of
the middle class hardware, such as g200, pm2, g400 (?) TNT2 (?), which
doesn't support thick points/lines and full OpenGL stippling, therefore,
the cooperation between software and hardware during drawing is required.
For example, the thick lines and points could be drawn as trapezoids on
such hardware, but it is necessary to calculate new coordinates for that
trapezoid. The things get much complicated for driver if we want to draw
stippled thick lines on such hardware, although, it is possible and still
faster than doing this in software...
**
**I think that we have to move fairly quickly away from implementations
**which call a triangle() function for every triangle - the overhead will
**be quite high once all we are doing is filling a buffer with clip-space
**vertices (or even projected ones). This will essentially be the same
**trap as the glVertex() interface - eventually vertices were so cheap
**that that the call itself became a major step in the processing.
I have a problem there - the clipped primitives. The test for clipped
primitive happens within the VB loop, and there is a lot of action in
software. Would it be possible to have a VB with already pre-calculated
clipping coordinates ? In that case, the graphic hardware, which supports
strips and meshes, could in turn draw all primitives.
if (flags & PRIM_ANY_CLIP) \
fxRenderClippedLine( VB, i1, i ); \
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
else \
grDrawLine( &gWin[i1], &gWin[i] ); \
**
**It's a funny thing to say, but perhaps for the only time in history, the
**corporate computing world could have taught the graphics people a thing
**or two about performance.
There is also a funny issue with nowdays PII and PIII rockets, which in my
opinion are bad test platform for high performance drivers. Of course, the
most of people who start OpenGL app in a single window or fullscreen would
probably never claim for performance, because such speedy mashine is doing
a things very fast already in software. But I personaly like to test my
driver stuff on old and relatively slow K6 or 486... ;-)
cu,
**
**Keith
**
s.i.m.o.n.
___________v_/_________________________________________________________________
simon pogarcic [EMAIL PROTECTED] www.suse.de/~sim
_______________________________________________________________________________
_______________________________________________
Mesa-dev maillist - [EMAIL PROTECTED]
http://lists.mesa3d.org/mailman/listinfo/mesa-dev