diff --git a/CHANGES b/CHANGES index 9486a712c3..c51d115b50 100644 --- a/CHANGES +++ b/CHANGES @@ -1,7 +1,7 @@ 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 @@ -9,78 +9,66 @@ Version 11.0.0 - October 31, 2023 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. diff --git a/doc/changes.txt b/doc/changes.txt index a06d65ee17..b7435d86d2 100644 --- a/doc/changes.txt +++ b/doc/changes.txt @@ -4,7 +4,7 @@ @htmlonly @endhtmlonly @par -Version 11.0.0 - October 31, 2023 +Version 11.0.0 - November 1, 2023 @par
@@ -18,96 +18,79 @@ preserve ABI compatibility it might be necessary to define the macro OpenEXR 2 and Python 2 are no longer supported.
-
-Boost is now an optional OpenVDB dependency. -
- @par OpenVDB: - Improvements: - - Removed last traces of Boost when OPENVDB_USE_DELAYED_LOADING is OFF +- Improvements: + - Removed use of @c boost::any in favor of @c 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] + @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. - - 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 @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. - - Mask:: DenseIterator, Mask:: setOnAtomic,Mask:: - setOffAtomic. - - 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 - 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 @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 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 +- 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 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. +- 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 + GridBuilder.h, IndexGridBuilder.h and + OpenToNanoVDB.h + - 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 cuda/CudaUtils.h 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 PrefixSum.h 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 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 @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 PNanoVDB.h with NanoVDB.h. @par 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. +@par Python: - Removed Python 2 support. [Contributed by Matthew Cong] diff --git a/pendingchanges/iofix.txt b/pendingchanges/iofix.txt deleted file mode 100644 index 6d095d7a02..0000000000 --- a/pendingchanges/iofix.txt +++ /dev/null @@ -1,3 +0,0 @@ -Bug Fixes: - - Fix potential crash reading corrupt .vdb files with invalid - blosc or zip chunks. [Fix thanks to Matthias Ueberheide]