Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed changenotes #1683

Merged
merged 1 commit into from
Oct 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
91 changes: 46 additions & 45 deletions CHANGES
Original file line number Diff line number Diff line change
Expand Up @@ -2,62 +2,63 @@ OpenVDB Version History
=======================

Version 10.1.0 - October 11, 2023

Highlights:
- OpenVDB Python bindings are now implemented using pybind11 instead of
Boost.Python.
[Contributed by Matthew Cong]

OpenVDB:
New features:
- Added points::replicate() for the replication of PointDataGrid points
and attributes.

Improvements:
- OpenVDB Python bindings are now implemented using pybind11 instead of Boost.Python.
[Contributed by Matthew Cong]
- Fix int-in-bool-context GCC9+ warnings by switching to use constexpr if.
- Upgraded OpenVDBs internal half representation to IMath 3.1.6. Brings
conversion support using F16C instructions (if enabled using -mf16c) and
the removal of the exponent lookup table in favor of bit shifting.
- LevelSetRebuild includes disabled code that uses this for
resampling level sets - the original grid is used as the true
sign value. However, due to differences between
polygonalization and trilinear interpolation, it cannot be used
directly. The code is provided so we can learn from this
mistake.
- boost::uuid removed from Archive, instead std::random_device is used
- OpenVDBs copy of Half.h is no longer built with an internal lookup table,
but explicitly selects the non-LUT version and disables the creation of
the LUT. This is required to avoid symbol conflicts with different
namespaced OpenVDB builds.
- Removed boost::uuid from Archive, instead std::random_device is used
directly to generate UUID-like objects.
- Moved all cases of file static/global variables which relied on non-trivial
construction into function scopes as static locals. These would previously
initialize themselves on start-up in a non-deterministic, compiler-dictated
order(static-initialization-order-fiasco). This order is now defined by the
program's execution.
- Introduced openvdb::make_index_sequence to solve clang compilations
issues with compiler built-in index_sequence implementations.
- Fixed the constants used in openvdb::math::Coord::hash() and
nanovdb::Coord::hash() to correctly be prime numbers (note that this
changes the result of these methods).
[Contributed by Benedikt Mersch]
- Updated tools::meshToVolume to take two new optional arguments to provide
an interior test oracle and an interior testing method. These allow the
default outside-flood-fill to be replaced if the actual sidedness can be
known.
[Contributed by Tomas Skrivan]
- LevelSetRebuild now includes example code that demonstrates the intended
use of the new meshToVolume interior testing parameters for the
resampling of level sets, where the original grid is used as the true
sign value. However, due to differences between polygonalization and
trilinear interpolation, this behaviour is disabled and exists as a
reference.
- Introduced openvdb::TupleList to wrap std::tuple and provide interface
interop methods with openvdb::TypeList.
- Added OPENVDB_FORCE_INLINE, OPENVDB_LIKELY and OPENVDB_UNLIKELY macros.
- Introduced openvdb::make_index_sequence to solve clang compilations
issues with compiler built-in index_sequence implementations.

API changes:
- openvdb/tools/MeshToVolume's meshToVolume takes two
new optional arguments to provide an interior test oracle and an
interior testing methods. These allow the default
outside-flood-fill to be replaced if the actual sidedness can be
known.
[Contributed by Tomas Skrivan]
- PagedArray iterators no longer derive from std::iterator
(but remains standard compliant).
- Significant infrastructural change to the ValueAccessor header and
implementation. All ValueAccessor specializations have been consolidated
into a single class which supports all possible ValueAccessor configurations
using index_sequences. Backward compatible declarations have been provided.
The new ValueAccessor implementation is marked as final.
- PagedArray iterators no longer derive from std::iterator
(but remains standard compliant).

Bug Fixes:
- Fixed a build issue where Boost was not being pulled in when
OPENVDB_USE_DELAYED_LOADING was set to OFF.
- Fixed the constants used in openvdb::math::Coord::hash() and nanovdb::Coord::hash()
to correctly be prime numbers (note that this changes the result of these methods).
[Contributed by Benedikt Mersch]
- Improved support for compiling with C++20.
[Contributed by Denys Maletskyy and Jérémie Dumas]
- OpenVDB's CMake no longer modifies the BUILD_SHARED_LIBS variable.
[Reported by Maksim Shabunin]
- Internal counters in tree::RangeIterator were limited to 32bit precision.
They are now extended to size_t.
[Reported by SpaceX]
Expand All @@ -70,20 +71,6 @@ Version 10.1.0 - October 11, 2023
- Fixed a bug with LeafNodeBool Topology constructor with designated
on/off values which wouldn't apply them correctly.
[Reported by @hozhaoea]
- Fixed a compilation error that would be encountered when attempting to
enable the SSE4.2 or AVX SIMD options on non-x86 based platforms.
- The Half.h is no longer built with an internal lookup table, but
explicitly selects the non-LUT version and disables the creation of
a LUT. This is required to avoid symbol conflicts with
different namespaced OpenVDB builds.
- Fixed a compilation issue with the min() and max() methods on Stencils
in openvdb/math/Stencils.h.
[Reported by Samuel Mauch]
- Introduced openvdb::make_index_sequence to solve clang compilations
issues with compiler builtin index_sequence implementations.
- Introduced openvdb::TupleList to wrap std::tuple and provide interface
interop methods with openvdb::TypeList.
- Added OPENVDB_FORCE_INLINE, OPENVDB_LIKELY and OPENVDB_UNLIKELY macros.

