MantisBT - ParaView
View Issue Details
0014647ParaView(No Category)public2014-03-21 15:372014-08-29 10:59
Clinton Stimpson 
Ben Boeckel (Kitware) 
normalminorhave not tried
closedfixed 
 
4.24.2 
Sandia
performance
0014647: multiblock performance regression
After updating to VTK 5.10.1, we eventually found our rendering performance had decreased about 3 times for some models.

I narrowed it down to vtkCompositePolyDataMapper2::GetIsOpaque().
We have few mappers with hundreds or thousands of datasets. What used to take about .6 seconds to render a scene, now takes about 2 seconds. I can derive from the class and reimplement GetIsOpaque to return true, and my speed goes back to .6 seconds per render.

I was using vtkCompositePolyDataMapper2 because a previous upgrade made many vtkActor objects slow. So I rearranged my code to use few actors. But now another upgrade has slowed that down as well. I also manually defer garbage collection when I can to get even more speed ups. Bottom line, VTK seems to get heaver and slower with each release.
No tags attached.
Issue History
2014-03-21 15:37Clinton StimpsonNew Issue
2014-03-21 16:21Utkarsh AyachitAssigned To => Utkarsh Ayachit
2014-03-21 16:21Utkarsh AyachitStatusbacklog => tabled
2014-03-21 16:22Utkarsh AyachitNote Added: 0032528
2014-03-21 16:23Utkarsh AyachitAssigned ToUtkarsh Ayachit =>
2014-03-21 16:33Utkarsh AyachitAssigned To => Ben Boeckel (Kitware)
2014-03-21 16:34Utkarsh AyachitProjectVTK => ParaView
2014-03-21 16:34Utkarsh AyachitNote Added: 0032530
2014-03-21 16:35Utkarsh AyachitStatustabled => todo
2014-03-21 16:35Utkarsh AyachitProjectTBD => Sandia
2014-05-12 11:54Utkarsh AyachitTarget Version => 4.2
2014-07-31 13:06Utkarsh AyachitNote Added: 0033172
2014-07-31 13:40Ben Boeckel (Kitware)Note Added: 0033173
2014-07-31 13:41Utkarsh AyachitStatustodo => gatekeeper review
2014-07-31 13:41Utkarsh AyachitResolutionopen => fixed
2014-07-31 13:41Utkarsh AyachitStatusgatekeeper review => customer review
2014-07-31 13:41Utkarsh AyachitFixed in Version => git-master
2014-08-19 21:55Alan ScottNote Added: 0033265
2014-08-19 21:55Alan ScottStatuscustomer review => closed
2014-08-29 10:59Utkarsh AyachitFixed in Versiongit-master => 4.2

Notes
(0032528)
Utkarsh Ayachit   
2014-03-21 16:22   
Good catch. Seems like we really need to a mechanism to mapper to avoid having to do data dependent checks on each render and only do those when data (or mapper) changes.
(0032530)
Utkarsh Ayachit   
2014-03-21 16:34   
Moving to ParaView bug tracker since this greatly affects ParaView.
(0033172)
Utkarsh Ayachit   
2014-07-31 13:06   
I believe, this is now fixed. Ben, can you confirm that the fix is in git/master.
(0033173)
Ben Boeckel (Kitware)   
2014-07-31 13:40   
Looks to be in to me:

% git pull
Current branch master is up to date.
% git submodule update
Submodule path 'VTK': checked out 'dace397909107915be46a67ff1003d1543597fd9'
% grep LastOpaque ./VTK/Rendering/Core/vtkCompositePolyDataMapper2.cxx
  this->LastOpaqueCheckTime = 0;
  if (lastMTime <= this->LastOpaqueCheckTime)
    return this->LastOpaqueCheckValue;
  this->LastOpaqueCheckTime = lastMTime;
            this->LastOpaqueCheckValue = false;
    this->LastOpaqueCheckValue = false;
  this->LastOpaqueCheckValue = this->Superclass::GetIsOpaque();
  return this->LastOpaqueCheckValue;
(0033265)
Alan Scott   
2014-08-19 21:55   
Clinton,
I am closing this bug untested. If you think it was closed in error, please either reopen it.