MantisBT - VTK
View Issue Details
0009061VTK(No Category)public2009-05-24 14:452013-04-05 20:15
Nick Gnedin 
Utkarsh Ayachit 
normalmajoralways
closedfixed 
 
 
0009061: Los of performance in 5.4.0 vs 5.2.0

vtkPolyDataMapper in 5.4.0 resets display lists at every call. It seems that the problem is with vtkOpenGLDisplayListPainter.cxx. In the following piece of the code:

 // First check for the cases where all display lists (irrespective of
 // typeflags are obsolete.
 if (
   // Since input changed
   input->GetMTime() > this->Internals->BuildTime ||
   // actor's properties were modified
   actor->GetProperty()->GetMTime() > this->Internals->BuildTime ||
   // mapper information was modified
   this->Information->GetMTime() > this->Internals->BuildTime)
   {
   this->Internals->ReleaseAllLists();
   }

the if(...) statement is always true, and the display list is always
re-created, even when the input data does not change. Perhaps, input
gets Modified() somewhere where it should not.

That results in the major performance loss. That only happens when display non-opaque geometry with scalar data.

The test code that shows the catastrophic perfomance difference between 5.2.0 and 5.4.0 is attached.


No tags attached.
cpp Test.cpp (2,285) 2009-05-24 14:45
https://www.vtk.org/Bug/file/7267/Test.cpp
Issue History
2009-05-24 14:45Nick GnedinNew Issue
2009-05-24 14:45Nick GnedinFile Added: Test.cpp
2010-03-19 11:32Utkarsh AyachitNote Added: 0019965
2010-03-19 11:32Utkarsh AyachitStatusbacklog => @80@
2010-03-19 11:32Utkarsh AyachitResolutionopen => fixed
2010-03-19 11:32Utkarsh AyachitAssigned To => Utkarsh Ayachit
2011-01-13 17:00Source_changeset_attached => VTK master a2bd8391
2011-01-13 17:00Source_changeset_attached => VTK master 020ef709
2011-06-16 13:11Zack GalbreathCategory => (No Category)
2013-04-05 20:15Berk GeveciStatuscustomer review => closed

Notes
(0019965)
Utkarsh Ayachit   
2010-03-19 11:32   
The vtkScalarsToColorsPainter was using the LUT alpha in
deciding if we needed to regenerate the colors. This was incorrect since the LUT
alpha is anyways not taken into consideration when generating the colors. This
was causing the display lists to be re-generated when actor::property::alpha <
1. Fixed that.

/cvsroot/ParaView3/ParaView3/VTK/Rendering/vtkScalarsToColorsPainter.cxx,v <-- VTK/Rendering/vtkScalarsToColorsPainter.cxx
new revision: 1.22; previous revision: 1.21