OpenVDB AX:
Improvements:
Expand All @@ -92,8 +79,6 @@ Version 10.1.0 - October 11, 2023
Bug Fixes:
- Fixed a bug in AX on older X86 hardware which could cause a crash when
accessing point attributes with half compression (bug introduced in 9.1.0).
- Fixed a build issue with AX on 32-bit platforms.
[Reported by Mathieu Malaterre]
- Fixed an incorrect option in the `vdb_ax` command line tool where the default
optimization level was set to NONE instead of O3 (issue introduced in 10.0.0).

Expand All @@ -106,6 +91,22 @@ Version 10.1.0 - October 11, 2023
- Fix a bug in the projection mode of the Advect Points SOP that was causing
a segfault.

Build:
- Fixed a build issue where Boost was not being pulled in when
OPENVDB_USE_DELAYED_LOADING was set to OFF.
- Fixed a build issue with AX on 32-bit platforms.
[Reported by Mathieu Malaterre]
- Fixed a compilation issue with the min() and max() methods on Stencils
in openvdb/math/Stencils.h.
[Reported by Samuel Mauch]
- Fixed a compilation error that would be encountered when attempting to
enable the SSE4.2 or AVX SIMD options on non-x86 based platforms.
- Improved support for compiling with C++20.
[Contributed by Denys Maletskyy and Jérémie Dumas]
- OpenVDB's CMake no longer modifies the BUILD_SHARED_LIBS variable.
[Reported by Maksim Shabunin]
- Fix int-in-bool-context GCC9+ warnings by switching to use constexpr if.

Version 10.0.1 - November 30, 2022

Bug Fixes:
Expand Down
88 changes: 42 additions & 46 deletions doc/changes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -18,56 +18,51 @@ OpenVDB:
and attributes.

- Improvements:
- OpenVDB Python bindings are now implemented using pybind11 instead of Boost.Python.
[Contributed by Matthew Cong]
- Fix int-in-bool-context GCC9+ warnings by switching to use constexpr if.
- Upgraded OpenVDBs internal half representation to IMath 3.1.6. Brings
conversion support using F16C instructions (if enabled using -mf16c) and
the removal of the exponent lookup table in favor of bit shifting.
- LevelSetRebuild includes disabled code that uses this for
resampling level sets - the original grid is used as the true
sign value. However, due to differences between
polygonalization and trilinear interpolation, it cannot be used
directly. The code is provided so we can learn from this
mistake.
- boost::uuid removed from Archive, instead std::random_device is used
- OpenVDBs copy of Half.h is no longer built with an internal lookup table,
but explicitly selects the non-LUT version and disables the creation of
the LUT. This is required to avoid symbol conflicts with different
namespaced OpenVDB builds.
- Removed boost::uuid from Archive, instead std::random_device is used
directly to generate UUID-like objects.
- Moved all cases of file static/global variables which relied on non-trivial
construction into function scopes as static locals. These would previously
initialize themselves on start-up in a non-deterministic, compiler dictated
initialize themselves on start-up in a non-deterministic, compiler-dictated
order(static-initialization-order-fiasco). This order is now defined by the
program's execution.
- Introduced openvdb::make_index_sequence to solve clang compilations
issues with compiler built-in index_sequence implementations.
- Fixed the constants used in openvdb::math::Coord::hash() and
nanovdb::Coord::hash() to correctly be prime numbers (note that this
changes the result of these methods).
[Contributed by Benedikt Mersch]
- Updated tools::meshToVolume to take two new optional arguments to provide
an interior test oracle and an interior testing method. These allow the
default outside-flood-fill to be replaced if the actual sidedness can be
known.
[Contributed by Tomas Skrivan]
- LevelSetRebuild now includes example code that demonstrates the intended
use of the new meshToVolume interior testing parameters for the
resampling of level sets, where the original grid is used as the true
sign value. However, due to differences between polygonalization and
trilinear interpolation, this behaviour is disabled and exists as a
reference.
- Introduced openvdb::TupleList to wrap std::tuple and provide interface
interop methods with openvdb::TypeList.
- Added OPENVDB_FORCE_INLINE, OPENVDB_LIKELY and OPENVDB_UNLIKELY macros.
- Introduced openvdb::make_index_sequence to solve clang compilations
issues with compiler built-in index_sequence implementations.

