Skip to content

Commit

Permalink
Merge pull request AcademySoftwareFoundation#1705 from AcademySoftwar…
Browse files Browse the repository at this point in the history
…eFoundation/v11_0_0_notes

v11.0.0 Update release notes
  • Loading branch information
danrbailey authored Nov 1, 2023
2 parents e11125d + 9ac0553 commit 6c044e6
Show file tree
Hide file tree
Showing 3 changed files with 107 additions and 139 deletions.
108 changes: 48 additions & 60 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,86 +1,74 @@
OpenVDB Version History
=======================

Version 11.0.0 - October 31, 2023
Version 11.0.0 - November 1, 2023

This version introduces ABI changes relative to older major releases,
so to preserve ABI compatibility it might be necessary to define the
macro OPENVDB_ABI_VERSION_NUMBER=N, where, for example, N is 9 for
Houdini 19.5 and 10 for Houdini 20.0.

OpenEXR 2 and Python 2 are no longer supported.
Boost is now an optional OpenVDB dependency.

OpenVDB:
Improvements:
- Removed last traces of Boost when OPENVDB_USE_DELAYED_LOADING is OFF
- Removed use of boost::any in favor of std::any.
[Contributed by Brian McKinnon]

Bug Fixes:
- Fix potential crash reading corrupt .vdb files with invalid
blosc or zip chunks.
[Contributed by Matthias Ueberheide]

NanoVDB:
API Changes:
- Minor version changed from 4 to 6 (major version is unchanged since the ABI is
preserved)
- nanovdb::Vec3R is deprecated. Use nanovdb::Vec3d instead.
- nanoToOpenVDB now accepts the index of the NanoVDB grid contained inside of a
GridHandle to be converted to OpenVDB.
- DataTypes are now public in all node types.
- GridMetaData can be copied.
- Major improvements to GridBuilder.h, which allows users to construct grids
with random access on the host
- The move constructor now requires the GridBuffer to actually contain a
valid grid
- Moved CudaDeviceBuffer.h to cuda/CudaDeviceBuffer.h
- Added nanovdb::pi()
- Introduced a new extendable API for acceleration of custom random-access
get/set methods on ValueAccessor, e.g. getValue(ijk), isActive
(ijk), probeValue(ijk, val).
- Added nanovdb::BitFlags.
- Added minComponentAtomic and maxComponentAtomic methods on the GPU to
nanovdb::Vec2 and nanovdb::Vec3. Added expandAtomic and intersectAtomic on
nanovdb::BBox, and expandAtomic in nanovdb::Coord.
- Added nanovdb::Map constructors.
- Mask:: DenseIterator, Mask:: setOnAtomic,Mask:: setOffAtomic.
- Improved and renamed device function that converts voxels into a grid -
nanovdb::cudaVoxelsToGrid
Highlights:
- Several new tools to generate and modify NanoVDB grids on the GPU.
- New file format that supports streaming of raw grid buffers.

