vtkDIYUtilities: add support for SOA arrays
Initially the problem was found when using Conduit/Meshblueprint with the vtkGhostCellsGenerator, see http://gitlab.kitware.com/paraview/paraview/-/issues/21246 for more details.
The root cause was that vtkDIYUtilities
did not support SOA arrays, and when VTK_DISPATCH_SOA_ARRAYS=OFF
, vtkArrayDispatcher::Dispatch::Execute
calls silently failed to serialize their data. Upon deserialization, it expected to find data that wasn't there and crashed. Furthermore, other non-standard memory layout arrays also did not deserialize properly.
This has now been fixed by adding support for non-standard memory layout arrays.
Note that the support is not yet optimal, as non-standard memory layout arrays are deserialized as AoS arrays always. This needs more work, but not in this merge request.