HTG : Plantage gros cas (cible affichage des interfaces)
Bonjour,
Un utilisateur, Gilles C., a remonté des plantages sur un très gros cas lors du chargement / affichage des interfaces.
Après une prospection minutieuse avec @maxime-stauffert, nous avons identifié une première erreur dans la méthode GetPureMask()
dans https://gitlab.kitware.com/vtk/vtk/-/blob/master/Common/DataModel/vtkHyperTreeGrid.cxx ligne 1322 this->PureMask->SetNumberOfTuples(this->GetNumberOfCells());
. En effet, l'allocation de ce champ, des champs de valeurs, doivent être dimensionné à this->GetGlobalNodeIndexMax() + 1
.
Action de reversement (@maxime-stauffert) : Faire une proposition de reversement dans la communauté VTK après vérification des effets que cela induit sur les résultats des tests. Des images seront peut être à refaire. Le dimensionnement est liè à la valeur retournée par cette méthode qui indique la valeur maximale atteinte par l'indexation des cellules (en l'occurence pour nous, l'indexation sur un tableau de valeurs correspondant à une concaténation des champs lus dans la base Hercule pour un serveur donné ; une évolution du Readers pour proposer une alternative en copiant les valeurs suivant l'implicit global index construction).
Néanmoins, nous constatons toujours un plantage pour nombre de cellules trop importante (!?!) lors d'une phase de Gather !!! Ce qui est très très inattendu puisqu'a priori PV/VTK n'a pas lieu de regrouper les cellules... même celles qui ne définieraient que la surface d'un objet 3D (normalement une image avec indicateur de profondeur est construite par serveur pour être ensuite "accumulée").
Une rapide vérification (peut être à préciser numériquement) montrerait que le nombre de cellules produites par le filtre vtkHyperTreeGridGeometry serait en deça de cette limite.
Affaire à suivre.