New Features:
- Added a new grid class called IndexGrid in 4 flavors (Index, OnIndex,
IndexMask, OnIndexMask).
- Several new ways to construct and modify NanoVDB grids on the GPU. See
CreateNanoGrid.h and CudaPointsToGrid.cuh.
- New device function to convert points into a compact grid -
nanovdb::cudaPointsToGrid
- Added cuda/CudaUtils.h and cuda/GpuTimer.h with cuda utility functions
- Added cuda/CudaPointToGrids.cuh that constructs device grids from points or
voxels
- Added cuda/CudaIndexToGrid.cuh that converts IndexGrids and values into
regular Grids
- Added cuda/CudaSignedFloodFill.cuh that performs signed-flood filing on SDF on
the GPU
- Added cuda/CudaAddBlindData.cuh that adds blind data to an existing grid on the
GPU
- Added cuda/CudaGridChecksum.cuh that computes CRC32 checksums of grids on the
GPU
- Added cuda/CudaGridHandle.cuh that handles grids on the GPU
- Added cuda/CudaNodeManager.cuh that constructs a NodeManager on the GPU
- Introduced new (dummy) build-type nanovdb::Points and
nanovdb::GridType::PointIndex
- Introduced new types nanovdb::GridType::Vec3u16 and nanovdb::GridType::Vec3u8
used for compressed representations of point coordinates as blind data
- Added PrefixSum.h for concurrent computation of prefix sum on the host
- Primitives.h can now create grids on the CPU with SDF, FOG, and point or
torus
- New memory efficient GridClass::IndexGrid that separates values from tree
- 4 new GridTypes (Index, OnIndex, IndexMask, OnIndexMask) used by IndexGrid
- Added createNanoGrid that replaces older conversion methods in GridBuilder.h,
IndexGridBuilder.h and OpenToNanoVDB.h
- Added cudaPointsToGrid that constructs a point device grid from a list of
points.
- Added cudaVoxelsToGrid that constructs a voxel device grid from a list of
voxels.
- Added cuda/CudaUtils.h with several cuda utility functions.
- Added GpuTimer for timing of kernels in a specific cuda stream.
- Added cudaIndexToGrid that converts IndexGrids into regular Grids.
- Added cudaSignedFloodFill that performs signed-flood filling on the GPU.
- Added cudaAddBlindData that adds blind data to an existing grid on the GPU.
- Added cudaGridChecksum that computes checksums of device grids.
- Added cudaGridHandle that handles grids on the GPU.
- Added cudaNodeManager that constructs a NodeManager on the GPU.
- Added build type Points and GridType::PointIndex for point grids.
- Added GridType::Vec3u16 and GridType::Vec3u8 for compressed coordinates.
- Added PrefixSum.h for concurrent computation of prefix sum on the CPU.

Improvements:
- Transition from C++11 to C++17 in NanoVDB.h and its tools
- Improve NanoVDB Build Traits.
- CreateNanoGrid.h is replacing GridBuilder.h, IndexGridBuilder.h and
OpenToNanoVDB.h.
API Changes:
- Version 32.6.0 (ABI is unchanged).
- Transition from C++11 to C++17
- Vec3R is deprecated, please use Vec3d instead.
- nanoToOpenVDB now takes the index of a NanoVDB in a GridHandle.
- GridData, InternalData and LeafData are now public.
- GridMetaData can be copied.
- Improvements to GridBuilder.h that allows construction of grids on CPU.
- GridHandle's move c-tor now requires the GridBuffer to contain a valid grid.
- Moved CudaDeviceBuffer.h to cuda/CudaDeviceBuffer.h.
- New API for acceleration of custom random-access with ValueAccessors.
- Added BitFlags class for convenient bit-mask operations.
- Added Vec2/3::min/maxComponentAtomic GPU methods.
- Added BBox::expandAtomic and BBox::intersectAtomic.
- Added Coord::expandAtomic.
- Added Map constructors.
- Added Mask::DenseIterator, Mask::setOnAtomic, and Mask::setOffAtomic.
- InternalNode::ChildIterator is now const-correct.
- Added several new NanoVDB Build Traits.
- Syncing PNanoVDB.h with NanoVDB.h.

Build:
- Support for OpenEXR 2.X has been removed.
- Boost is no longer required if OPENVDB_USE_DELAYED_LOADING is OFF
- Better support for building with external package configurations
with CMAKE_FIND_PACKAGE_PREFER_CONFIG=ON.

Expand Down
135 changes: 59 additions & 76 deletions doc/changes.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

@htmlonly <a name="v11_0_0_changes"></a>@endhtmlonly
@par
<B>Version 11.0.0</B> - <I>October 31, 2023</I>
<B>Version 11.0.0</B> - <I>November 1, 2023</I>

@par
<BLOCKQUOTE>
Expand All @@ -18,96 +18,79 @@ preserve ABI compatibility it might be necessary to define the macro
OpenEXR 2 and Python 2 are no longer supported.
</BLOCKQUOTE>

<BLOCKQUOTE>
Boost is now an optional OpenVDB dependency.
</BLOCKQUOTE>

