Skip to content

Commit 53044dc

Browse files
authored
Merge pull request #1682 from AcademySoftwareFoundation/v10.1.0_rc
Merging VDB 10.1.0 release back to master
2 parents 172a31c + 3cd310f commit 53044dc

27 files changed

+217
-127
lines changed

CHANGES

Lines changed: 104 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,111 @@
11
OpenVDB Version History
22
=======================
33

4-
Version 10.0.2 - In development
4+
Version 10.1.0 - October 11, 2023
55

6+
Highlights:
7+
- OpenVDB Python bindings are now implemented using pybind11 instead of
8+
Boost.Python.
9+
[Contributed by Matthew Cong]
10+
11+
OpenVDB:
12+
New features:
13+
- Added points::replicate() for the replication of PointDataGrid points
14+
and attributes.
15+
16+
Improvements:
17+
- Upgraded OpenVDBs internal half representation to IMath 3.1.6. Brings
18+
conversion support using F16C instructions (if enabled using -mf16c) and
19+
the removal of the exponent lookup table in favor of bit shifting.
20+
- OpenVDBs copy of Half.h is no longer built with an internal lookup table,
21+
but explicitly selects the non-LUT version and disables the creation of
22+
the LUT. This is required to avoid symbol conflicts with different
23+
namespaced OpenVDB builds.
24+
- Removed boost::uuid from Archive, instead std::random_device is used
25+
directly to generate UUID-like objects.
26+
- Moved all cases of file static/global variables which relied on non-trivial
27+
construction into function scopes as static locals. These would previously
28+
initialize themselves on start-up in a non-deterministic, compiler-dictated
29+
order(static-initialization-order-fiasco). This order is now defined by the
30+
program's execution.
31+
- Fixed the constants used in openvdb::math::Coord::hash() and
32+
nanovdb::Coord::hash() to correctly be prime numbers (note that this
33+
changes the result of these methods).
34+
[Contributed by Benedikt Mersch]
35+
- Updated tools::meshToVolume to take two new optional arguments to provide
36+
an interior test oracle and an interior testing method. These allow the
37+
default outside-flood-fill to be replaced if the actual sidedness can be
38+
known.
39+
[Contributed by Tomas Skrivan]
40+
- LevelSetRebuild now includes example code that demonstrates the intended
41+
use of the new meshToVolume interior testing parameters for the
42+
resampling of level sets, where the original grid is used as the true
43+
sign value. However, due to differences between polygonalization and
44+
trilinear interpolation, this behaviour is disabled and exists as a
45+
reference.
46+
- Introduced openvdb::TupleList to wrap std::tuple and provide interface
47+
interop methods with openvdb::TypeList.
48+
- Added OPENVDB_FORCE_INLINE, OPENVDB_LIKELY and OPENVDB_UNLIKELY macros.
49+
- Introduced openvdb::make_index_sequence to solve clang compilations
50+
issues with compiler built-in index_sequence implementations.
51+
52+
API changes:
53+
- Significant infrastructural change to the ValueAccessor header and
54+
implementation. All ValueAccessor specializations have been consolidated
55+
into a single class which supports all possible ValueAccessor configurations
56+
using index_sequences. Backward compatible declarations have been provided.
57+
The new ValueAccessor implementation is marked as final.
58+
- PagedArray iterators no longer derive from std::iterator
59+
(but remains standard compliant).
60+
61+
Bug Fixes:
62+
- Internal counters in tree::RangeIterator were limited to 32bit precision.
63+
They are now extended to size_t.
64+
[Reported by SpaceX]
65+
- Fixed a bug when compiling with -fvisibility=hidden and GCC 11 which
66+
would cause a crash in openvdb::initialize().
67+
- Fixed a bug with LeafManager which wouldn't correctly
68+
initialize its LeafNode array for single level Tree configurations
69+
i.e. RootNode<LeafNode> (bug introduced in 7.2.0).
70+
[Reported by @lanwatch]
71+
- Fixed a bug with LeafNodeBool Topology constructor with designated
72+
on/off values which wouldn't apply them correctly.
73+
[Reported by @hozhaoea]
74+
75+
OpenVDB AX:
76+
Improvements:
77+
- Added support for LLVM 15.
78+
79+
Bug Fixes:
80+
- Fixed a bug in AX on older X86 hardware which could cause a crash when
81+
accessing point attributes with half compression (bug introduced in 9.1.0).
82+
- Fixed an incorrect option in the `vdb_ax` command line tool where the default
83+
optimization level was set to NONE instead of O3 (issue introduced in 10.0.0).
84+
85+
Houdini:
86+
Improvements:
87+
- Added Preserve Holes option to VDB From Polygons that uses the
88+
fast winding oracle to not collapse holes in polygonal geometry.
89+
90+
Bug Fixes:
91+
- Fix a bug in the projection mode of the Advect Points SOP that was causing
92+
a segfault.
93+
94+
Build:
95+
- Fixed a build issue where Boost was not being pulled in when
96+
OPENVDB_USE_DELAYED_LOADING was set to OFF.
97+
- Fixed a build issue with AX on 32-bit platforms.
98+
[Reported by Mathieu Malaterre]
99+
- Fixed a compilation issue with the min() and max() methods on Stencils
100+
in openvdb/math/Stencils.h.
101+
[Reported by Samuel Mauch]
102+
- Fixed a compilation error that would be encountered when attempting to
103+
enable the SSE4.2 or AVX SIMD options on non-x86 based platforms.
104+
- Improved support for compiling with C++20.
105+
[Contributed by Denys Maletskyy and Jérémie Dumas]
106+
- OpenVDB's CMake no longer modifies the BUILD_SHARED_LIBS variable.
107+
[Reported by Maksim Shabunin]
108+
- Fix int-in-bool-context GCC9+ warnings by switching to use constexpr if.
6109

