Attaching my notes looking at the performance impacts for a set of povr
changes since last October at the expected compile and link options for
best general povr performance.
The work to eliminate useless zeroing of vector components - always
faster. (-0.1% to -4.7%)
Moving the bounding from floats to doubles (calc today always? doing
type conversions float->double->float) is usually faster for scenes
already heavily leaning on bounding for good performance (-0.3% to
-16.9%). However, some scenes are slower (+1.8% to +2.9%). Accuracy of
course better. Likely actual CPU hardware will also affect results.
The fix to avoid floating point exceptions into intersect_BBox so we can
continue to use -ffast-math is - almost always - somewhat expensive
(+0.4% +3.4%). Cost always much smaller than the typical -ffast-math gains.
The file has some information looking at certain shapes with the
intersect_BBox code bypassed and not. Recommend a re-evaluation of what
shapes bypass the mechanism hard coded set up.
Aside: The earlier look at parser symtable performance improvements not
looked at for this analysis because I've not decided to adopt the
changes for povr. The speed up method is kinda clunky.
Post a reply to this message
Download 'perfstory_povrupdatespost_6e4ed6c2.txt' (8 KB)