@par
OpenVDB:
Improvements:
- Removed last traces of Boost when <TT>OPENVDB_USE_DELAYED_LOADING</TT> is <TT>OFF</TT>
- Improvements:
- Removed use of @c boost::any in favor of @c std::any.
<I>[Contributed&nbsp;by&nbsp;Brian&nbsp;McKinnon]</I>

- Bug Fixes:
- Fix potential crash reading corrupt .vdb files with invalid blosc or zip
chunks.
<I>[Contributed&nbsp;by&nbsp;Matthias&nbsp;Ueberheide]</I>

@par
NanoVDB:
API Changes:
- Minor version changed from 4 to 6 (major version is unchanged since the ABI
is preserved)
- @c nanovdb::Vec3R is deprecated. Use @c nanovdb::Vec3d instead.
- <TT>nanoToOpenVDB</TT> now accepts the index of the NanoVDB grid contained
inside of a GridHandle to be converted to OpenVDB.
- DataTypes are now public in all node types.
- GridMetaData can be copied.
- Major improvements to <TT>GridBuilder.h</TT>, which allows users to
construct grids with random access on the host
- The move constructor now requires the GridBuffer to actually contain a valid
grid
- Moved <TT>CudaDeviceBuffer.h</TT> to <TT>cuda/CudaDeviceBuffer.h</TT>
- Added @c nanovdb::pi()
- Introduced a new extendable API for acceleration of custom random-access
get/set methods on ValueAccessor, e.g. @c getValue(ijk), @c isActive
(ijk), @c probeValue(ijk, val).
- Added @c nanovdb::BitFlags.
- Added @c minComponentAtomic and @c maxComponentAtomic methods on the GPU
to @c nanovdb::Vec2 and @c nanovdb::Vec3. Added @c expandAtomic and @c
intersectAtomic on @c nanovdb::BBox, and @c expandAtomic in @c
nanovdb::Coord.
- Added @c nanovdb::Map constructors.
- <TT>Mask:: DenseIterator</TT>, <TT>Mask:: setOnAtomic</TT>,<TT>Mask::
setOffAtomic</TT>.
- Improved and renamed device function that converts voxels into a grid - @c
nanovdb::cudaVoxelsToGrid

@par
New Features:
- Added a new grid class called IndexGrid in 4 flavors (Index, OnIndex,
IndexMask, OnIndexMask).
- Several new ways to construct and modify NanoVDB grids on the GPU. See
<TT>CreateNanoGrid.h</TT> and <TT>CudaPointsToGrid.cuh</TT>.
- New device function to convert points into a compact grid -
nanovdb::cudaPointsToGrid
- Added <TT>cuda/CudaUtils.h</TT> and <TT>cuda/GpuTimer.h</TT> with cuda
utility functions
- Added <TT>cuda/CudaPointToGrids.cuh</TT> that constructs device grids from
points or voxels
- Added <TT>cuda/CudaIndexToGrid.cuh</TT> that converts IndexGrids and values
into regular Grids
- Added <TT>cuda/CudaSignedFloodFill.cuh</TT> that performs signed-flood
filing on SDF on the GPU
- Added <TT>cuda/CudaAddBlindData.cuh</TT> that adds blind data to an existing
grid on the GPU
- Added <TT>cuda/CudaGridChecksum.cuh</TT> that computes <TT>CRC32</TT>
checksums of grids on the GPU
- Added <TT>cuda/CudaGridHandle.cuh</TT> that handles grids on the GPU
- Added <TT>cuda/CudaNodeManager.cuh</TT> that constructs a NodeManager on the
GPU
- Introduced new (dummy) build-type @c nanovdb::Points and @c
nanovdb::GridType::PointIndex
- Introduced new types @c nanovdb::GridType::Vec3u16 and @c
nanovdb::GridType::Vec3u8 used for compressed representations of point
coordinates as blind data
- Added <TT>PrefixSum.h</TT> for concurrent computation of prefix sum on the
host
- <TT>Primitives.h</TT> can now create grids on the CPU with SDF, FOG, and
point or torus
- Highlights:
- Several new tools to generate and modify NanoVDB grids on the GPU.
- New file format that supports streaming of raw grid buffers.

