Minutes from 58th OpenVDB TSC meeting, July 28st, 2020, (GMT)

Attendees: *Nick* A., *Jeff* L., *Ken* M., *Dan* B.

Additional Attendees: Johannes Meng (Intel), Bruce Chernia (Intel),
JT Nelson (Blender), Peter Cheng (DW), Andre Pradhana (DW).

Regrets: *Peter* C.

Agenda:

1) Confirm quorum
2) Secretary
3) Forum Issues
4) Fast Sweeping
5) GCC 9, PRs for 7.1
6) 7.1 Release, who does it?
7) VDB Point Move
8) Leaf manager/Node manager.
9) Next Meeting

1) Quorum was confirmed.

2) Secretary was Jeff Lait

3) Forum Issues

None to discuss

4) Fast Sweeping

Working on Dan's changes.  While benchmarking, surprise arose as the performance improvement does not primarily come from the new sorting, but rather from faster subsequent access to the coordinates in the fast-sweeping kernel.  Less memory traffic, and more coherent, makes the raw stencil 2x faster.  Should be possible to extend any attribute if you support lerp.  So we should support vectors in a single sweep.

Andre found convergence better than expected.  Extending the Flip! SDF from Houdini.  L1 error 7x10-4 for single sweep vs 30 sweeps.

A purely convex model could do a single pass which does all 8 sweeps in parallel rather than sequentially.  Topologically disjoing domains could be processed entirely independently.

Currently if you have a very small sphere with not many points in the cross planes more divisions would be beneficial.  This might not work on the GPU where you need to be more aggressive in finding more threads.

The extension attribute will be templated, allowing for support of velocity fields.

Not looked at introducing a tolerance yet.

How to expose a functor into Houdini?  Suggestion is to provide a VDB for that purpose.  So should be two optional inputs, for a mask and for the functor.  Instead, perhaps main input can have both the surface an extrap source fields.  Output would be the source field re-created in the space of the surface field.

The mask will be used for the region to extrapolate.  The SDF will be used only for computing isosurfaces within this mask.  So mask should be second input.

We aren't sure of the tolerance to use.  If we have an explicit tolerance that is lower than what the algorithm can achieve, it will never converge.  Tolerance support is not a blocker.

5) GCC 9, PRs for 7.1

Ken related his ABI=0 and ABI=1 build issues from CentOS 8.  Nick has improved the error messages so it is easier to debug at least.

We should make sure gcc 9 works before 7.1 release.  We realized we weren't testing gcc in our VFX2021 test, but clang instead.  So needed to move the CI to gcc.  Some errors are simple, but at least one is tricky.  Implicit conversion of bool to int.   LOD fails, prolong operators use + rather than |, for example.

Ken should try to build LOD tet.  Unit tests don't build bool and mask grids.

Nick has encountered LOD not working.  Can't find the fix.  He does not think it should be rushed for 7.1.  We should remove the multires grid of boolean from LOD in 7.1.  We can fix the tranform grid as it is simpler.  But some are concerned this might cause problems.  Maybe a way to disable the warning, but the warning doesn't exist in gcc 6.

Should we get the Blosc change in?  Agreement to send it in.  Ken will commit it.

6) 7.1 Release, who does it?

Ken will attempt the release following the instructions.

7) VDB Point Move

On pause waiting for the VDB Merge.

8) Leaf manager/Node manager.

Moved to a 7.2 change.  Possibly pushed into a branch?  Will be removing the ability to create a node manager from a leaf manager as that got complicated.

9) Next meeting

August 4th, 2020. 1pm-2pm EDT (GMT-4).
