Hi Will - Yes, both should be using TBB (this VTK was built with the Slicer superbuild defaults). All I did was change the filter and rebuild.
The render pipeline is in the MRML displayable manager code, but it’s really just setting up a vtkDataSetMapper and rendering.
Maybe threading got turned off somehow for vtkDataSetSurface?
CMakeCache says: VTK_SMP_IMPLEMENTATION_TYPE:STRING=TBB
>>> vtk.vtkVersion().GetVTKVersionFull()
'9.4.2-9-g454bb391df'
Here’s the mesh I was testing
I was able to replicate the behavior with this code. If you run the two updates you should see the same difference in performance.
r = vtk.vtkUnstructuredGridReader()
r.SetFileName("/opt/data/SlicerTMS/mesh.vtk")
r.Update()
meshGrid = r.GetOutput()
dss = vtk.vtkDataSetSurfaceFilter()
dss.SetInputData(meshGrid)
dss.Update()
gf = vtk.vtkGeometryFilter()
gf.SetInputData(meshGrid)
gf.Update()