[cairo] Survey of polygon rasterization techniques

Zack Rusin zack at kde.org
Wed Aug 1 00:32:41 PDT 2007


On Wednesday 01 August 2007 02:51:21 am Kiia Kallio wrote:
> - I create all polygons as polygon objects (or whatever concept the
>   underlying library uses) first and render with those (instead of feeding
>   my polygon coordinates to the API over and over again in every frame).
>   This way I'm really measuring the rendering performance, not just
>   API overhead (like the Zack Rusin's QT tests do...)

My tests weren't testing rasterization performance so saying "my tests were a 
lot better at testing rasterization performance than tests that weren't 
testing rasterization performance" isn't the killer argument it could have 
been ;) 

On a sidenote, there's a very good reason why I was feeding the coordinates - 
if you feed data in the native structure used to hold geometrical data, then 
a lot of geometrical properties can be cached (e.g. whether a polygon 
intersects is not going to change under scale/translation/rotation, so 
suddenly under those cases even tessellation becomes a O(n) process) and I 
was not interested in smartness of caching but raw rendering speed as seen 
from the top.

As to the other points I agree with David. 
The problem with algorithms for graphics /frameworks/ is that benchmarking is 
difficult because no test can really accommodate the variety of uses from the 
client side. The algorithm has to be generic enough to handle all the cases.
Then there's the question of how the algorithm fits within the current 
pipeline, i.e. what is the raw setup time necessary to move from the 
framework's public api to its internal representation. 
It is only in this broad spectrum that we can judge its performance, which 
tends to be difficult unless one has actually integrated the algorithm in.

I certainly think your algorithm is extremely interesting (plus I love that 
you actually provided benchmarking code for it, which is something that you 
rarely see for research papers) and well worth the time needed to integrate 
it and test how it performs in the global scope of the framework. 
But when it comes to the final outcome, years of experience in implementing 
research papers for graphics frameworks taught me to remain skeptic until the 
end.

z


More information about the cairo mailing list