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