- API changes:
- openvdb/tools/MeshToVolume's meshToVolume takes two
new optional arguments to provide an interior test oracle and an
interior testing methods. These allow the default
outside-flood-fill to be replaced if the actual sidedness can be
known.
[Contributed by Tomas Skrivan]
- PagedArray iterators no longer derive from std::iterator
(but remains standard compliant).
- Significant infrastructural change to the ValueAccessor header and
implementation. All ValueAccessor specializations have been consolidated
into a single class which supports all possible ValueAccessor configurations
using index_sequences. Backward compatible declarations have been provided.
The new ValueAccessor implementation is marked as final.
- PagedArray iterators no longer derive from std::iterator
(but remains standard compliant).

- Bug Fixes:
- Fixed a build issue where Boost was not being pulled in when
OPENVDB_USE_DELAYED_LOADING was set to OFF.
- Fixed the constants used in openvdb::math::Coord::hash() and nanovdb::Coord::hash()
to correctly be prime numbers (note that this changes the result of these methods).
[Contributed by Benedikt Mersch]
- Improved support for compiling with C++20.
[Contributed by Denys Maletskyy and Jérémie Dumas]
- OpenVDB's CMake no longer modifies the BUILD_SHARED_LIBS variable.
[Reported by Maksim Shabunin]
- Internal counters in tree::RangeIterator were limited to 32bit precision.
They are now extended to size_t.
[Reported by SpaceX]
Expand All @@ -80,20 +75,6 @@ OpenVDB:
- Fixed a bug with LeafNodeBool Topology constructor with designated
on/off values which wouldn't apply them correctly.
[Reported by @hozhaoea]
- Fixed a compilation error that would be encountered when attempting to
enable the SSE4.2 or AVX SIMD options on non-x86 based platforms.
- The Half.h is no longer built with an internal lookup table, but
explicitly selects the non-LUT version and disables the creation of
a LUT. This is required to avoid symbol conflicts with
different namespaced OpenVDB builds.
- Fixed a compilation issue with the min() and max() methods on Stencils
in openvdb/math/Stencils.h.
[Reported by Samuel Mauch]
- Introduced openvdb::make_index_sequence to solve clang compilations
issues with compiler builtin index_sequence implementations.
- Introduced openvdb::TupleList to wrap std::tuple and provide interface
interop methods with openvdb::TypeList.
- Added OPENVDB_FORCE_INLINE, OPENVDB_LIKELY and OPENVDB_UNLIKELY macros.

@par
OpenVDB AX:
Expand All @@ -103,8 +84,6 @@ OpenVDB AX:
- Bug Fixes:
- Fixed a bug in AX on older X86 hardware which could cause a crash when
accessing point attributes with half compression (bug introduced in 9.1.0).
- Fixed a build issue with AX on 32-bit platforms.
[Reported by Mathieu Malaterre]
- Fixed an incorrect option in the `vdb_ax` command line tool where the default
optimization level was set to NONE instead of O3 (issue introduced in 10.0.0).

Expand All @@ -118,6 +97,23 @@ OpenVDB Houdini:
- Fix a bug in the projection mode of the Advect Points SOP that was causing
a segfault.

@par
Build:
- Fixed a build issue where Boost was not being pulled in when
OPENVDB_USE_DELAYED_LOADING was set to OFF.
- Fixed a build issue with AX on 32-bit platforms.
[Reported by Mathieu Malaterre]
- Fixed a compilation issue with the min() and max() methods on Stencils
in openvdb/math/Stencils.h.
[Reported by Samuel Mauch]
- Fixed a compilation error that would be encountered when attempting to
enable the SSE4.2 or AVX SIMD options on non-x86 based platforms.
- Improved support for compiling with C++20.
[Contributed by Denys Maletskyy and Jérémie Dumas]
- OpenVDB's CMake no longer modifies the BUILD_SHARED_LIBS variable.
[Reported by Maksim Shabunin]
- Fix int-in-bool-context GCC9+ warnings by switching to use constexpr if.

@par
@htmlonly <a name="v10_0_1_changes"></a>@endhtmlonly
@par
Expand Down