• loring's avatar
    depth sort update · eaf68626
    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
Name
Last commit
Last update
..
CMakeLists.txt Loading commit data...
InitVTK.C Loading commit data...
InitVTK.h Loading commit data...
visit_vtk_exports.h Loading commit data...
vtkAccessors.h Loading commit data...
vtkAxisDepthSort.C Loading commit data...
vtkAxisDepthSort.h Loading commit data...
vtkBinaryPartitionVolumeFromVolume.C Loading commit data...
vtkBinaryPartitionVolumeFromVolume.h Loading commit data...
vtkCSGCell.C Loading commit data...
vtkCSGCell.h Loading commit data...
vtkCSGFixedLengthBitField.h Loading commit data...
vtkCSGGrid.C Loading commit data...
vtkCSGGrid.h Loading commit data...
vtkConnectedTubeFilter.C Loading commit data...
vtkConnectedTubeFilter.h Loading commit data...
vtkCreateTriangleHelpers.h Loading commit data...
vtkDataSetRemoveGhostCells.C Loading commit data...
vtkDataSetRemoveGhostCells.h Loading commit data...
vtkDepthSortPolyData2.C Loading commit data...
vtkDepthSortPolyData2.h Loading commit data...
vtkLineoutFilter.C Loading commit data...
vtkLineoutFilter.h Loading commit data...
vtkLinesFromOriginalCells.C Loading commit data...
vtkLinesFromOriginalCells.h Loading commit data...
vtkMultiSplitter.C Loading commit data...
vtkMultiSplitter.h Loading commit data...
vtkOBJWriter.C Loading commit data...
vtkOBJWriter.h Loading commit data...
vtkOnionPeelFilter.C Loading commit data...
vtkOnionPeelFilter.h Loading commit data...
vtkPPMWriter.C Loading commit data...
vtkPPMWriter.h Loading commit data...
vtkPolyDataOnionPeelFilter.C Loading commit data...
vtkPolyDataOnionPeelFilter.h Loading commit data...
vtkRGBWriter.C Loading commit data...
vtkRGBWriter.h Loading commit data...
vtkRectilinearGridFacelistFilter.C Loading commit data...
vtkRectilinearGridFacelistFilter.h Loading commit data...
vtkRectilinearLinesNoDataFilter.C Loading commit data...
vtkRectilinearLinesNoDataFilter.h Loading commit data...
vtkSkew.h Loading commit data...
vtkSlicer.C Loading commit data...
vtkSlicer.h Loading commit data...
vtkStructuredGridFacelistFilter.C Loading commit data...
vtkStructuredGridFacelistFilter.h Loading commit data...
vtkSurfaceFilter.C Loading commit data...
vtkSurfaceFilter.h Loading commit data...
vtkSurfaceFromVolume.C Loading commit data...
vtkSurfaceFromVolume.h Loading commit data...
vtkTensorReduceFilter.C Loading commit data...
vtkTensorReduceFilter.h Loading commit data...
vtkUniqueFeatureEdges.C Loading commit data...
vtkUniqueFeatureEdges.h Loading commit data...
vtkUnstructuredGridRelevantPointsFilter.C Loading commit data...
vtkUnstructuredGridRelevantPointsFilter.h Loading commit data...
vtkVectorGlyph.C Loading commit data...
vtkVectorGlyph.h Loading commit data...
vtkVectorReduceFilter.C Loading commit data...
vtkVectorReduceFilter.h Loading commit data...
vtkVertexFilter.C Loading commit data...
vtkVertexFilter.h Loading commit data...
vtkVisItCellDataToPointData.C Loading commit data...
vtkVisItCellDataToPointData.h Loading commit data...
vtkVisItClipper.C Loading commit data...
vtkVisItClipper.h Loading commit data...
vtkVisItContourFilter.C Loading commit data...
vtkVisItContourFilter.h Loading commit data...
vtkVisItCutter.C Loading commit data...
vtkVisItCutter.h Loading commit data...
vtkVisItExtractGrid.C Loading commit data...
vtkVisItExtractGrid.h Loading commit data...
vtkVisItExtractRectilinearGrid.C Loading commit data...
vtkVisItExtractRectilinearGrid.h Loading commit data...
vtkVisItFeatureEdges.C Loading commit data...
vtkVisItFeatureEdges.h Loading commit data...
vtkVisItGlyph3D.C Loading commit data...
vtkVisItGlyph3D.h Loading commit data...
vtkVisItInterpolatedVelocityField.C Loading commit data...
vtkVisItInterpolatedVelocityField.h Loading commit data...
vtkVisItPolyDataNormals.C Loading commit data...
vtkVisItPolyDataNormals.h Loading commit data...
vtkVisItPolyDataNormals2D.C Loading commit data...
vtkVisItPolyDataNormals2D.h Loading commit data...
vtkVisItProbeFilter.C Loading commit data...
vtkVisItProbeFilter.h Loading commit data...
vtkVisItRectilinearGrid.C Loading commit data...
vtkVisItRectilinearGrid.h Loading commit data...
vtkVisItSTLWriter.C Loading commit data...
vtkVisItSTLWriter.h Loading commit data...
vtkVisItScalarTree.C Loading commit data...
vtkVisItScalarTree.h Loading commit data...
vtkVisItSplitter.C Loading commit data...
vtkVisItSplitter.h Loading commit data...
vtkVisItStreamLine.C Loading commit data...
vtkVisItStreamLine.h Loading commit data...
vtkVisItStructuredGrid.C Loading commit data...
vtkVisItStructuredGrid.h Loading commit data...
vtkVisItStructuredGridNormals.C Loading commit data...
vtkVisItStructuredGridNormals.h Loading commit data...
vtkVisItTIFFWriter.C Loading commit data...
vtkVisItTIFFWriter.h Loading commit data...
vtkVisItTensorGlyph.C Loading commit data...
vtkVisItTensorGlyph.h Loading commit data...
vtkVisItTubeFilter.C Loading commit data...
vtkVisItTubeFilter.h Loading commit data...
vtkVolumeFromCSGVolume.C Loading commit data...
vtkVolumeFromCSGVolume.h Loading commit data...
vtkVolumeFromVolume.C Loading commit data...
vtkVolumeFromVolume.h Loading commit data...