7110
Version 10.0.1 - November 30, 2022
8111

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,8 +53,8 @@ endif()
5353
###### Version
5454

5555
set(OpenVDB_MAJOR_VERSION 10)
56-
set(OpenVDB_MINOR_VERSION 0)
57-
set(OpenVDB_PATCH_VERSION 2)
56+
set(OpenVDB_MINOR_VERSION 1)
57+
set(OpenVDB_PATCH_VERSION 0)
5858
set(OpenVDB_VERSION "${OpenVDB_MAJOR_VERSION}.${OpenVDB_MINOR_VERSION}.${OpenVDB_PATCH_VERSION}")
5959

6060
project(OpenVDB LANGUAGES CXX VERSION ${OpenVDB_VERSION})

doc/changes.txt

Lines changed: 110 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,119 @@
22

33
@page changes Release Notes
44

5-
@htmlonly <a name="v10_0_2_changes"></a>@endhtmlonly
5+
@htmlonly <a name="v10_1_0_changes"></a>@endhtmlonly
66
@par
7-
<B>Version 10.0.2</B> - <I>In development</I>
7+
<B>Version 10.1.0</B> - <I>October 11, 2023</I>
88

9+
@par
10+
Highlights:
11+
- OpenVDB Python bindings are now implemented using pybind11 instead of Boost.Python.
12+
[Contributed by Matthew Cong]
13+
14+
@par
15+
OpenVDB:
16+
- New features:
17+
- Added points::replicate() for the replication of PointDataGrid points
18+
and attributes.
19+
20+
- Improvements:
21+
- Upgraded OpenVDBs internal half representation to IMath 3.1.6. Brings
22+
conversion support using F16C instructions (if enabled using -mf16c) and
23+
the removal of the exponent lookup table in favor of bit shifting.
24+
- OpenVDBs copy of Half.h is no longer built with an internal lookup table,
25+
but explicitly selects the non-LUT version and disables the creation of
26+
the LUT. This is required to avoid symbol conflicts with different
27+
namespaced OpenVDB builds.
28+
- Removed boost::uuid from Archive, instead std::random_device is used
29+
directly to generate UUID-like objects.
30+
- Moved all cases of file static/global variables which relied on non-trivial
31+
construction into function scopes as static locals. These would previously
32+
initialize themselves on start-up in a non-deterministic, compiler-dictated
33+
order(static-initialization-order-fiasco). This order is now defined by the
34+
program's execution.
35+
- Fixed the constants used in openvdb::math::Coord::hash() and
36+
nanovdb::Coord::hash() to correctly be prime numbers (note that this
37+
changes the result of these methods).
38+
[Contributed by Benedikt Mersch]
39+
- Updated tools::meshToVolume to take two new optional arguments to provide
40+
an interior test oracle and an interior testing method. These allow the
41+
default outside-flood-fill to be replaced if the actual sidedness can be
42+
known.
43+
[Contributed by Tomas Skrivan]
44+
- LevelSetRebuild now includes example code that demonstrates the intended
45+
use of the new meshToVolume interior testing parameters for the
46+
resampling of level sets, where the original grid is used as the true
47+
sign value. However, due to differences between polygonalization and
48+
trilinear interpolation, this behaviour is disabled and exists as a
49+
reference.
50+
- Introduced openvdb::TupleList to wrap std::tuple and provide interface
51+
interop methods with openvdb::TypeList.
52+
- Added OPENVDB_FORCE_INLINE, OPENVDB_LIKELY and OPENVDB_UNLIKELY macros.
53+
- Introduced openvdb::make_index_sequence to solve clang compilations
54+
issues with compiler built-in index_sequence implementations.
955

