Minutes from 64th OpenVDB TSC meeting, Sep 22nd, 2020, (EDT)

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

Additional Attendees: Johannes Meng (Intel), JT Nelson (Blender),
Andre Pradhana (DW), Bruce Cherniak (Intel)

Regrets: *Peter* C.

Agenda:

1) Confirm quorum
2) Secretary
3) Forum
4) NanoVDB
5) PRs Outstanding
6) Checksums
7) Next Meeting


1) Quorum was confirmed.

2) Secretary was Jeff Lait

3) Forum

Ken still to reply to the out of core question.  The answer to the question is straightforward, but what would we like in the future?

4) NanoVDB

NanoVDB also has interest in delayed loading.

Jeff does not want NanoVDB to be more complicated than it has to be.

There are some additional changes still coming to support DirectX.

An improved C-port also exists.

5) PRs Outstanding

What is the process for external PR.  Does the second Reviewer merge or the first?  Or someone else does?  We will continue to work ad-hoc.

Feature branches, however, must be merged by the owner of the feature branch.

Likewise, if a PR is for a particular person's domain, that person will be left with the merge.

a) PR 829, sync names.  To be merged

b) PR 823, make delayed loading/iostreams optional.

This disables delayed loading.  This does change the File::Impl, but this should be name-spaced and internal, so not cause actual ABI changes.

Should we have ENABLE or DISABLE?  First we should have config flags in the source file only where possible.  Flag names depending on cmake defaults is scary.  Our Find Module is not yet powerful enough yet.  So we want to keep Find Module as simple as possible.

If we tried to move the delayed loading to the C file we'd lose the ability to remove the mutex.

Configuration of the build system is USE_FOO.  These Cmake variables then drive -D variables.  These vary currently.  Should half and delayed loading be off by default?  Apparently our models on the web are all half...

Ideally the default is no dependency.

The define will be DISABLE for delayed loading.

C) PR 819.  Remove half.

Should we just bring in a Half.C/Half.h rather than removing Half.h?
 
In future version of OpenEXR it will be its own header we can include.

What should we do with missing dependencies?  A runtime check is required because we don't know the source of the grid, it can come from another library that has support.  We will go for runtime errors, not compile time or linker error.

D) PR 818, all of AX

This has AX based CI.  It has to install multiple versons of LLVM, which eventually evicts the Houdini caches.  But as LLVM isn't EULA based, we should be able to pre-populate the containers with them.

We should read over this prior to the next TSC, especially any questions inside.

6) Checksums

Ken is researching CRC-variants, some are parallel, so fast.  Three modes have been added.  No checksum.  Checksum for the metadata only.  Full checksum.  Separate CRC are for grid, tree, root, and else.

One use is debugging, quickly verifying things are identical.

Validation tool for NanoVDB to verify no pointers go out of scope.  The security member approves.

7) Next Meeting

Focus on AX.

Tuesday September 29th 2020, 1-2pm EDT (GMT-4)
