[Paraview] Rendering Slow Down on OS X, ParaView CVS, Custom GUI Plugin

Mike Jackson imikejackson at gmail.com
Wed Jun 11 12:01:28 EDT 2008


System: OS X, 10.4.11, Intel, 2 GB Ram, Xcode 2.5, ParaView CVS from  
this morning.

Generally rendering was fine until I loaded one of my plugins and  
applied the filter that the plugin contains. The plugin also has a  
custom GUI that is loaded and I created a new Menu Category for the  
filter. Selecting the filter from the menu, clicking "Apply" and then  
trying to rotate/render the scene becomes very slow. Deleting the  
filter returns the speed to normal. Also, NOT loading the Client Side  
plugin BUT applying the same filter results in NO slow down.

I ran "Shark" against ParaView 3 while interacting with the render  
view (constant rotation by click-dragging in the render view) and I  
found that the time is being spent in the following call:

15.1 s	16.1 s	libpqComponents.dylib  
pqFiltersMenuManager::updateEnableState()	

That is 15 seconds out of a 30 second sample. ouch.

Here is the entire stack up to that point:
paraview	main	
libpqCore.dylib	 pqMain::Run(QApplication&, pqProcessModuleGUIHelper*)	
libvtkPVServerCommon.dylib	  vtkProcessModuleGUIHelper::Run 
(vtkPVOptions*)	
libvtkPVServerCommon.dylib	vtkProcessModule::Start(int, char**)	
libvtkPVServerCommon.dylib	 vtkProcessModule::StartClient(int, char**)	
  s	libpqCore.dylib	  pqProcessModuleGUIHelper::RunGUIStart(int,  
char**, int, int)	
libQVTK.pv3.3.dylib	QVTKWidget::event(QEvent*)	
libQVTK.pv3.3.dylib	 QVTKWidget::mouseMoveEvent(QMouseEvent*)	
libvtkCommon.pv3.3.dylib	  vtkObject::InvokeEvent(unsigned long, void*)	
libvtkCommon.pv3.3.dylib	vtkSubjectHelper::InvokeEvent(unsigned long,  
void*, vtkObject*)	
libvtkCommon.pv3.3.dylib	 vtkCallbackCommand::Execute(vtkObject*,  
unsigned long, void*)	
libvtkRendering.pv3.3.dylib	  vtkInteractorStyle::ProcessEvents 
(vtkObject*, unsigned long, void*, void*)	
libvtkPVFilters.dylib	vtkPVInteractorStyle::OnMouseMove()	
libvtkPVFilters.dylib	 vtkPVTrackballRotate::OnMouseMove(int, int,  
vtkRenderer*, vtkRenderWindowInteractor*)	
libvtkRendering.pv3.3.dylib	  vtkRenderer::ResetCameraClippingRange()	
libvtkCommon.pv3.3.dylib	vtkObject::InvokeEvent(unsigned long, void*)	
libvtkCommon.pv3.3.dylib	 vtkSubjectHelper::InvokeEvent(unsigned  
long, void*, vtkObject*)	
libvtkPVServerManager.dylib	  vtkSMViewProxy::Command::Execute 
(vtkObject*, unsigned long, void*)	
libvtkPVServerManager.dylib	vtkSMRenderViewProxy::ProcessEvents 
(vtkObject*, unsigned long, void*)	
libvtkPVServerManager.dylib	  
vtkSMRenderViewProxy::ResetCameraClippingRange()	
libvtkPVServerManager.dylib	   
vtkSMRenderViewProxy::ComputeVisiblePropBounds(double*)	
libvtkPVServerManager.dylib	vtkSMPVRepresentationProxy::GetBounds 
(double*)	
libvtkPVServerManager.dylib	  
vtkSMSurfaceRepresentationProxy::GetBounds(double*)	
libvtkPVServerManager.dylib	  vtkSMRepresentationProxy::GetBounds 
(double*)	
libvtkPVServerManager.dylib	 
vtkSMDataRepresentationProxy::GetRepresentedDataInformation(bool)	
libvtkPVServerManager.dylib	  
vtkSMRepresentationStrategy::UpdateDataInformation()	
libvtkPVServerManager.dylib	  vtkSMSimpleStrategy::GatherInformation 
(vtkPVInformation*)	
libvtkPVServerManager.dylib	vtkSMSimpleStrategy::UpdatePipeline()	
libvtkPVServerManager.dylib	 vtkSMSourceProxy::UpdatePipeline()	
libvtkPVServerManager.dylib	  vtkSMSourceProxy::PostUpdateData()	
libvtkPVServerManager.dylib	vtkSMProxy::PostUpdateData()	
libvtkPVServerManager.dylib	 vtkSMSourceProxy::PostUpdateData()	
libvtkPVServerManager.dylib	  vtkSMProxy::PostUpdateData()	
libvtkPVServerManager.dylib	vtkSMSourceProxy::PostUpdateData()	
libvtkPVServerManager.dylib	 vtkSMProxy::PostUpdateData()	
libvtkCommon.pv3.3.dylib	  vtkObject::InvokeEvent(unsigned long, void*)	
libvtkCommon.pv3.3.dylib	vtkSubjectHelper::InvokeEvent(unsigned long,  
void*, vtkObject*)	
libvtkCommon.pv3.3.dylib	 vtkCallbackCommand::Execute(vtkObject*,  
unsigned long, void*)	
libQVTK.pv3.3.dylib	  vtkQtConnection::DoCallback(vtkObject*,  
unsigned long, void*, void*)	
libQVTK.pv3.3.dylib	vtkQtConnection::Execute(vtkObject*, unsigned  
long, void*)	
libQVTK.pv3.3.dylib	 vtkQtConnection::EmitExecute(vtkObject*,  
unsigned long, void*, void*, vtkCommand*)	
libpqCore.dylib	  pqPipelineFilter::qt_metacall(QMetaObject::Call,  
int, void**)	
libpqCore.dylib	pqPipelineSource::qt_metacall(QMetaObject::Call, int,  
void**)	
libpqCore.dylib	 pqPipelineSource::dataUpdated()	
libpqCore.dylib	  pqPipelineSource::dataUpdated(pqPipelineSource*)	
libpqComponents.dylib	pqFiltersMenuManager::qt_metacall 
(QMetaObject::Call, int, void**)	
libpqComponents.dylib	 pqFiltersMenuManager::updateEnableState()	

I just noticed this today but the last time I checked anything like  
this was a few weeks back. Has anyone else seen something like this?



--
Mike Jackson
imikejackson & gmail * com



More information about the ParaView mailing list