56+
- API changes:
57+
- Significant infrastructural change to the ValueAccessor header and
58+
implementation. All ValueAccessor specializations have been consolidated
59+
into a single class which supports all possible ValueAccessor configurations
60+
using index_sequences. Backward compatible declarations have been provided.
61+
The new ValueAccessor implementation is marked as final.
62+
- PagedArray iterators no longer derive from std::iterator
63+
(but remains standard compliant).
64+
65+
- Bug Fixes:
66+
- Internal counters in tree::RangeIterator were limited to 32bit precision.
67+
They are now extended to size_t.
68+
[Reported by SpaceX]
69+
- Fixed a bug when compiling with -fvisibility=hidden and GCC 11 which
70+
would cause a crash in openvdb::initialize().
71+
- Fixed a bug with LeafManager which wouldn't correctly
72+
initialize its LeafNode array for single level Tree configurations
73+
i.e. RootNode<LeafNode> (bug introduced in 7.2.0).
74+
[Reported by @lanwatch]
75+
- Fixed a bug with LeafNodeBool Topology constructor with designated
76+
on/off values which wouldn't apply them correctly.
77+
[Reported by @hozhaoea]
78+
79+
@par
80+
OpenVDB AX:
81+
- Improvements:
82+
- Added support for LLVM 15.
83+
84+
- Bug Fixes:
85+
- Fixed a bug in AX on older X86 hardware which could cause a crash when
86+
accessing point attributes with half compression (bug introduced in 9.1.0).
87+
- Fixed an incorrect option in the `vdb_ax` command line tool where the default
88+
optimization level was set to NONE instead of O3 (issue introduced in 10.0.0).
89+
90+
@par
91+
OpenVDB Houdini:
92+
- Improvements:
93+
- Added Preserve Holes option to VDB From Polygons that uses the
94+
fast winding oracle to not collapse holes in polygonal geometry.
95+
96+
- Bug Fixes:
97+
- Fix a bug in the projection mode of the Advect Points SOP that was causing
98+
a segfault.
99+
100+
@par
101+
Build:
102+
- Fixed a build issue where Boost was not being pulled in when
103+
OPENVDB_USE_DELAYED_LOADING was set to OFF.
104+
- Fixed a build issue with AX on 32-bit platforms.
105+
[Reported by Mathieu Malaterre]
106+
- Fixed a compilation issue with the min() and max() methods on Stencils
107+
in openvdb/math/Stencils.h.
108+
[Reported by Samuel Mauch]
109+
- Fixed a compilation error that would be encountered when attempting to
110+
enable the SSE4.2 or AVX SIMD options on non-x86 based platforms.
111+
- Improved support for compiling with C++20.
112+
[Contributed by Denys Maletskyy and Jérémie Dumas]
113+
- OpenVDB's CMake no longer modifies the BUILD_SHARED_LIBS variable.
114+
[Reported by Maksim Shabunin]
115+
- Fix int-in-bool-context GCC9+ warnings by switching to use constexpr if.
116+
117+
@par
10118
@htmlonly <a name="v10_0_1_changes"></a>@endhtmlonly
11119
@par
12120
<B>Version 10.0.1</B> - <I>November 30, 2022</I>

openvdb/openvdb/util/PagedArray.h

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <deque>
2121
#include <cassert>
2222
#include <iostream>
23+
#include <iterator>
2324
#include <algorithm>// std::swap
2425
#include <atomic>
2526
#include <tbb/spin_mutex.h>
@@ -634,11 +635,6 @@ class PagedArray<ValueT, Log2PageSize>::ConstIterator
634635
const PagedArray* mParent;
635636
};// Public class PagedArray::ConstIterator
636637

637-
#ifdef OPENVDB_HAS_CXX20
638-
static_assert(std::random_access_iterator<PagedArray<int, 10UL>::ConstIterator>,
639-
"ConstIterator must satisfy random_access_iterator concept");
640-
#endif
641-
642638

643639
////////////////////////////////////////////////////////////////////////////////
644640

@@ -695,11 +691,6 @@ class PagedArray<ValueT, Log2PageSize>::Iterator
695691
PagedArray* mParent;
696692
};// Public class PagedArray::Iterator
697693

698-
#ifdef OPENVDB_HAS_CXX20
699-
static_assert(std::random_access_iterator<PagedArray<int, 10UL>::Iterator>,
700-
"Iterator must satisfy random_access_iterator concept");
701-
#endif
702-
703694
////////////////////////////////////////////////////////////////////////////////
704695

705696
// Private member-class of PagedArray implementing a memory page

pendingchanges/ax32fix.txt

Lines changed: 0 additions & 3 deletions
This file was deleted.

pendingchanges/ax_f16c.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.

pendingchanges/boost_build_fix.txt

Lines changed: 0 additions & 3 deletions
This file was deleted.

pendingchanges/coord_hash.txt

Lines changed: 0 additions & 4 deletions
This file was deleted.

pendingchanges/cplusplus20.txt

Lines changed: 0 additions & 5 deletions
This file was deleted.

pendingchanges/fix_RangeIterator.txt

Lines changed: 0 additions & 2 deletions
This file was deleted.

0 commit comments

Comments
 (0)