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

VDB 12.0.0 Release #1958

Merged
merged 17 commits into from
Nov 1, 2024
Merged
Show file tree
Hide file tree
Changes from 16 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
13 changes: 3 additions & 10 deletions .github/workflows/ax.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,14 +70,8 @@ jobs:
- { image: '2023-clang15', cxx: 'clang++', build: 'Release', cmake: '' }
- { image: '2023-clang15', cxx: 'g++', build: 'Release', cmake: '' }
- { image: '2023-clang15', cxx: 'clang++', build: 'Debug', cmake: '' }
- { image: '2022-clang11', cxx: 'clang++', build: 'Release', cmake: '' }
- { image: '2022-clang11', cxx: 'g++', build: 'Release', cmake: '' }
fail-fast: false
steps:
- name: Enable Node 16
if: contains(matrix.config.image, '2022')
run: |
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
- uses: actions/checkout@v3
- name: nanobind
#if: contains(matrix.config.image, '2023') == false
Expand Down Expand Up @@ -126,10 +120,9 @@ jobs:
strategy:
matrix:
config:
#@note llvm10 never got its own brew formula...
#@note llvm15 never got its own brew formula...
danrbailey marked this conversation as resolved.
Show resolved Hide resolved
# Last macos runner befor M1 (macos-14)
- { runner: 'macos-13', cxx: 'clang++', build: 'Release', llvm: '12' }
- { runner: 'macos-13', cxx: 'clang++', build: 'Release', llvm: '13' }
- { runner: 'macos-13', cxx: 'clang++', build: 'Release', llvm: '15' }
danrbailey marked this conversation as resolved.
Show resolved Hide resolved
fail-fast: false
steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -159,7 +152,7 @@ jobs:
github.event.inputs.type == 'grammar'
runs-on: ${{ (github.repository_owner == 'AcademySoftwareFoundation' && 'ubuntu-20.04-8c-32g-300h') || 'ubuntu-latest' }}
container:
image: aswf/ci-openvdb:2022-clang11
image: aswf/ci-openvdb:2023-clang15
steps:
- uses: actions/checkout@v3
- name: build
Expand Down
18 changes: 5 additions & 13 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,23 +76,15 @@ jobs:
strategy:
matrix:
config:
- { cxx: clang++, image: '2024', abi: '11', build: 'Release', cmake: '' }
- { cxx: g++, image: '2024', abi: '11', build: 'Release', cmake: '' }
- { cxx: clang++, image: '2024', abi: '11', build: 'Debug', cmake: '' }
- { cxx: clang++, image: '2023', abi: '11', build: 'Release', cmake: '' }
- { cxx: g++, image: '2023', abi: '11', build: 'Release', cmake: '' }
- { cxx: clang++, image: '2022', abi: '10', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
- { cxx: g++, image: '2022', abi: '10', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
- { cxx: clang++, image: '2024', abi: '12', build: 'Release', cmake: '' }
- { cxx: g++, image: '2024', abi: '12', build: 'Release', cmake: '' }
- { cxx: clang++, image: '2024', abi: '12', build: 'Debug', cmake: '' }
- { cxx: clang++, image: '2023', abi: '11', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
- { cxx: g++, image: '2023', abi: '11', build: 'Release', cmake: '-DDISABLE_DEPENDENCY_VERSION_CHECKS=ON' }
fail-fast: false
steps:
- name: Enable Node 16
# Solution taken from https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default
if: contains(matrix.config.image, '2022')
run: |
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
- uses: actions/checkout@v3
- name: nanobind
#if: contains(matrix.config.image, '2023') == false
run: ./ci/install_nanobind.sh 2.0.0
- name: glfw
if: contains(matrix.config.image, '2023') == true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ jobs:
github.event.inputs.deploy == 'docs'
uses: peaceiris/actions-gh-pages@v3
with:
deploy_key: ${{ secrets.ACTIONS_DEPLOY_KEY }}
deploy_key: ${{ secrets.PRIVATE_KEY }}
publish_dir: /usr/local/share/doc/OpenVDB/html
destination_dir: documentation/doxygen
external_repository: AcademySoftwareFoundation/openvdb-website
Expand Down
8 changes: 0 additions & 8 deletions .github/workflows/houdini.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,8 @@ jobs:
- { cxx: g++, image: '2023', hou_hash: '20_5', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
- { cxx: clang++, image: '2023', hou_hash: '20_0-newabi', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
- { cxx: g++, image: '2023', hou_hash: '20_0-newabi', build: 'Release', components: 'core,hou,bin,view,render,python,test,axcore,axbin,axtest' }
- { cxx: clang++, image: '2022', hou_hash: '20_0-oldabi', build: 'Release', components: 'core,hou' }
- { cxx: g++, image: '2022', hou_hash: '20_0-oldabi', build: 'Release', components: 'core,hou' }
fail-fast: false
steps:
# See note on this step in the Houdini weekly.yml job
# We can remove this when we no longer use < 2023 images
- name: Enable Node 16
run: |
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
- name: remove zstd
run: yum -y remove zstd
- uses: actions/checkout@v3
Expand All @@ -99,7 +92,6 @@ jobs:
if: contains(matrix.config.image, '2023') == true
run: ./ci/install_glfw.sh 3.3.10
- name: cppunit
if: contains(matrix.config.image, '2022') == false
run: ./ci/install_cppunit.sh 1.15.1
- name: timestamp
id: timestamp
Expand Down
8 changes: 2 additions & 6 deletions .github/workflows/nanovdb.yml
Original file line number Diff line number Diff line change
Expand Up @@ -67,10 +67,6 @@ jobs:
- { cxx: clang++, image: '2024', build: 'Debug' }
fail-fast: false
steps:
- name: Enable Node 16
if: contains(matrix.config.image, '2022')
run: |
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
- uses: actions/checkout@v3
- name: setup_cuda_12
run: |
Expand Down Expand Up @@ -150,8 +146,8 @@ jobs:
strategy:
matrix:
config:
- { runner: 'macos-12', cxx: 'clang++', build: 'Release' }
- { runner: 'macos-12', cxx: 'clang++', build: 'Debug' }
- { runner: 'macos-13', cxx: 'clang++', build: 'Release' }
- { runner: 'macos-13', cxx: 'clang++', build: 'Debug' }
fail-fast: false
steps:
- uses: actions/checkout@v3
Expand Down
29 changes: 3 additions & 26 deletions .github/workflows/weekly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,17 +70,12 @@ jobs:
strategy:
matrix:
config:
- { houdini_version: '19.5', platform: 'linux_x86_64_gcc9.3', hou_hash: '19_5' }
- { houdini_version: '20.0', platform: 'linux_x86_64_gcc9.3', hou_hash: '20_0-oldabi' }
- { houdini_version: '20.0', platform: 'linux_x86_64_gcc11.2', hou_hash: '20_0-newabi' }
- { houdini_version: '20.5', platform: 'linux_x86_64_gcc11.2', hou_hash: '20_5' }
fail-fast: false
container:
image: aswf/ci-base:2024
steps:
- name: Enable Node 16
run: |
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
- uses: actions/checkout@v3
# We bumped from the 2021 CI image to 2023 here to fix some OpenSSL issues
# with the Houdini download script. In so doing we broke some of the caching
Expand Down Expand Up @@ -172,9 +167,6 @@ jobs:
- { name: 'conf', build: 'Release', components: 'core,python,bin,view,render,test', cmake: '-DCMAKE_FIND_PACKAGE_PREFER_CONFIG=ON' }
fail-fast: false
steps:
- name: Enable Node 16
run: |
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
- uses: actions/checkout@v3
- name: nanobind
#if: contains(container.image, '2023') == false
Expand Down Expand Up @@ -224,7 +216,7 @@ jobs:
./ci/build.sh -v
--build-type=Release
--components=\"core,axcore,python,bin,render,test,axbin\"
--cargs=\"-DCMAKE_CXX_STANDARD=20 -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install ${{ matrix.config.cmake }}\"
--cargs=\"-DCMAKE_CXX_STANDARD=20 -DOPENVDB_USE_DELAYED_LOADING=OFF -DCMAKE_INSTALL_PREFIX=${{ github.workspace }}/install ${{ matrix.config.cmake }}\"
- name: test
run: cd build && ctest -V

Expand Down Expand Up @@ -303,20 +295,10 @@ jobs:
matrix:
config:
# Unified
- { image: '2023-clang14', cxx: 'clang++', build: 'Release', components: 'core,bin,axcore,axbin,axtest', cmake: '' }
- { image: '2023-clang14', cxx: 'g++', build: 'Release', components: 'core,bin,axcore,axbin,axtest', cmake: '' }
- { image: '2022-clang13', cxx: 'clang++', build: 'Release', components: 'core,bin,axcore,axbin,axtest', cmake: '' }
- { image: '2022-clang13', cxx: 'g++', build: 'Release', components: 'core,bin,axcore,axbin,axtest', cmake: '' }
# Standalone
- { image: '2022-clang11', cxx: 'clang++', build: 'Debug', components: 'core', cmake: '' }
- { image: '2022-clang11', cxx: 'clang++', build: 'Release', components: 'core', cmake: '' }
- { image: '2022-clang11', cxx: 'g++', build: 'Release', components: 'core', cmake: '' }
- { image: '2023-clang15', cxx: 'clang++', build: 'Release', components: 'core,bin,axcore,axbin,axtest', cmake: '' }
- { image: '2023-clang15', cxx: 'g++', build: 'Release', components: 'core,bin,axcore,axbin,axtest', cmake: '' }
fail-fast: false
steps:
- name: Enable Node 16
if: contains(matrix.config.image, '2022')
run: |
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
- uses: actions/checkout@v3
- name: nanobind
#f: contains(matrix.config.image, '2023') == false
Expand Down Expand Up @@ -364,9 +346,7 @@ jobs:
strategy:
matrix:
config:
- { cxx: 'clang++', build: 'Release', llvm: '14' }
- { cxx: 'clang++', build: 'Release', llvm: '15' }
#- { cxx: 'clang++', build: 'Release', llvm: '16' } - not supported yet
fail-fast: false
steps:
- uses: actions/checkout@v3
Expand Down Expand Up @@ -522,9 +502,6 @@ jobs:
blosc: ['1.18.0','1.19.0','1.20.0','1.21.0']
fail-fast: false
steps:
- name: Enable Node 16
run: |
echo "ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION=true" >> $GITHUB_ENV
- uses: actions/checkout@v3
- name: install_blosc
run: sudo ./ci/install_blosc.sh ${{ matrix.blosc }}
Expand Down
54 changes: 52 additions & 2 deletions CHANGES
Original file line number Diff line number Diff line change
@@ -1,9 +1,22 @@
OpenVDB Version History
=======================

Version 12.0.0 - In development
Version 12.0.0 - October 31, 2024

OpenVDB is now licensed under the Apache 2.0 license, instead of the MPL 2.0 license.

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 10 for
Houdini 20.0 and 11 for Houdini 20.5.

GCC 9 is no longer supported.

OpenVDB:
New features:
- Added fillet() method in tools::LevelSetFilter to round off concave edges
to create smoother transition between surfaces.

Improvements:
- Added openvdb::assertAbort to replace cassert and a
OPENVDB_ENABLE_ASSERTS cmake argument/compile define to toggle
Expand All @@ -19,11 +32,49 @@ Version 12.0.0 - In development
- ValueAccessors are now defined and created in the Tree class
instead of in the Grid class so that custom Tree implementations
may define and create their own ValueAccessors if desired.
- Added support for PDAL to vdb_tool [Contributed by Tom Matterson]
- LeafManager and NodeManager now use Index64 for leaf counts internally.
- Added RootNode::probeChild() const.
- Added RootNode::probeChild() and RootNode::probeConstChild().
- Added RootNode::probe() and RootNode::probeConst() to query key presence,
child node, value and active state.
- Added InternalNode::probeChild() const.
- Added InternalNode::probeChild() and probeChildConst() with coord access
and optionally value and active state.
- Added InternalNode::probeChild() and probeChildConst() with index access
and optionally value and active state.
- Added InternalNode::isValueOff(), LeafNode::isValueOff(),
LeafNodeBool::isValueOff(), LeafNodeMask::isValueOff().
- Added LeafNodeMask::probeValue(Index,val), LeafNodeBool::probeValue(Index,val).
- Added RootNode::getValueUnsafe(), RootNode::getChildUnsafe(),
RootNode::getConstChildUnsafe().
- Added InternalNode::getValueUnsafe(), InternalNode::getChildUnsafe(),
InternalNode::getConstChildUnsafe().
- Added InternalNode::setActiveStateUnsafe(), InternalNode::setValueOnlyUnsafe(),
InternalNode::setValueOnUnsafe(), InternalNode::setValueOffUnsafe().
- Added InternalNode::setChildUnsafe(), InternalNode::resetChildUnsafe(),
InternalNode::stealChildUnsafe(), InternalNode::deleteChildUnsafe().
- For LeafNode, LeafNodeBool and LeafNodeMask - added
LeafNode::getValueUnsafe(), LeafNode::setActiveStateunsafe(),
LeafNode::setValueOnlyUnsafe(), LeafNode::setValueOnUnsafe(),
LeafNode::setValueOffUnsafe().

ABI changes:
- Tree::leafCount(), Tree::unallocatedLeafCount(),
Tree::nonLeafCount() and Tree::nodeCount() now use Index64 in their
return types instead of Index32.

API Changes:
- RootNode::tileCount(), RootNode::activeTileCount() and
RootNode::inactiveTileCount() are now public.
- RootNode::hasKey() and RootNode::coordToKey() are now public.
- RootNode::leafCount(), RootNode::nonLeafCount() and RootNode::nodeCount()
now use Index64 instead of Index32. The Index32 variant is deprecated.
- InternalNode::leafCount(), InternalNode::nonLeafCount() and
InternalNode::nodeCount() now use Index64 instead of Index32. The Index32
variant is deprecated.
- LeafNode::leafCount() and LeafNode::nonLeafCount() now use Index64 instead
of Index32. The Index32 variant is deprecated.

Bug Fixes:
- Fix potential crash reading corrupt .vdb files with invalid
Expand Down Expand Up @@ -549,7 +600,6 @@ Version 9.1.0 - June 9, 2022
Positional arguments as input files are deprecated.
- Added tools::minMax() which supports multithreaded evaluation of active
minimum and maximum values. Grid::evalMinMax() has been deprecated.
[Contributed by Greg Hurst]
- Significant performance improvements to AX point kernels, primarily due to
providing AX access to attribute buffers for superior code generation.
- vdb_print now prints both the in-core memory and total memory usage for
Expand Down
10 changes: 5 additions & 5 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@

# note: cmake_minimum_required must be called before project commands to
# ensure policy scope is set up correctly
cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.20)

# CMP0091 allows for MSVC ABI targetting via CMAKE_MSVC_RUNTIME_LIBRARY
# from CMake 3.15 and above. Must come before project().
Expand All @@ -52,9 +52,9 @@ endif()

###### Version

set(OpenVDB_MAJOR_VERSION 11)
set(OpenVDB_MAJOR_VERSION 12)
set(OpenVDB_MINOR_VERSION 0)
set(OpenVDB_PATCH_VERSION 1)
set(OpenVDB_PATCH_VERSION 0)
set(OpenVDB_VERSION "${OpenVDB_MAJOR_VERSION}.${OpenVDB_MINOR_VERSION}.${OpenVDB_PATCH_VERSION}")

project(OpenVDB LANGUAGES CXX VERSION ${OpenVDB_VERSION})
Expand Down Expand Up @@ -479,8 +479,8 @@ endif()
if(OPENVDB_BUILD_PYTHON_MODULE OR (OPENVDB_BUILD_NANOVDB AND NANOVDB_BUILD_PYTHON_MODULE))

# Call find_package(Python ...)
find_package(Python 3.8 REQUIRED COMPONENTS Development Interpreter)
find_package(nanobind REQUIRED)
find_package(Python ${MINIMUM_PYTHON_VERSION} REQUIRED COMPONENTS Development Interpreter)
find_package(nanobind ${MINIMUM_NANOBIND_VERSION} REQUIRED)
danrbailey marked this conversation as resolved.
Show resolved Hide resolved

if(OPENVDB_FUTURE_DEPRECATION AND FUTURE_MINIMUM_PYTHON_VERSION)
if(Python_VERSION VERSION_LESS ${FUTURE_MINIMUM_PYTHON_VERSION})
Expand Down
1 change: 1 addition & 0 deletions ci/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ set -x
# regardless of the 'test' component being enabled or not (see the OPENVDB_BUILD_PYTHON_UNITTESTS option).
cmake \
-DOPENVDB_USE_DEPRECATED_ABI_10=ON \
-DOPENVDB_USE_DEPRECATED_ABI_11=ON \
-DOPENVDB_BUILD_VDB_PRINT=ON \
-DOPENVDB_BUILD_VDB_LOD=ON \
-DOPENVDB_BUILD_VDB_TOOL=ON \
Expand Down
2 changes: 1 addition & 1 deletion ci/install_llvm_windows.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ set -ex

LLVM_CRT="$1"

git clone -b llvmorg-12.0.0 --depth 1 https://github.com/llvm/llvm-project.git llvm
git clone -b llvmorg-14.0.0 --depth 1 https://github.com/llvm/llvm-project.git llvm
cd llvm

mkdir .build
Expand Down
2 changes: 1 addition & 1 deletion ci/test_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ set -e
# the expected VDB installation

cmakelists="
cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.20)
project(TestInstall LANGUAGES CXX)
find_package(OpenVDB REQUIRED COMPONENTS openvdb)
add_executable(test_vdb_print \"../openvdb_cmd/vdb_print/main.cc\")
Expand Down
2 changes: 1 addition & 1 deletion cmake/FindBlosc.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ may be provided to tell this module where to look.

#]=======================================================================]

cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.20)
include(GNUInstallDirs)

mark_as_advanced(
Expand Down
2 changes: 1 addition & 1 deletion cmake/FindCppUnit.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ may be provided to tell this module where to look.

#]=======================================================================]

cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.20)
include(GNUInstallDirs)


Expand Down
2 changes: 1 addition & 1 deletion cmake/FindJemalloc.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ may be provided to tell this module where to look.

#]=======================================================================]

cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.20)
include(GNUInstallDirs)


Expand Down
2 changes: 1 addition & 1 deletion cmake/FindLog4cplus.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ may be provided to tell this module where to look.

#]=======================================================================]

cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.20)
include(GNUInstallDirs)


Expand Down
2 changes: 1 addition & 1 deletion cmake/FindOpenEXR.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ may be provided to tell this module where to look.

#]=======================================================================]

cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.20)
include(GNUInstallDirs)


Expand Down
2 changes: 1 addition & 1 deletion cmake/FindOpenVDB.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ may be provided to tell this module where to look.

#]=======================================================================]

cmake_minimum_required(VERSION 3.18)
cmake_minimum_required(VERSION 3.20)
include(GNUInstallDirs)


Expand Down
Loading
Loading