@par
Improvements:
- Transition from <TT>C++11</TT> to <TT>C++17</TT> in <TT>NanoVDB.h</TT> and
its tools
- Improve NanoVDB Build Traits.
- <TT>CreateNanoGrid.h</TT> is replacing <TT>GridBuilder.h</TT>,
<TT>IndexGridBuilder.h</TT> and <TT>OpenToNanoVDB.h</TT>.
- New Features:
- New memory efficient @c GridClass::IndexGrid that separates values from tree
- 4 new GridTypes (@c Index, @c OnIndex, @c IndexMask, @c OnIndexMask) used by
IndexGrid
- Added @c createNanoGrid that replaces older conversion methods in
<TT>GridBuilder.h</TT>, <TT>IndexGridBuilder.h</TT> and
<TT>OpenToNanoVDB.h</TT>
- Added @c cudaPointsToGrid that constructs a point device grid from a list of
points.
- Added @c cudaVoxelsToGrid that constructs a voxel device grid from a list of
voxels.
- Added <TT>cuda/CudaUtils.h</TT> with several cuda utility functions.
- Added @c GpuTimer for timing of kernels in a specific cuda stream.
- Added @c cudaIndexToGrid that converts IndexGrids into regular Grids.
- Added @c cudaSignedFloodFill that performs signed-flood filling on the GPU.
- Added @c cudaAddBlindData that adds blind data to an existing grid on the
GPU.
- Added @c cudaGridChecksum that computes checksums of device grids.
- Added @c cudaGridHandle that handles grids on the GPU.
- Added @c cudaNodeManager that constructs a NodeManager on the GPU.
- Added build type @c Points and @c GridType::PointIndex for point grids.
- Added @c GridType::Vec3u16 and @c GridType::Vec3u8 for compressed
coordinates.
- Added <TT>PrefixSum.h</TT> for concurrent computation of prefix sum on the
CPU.

- API Changes:
- Version 32.6.0 (ABI is unchanged).
- Transition from C++11 to C++17
- Vec3R is deprecated, please use Vec3d instead.
- nanoToOpenVDB now takes the index of a NanoVDB in a GridHandle.
- GridData, InternalData and LeafData are now public.
- GridMetaData can be copied.
- Improvements to <TT>GridBuilder.h</TT> that allows construction of grids on
CPU.
- GridHandle's move c-tor now requires the GridBuffer to contain a valid grid.
- Moved <TT>CudaDeviceBuffer.h</TT> to <TT>cuda/CudaDeviceBuffer.h</TT>.
- New API for acceleration of custom random-access with ValueAccessors.
- Added BitFlags class for convenient bit-mask operations.
- Added Vec2/3 min/maxComponentAtomic GPU methods.
- Added @c BBox::expandAtomic and @c BBox::intersectAtomic.
- Added @c Coord::expandAtomic.
- Added Map constructors.
- Added @c Mask::DenseIterator, @c Mask::setOnAtomic, and
@c Mask::setOffAtomic.
- @c InternalNode::ChildIterator is now const-correct.
- Added several new NanoVDB Build Traits.
- Syncing <TT>PNanoVDB.h</TT> with <TT>NanoVDB.h</TT>.

@par
Build:
- Support for <TT>OpenEXR 2.X</TT> has been removed.
- Boost is no longer required if <TT>OPENVDB_USE_DELAYED_LOADING</TT> is
<TT>OFF</TT>
- Better support for building with external package configurations with
<TT>CMAKE_FIND_PACKAGE_PREFER_CONFIG=ON</TT>.

@par
Python:
- Removed Python 2 support.
<I>[Contributed&nbsp;by&nbsp;Matthew&nbsp;Cong]</I>
Expand Down
3 changes: 0 additions & 3 deletions pendingchanges/iofix.txt

This file was deleted.

0 comments on commit 6c044e6

Please sign in to comment.