I've added Carl's first cut at the trapezoid rendering code to XFree86 CVS.

It draws some polygons reasonably well; it seems to have troubles with 
very small triangles as would appear at the top and bottom of a thin line.
The server crashes when this occurs.  I should catch and bail instead, but
debugging is currently a bit easier this way :-)

This also incorporates the suggested pre-compositing step to add polygons 
together before compositing to the screen.

Performance is "fair", almost entirely because the underlying compositing 
is (usually) done in software.  I'm getting about 22000 100 pixel 
trapezoids per second as measured by x11perf.  gprof shows the server 
spending upwards of 60% of its time in the primitive compositing function.

With hardware acceleration, that bottleneck will disappear leaving the 
actual polygon function in need of some (obvious) optimzations.

One thing that is not clear is what alpha depth should be used when no 
precomposting format is supplied; in 'sharp' mode, it should (obviously) 
use depth 1, but in other modes it's unspecified currently.  Seems like it 
should pick something "reasonable"; suggestions are welcome.

I haven't tested any of the triangle paths; that probably means they're 
broken, but any bugs won't be hard to fix.  I'll see about adding x11perf 
tests for these operations soonish.

Keith Packard        XFree86 Core Team        HP Cambridge Research Lab


_______________________________________________
Render mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/render

Reply via email to