-
loring authored
this patch modernizes VTK's depth sorting code. The following improvements were made: * transfrom GetCell to GetCellPoints. Building the cells one by one is expensive and we only need points to determine the depth. We can also then access the points in place. * transform qsort to std::sort. Comparisons in std::sort get inlined so std::sort is much faster. I also reduced the overhead of swaps by using a functor so that only cell id is swapped. * use templates to deal with point types instead of going through virtual GetValue API that converts them to double. * restructure depth computations so that they can be vectorized by the compiler. * I added a Cxx test to improve test coverage of the various sorting modes supported by this class. In tests the improved class is 2 x faster when sorting by first point and cell bounds, and 1.5 x faster when sorting by parametric center. The tests made use of a 900M cell iso-surface computed from a cosmology simulation, and gcc 4.9.2 with -DNDEBUG -Ofast -march=native -mavx git-svn-id: http://visit.ilight.com/svn/visit/trunk/src@27619 18c085ea-50e0-402c-830e-de6fd14e8384
eaf68626