Skip to content

Commit df42cb6

Browse files
committed
Merge branch 'master' into v9.1.0_rc
2 parents dcebff6 + a0b661b commit df42cb6

File tree

4 files changed

+113
-89
lines changed

4 files changed

+113
-89
lines changed

.github/workflows/weekly.yml

Lines changed: 28 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -537,18 +537,38 @@ jobs:
537537
git clone https://github.com/lvc/abi-compliance-checker abi-compliance-checker
538538
cd abi-compliance-checker && git checkout 7c175c45a8ba9ac41b8e47d8ebbab557b623b18e && cd -
539539
- name: build_latest
540-
run: |
541-
CXXFLAGS=-Og ./ci/build.sh --build-dir=build_latest -v --build-type=Debug --target=openvdb_shared --components=\"core\" --cargs=\'-DUSE_EXPLICIT_INSTANTIATION=OFF\'
540+
run: >
541+
CXXFLAGS=-Og ./ci/build.sh -v
542+
--build-dir=build_latest
543+
--build-type=Debug
544+
--target=openvdb_shared
545+
--components=\"core\"
546+
--cargs=\'-DUSE_EXPLICIT_INSTANTIATION=OFF\'
547+
- name: checkout_v9
548+
run: git checkout v9.0.0
542549
- name: build_9
543-
run: |
544-
git checkout v9.0.0
545-
CXXFLAGS=-Og ./ci/build.sh -v --build-type=Debug --target=openvdb_shared --components=\"core\" --cargs=\'-DUSE_EXPLICIT_INSTANTIATION=OFF\'
546-
- name: abi_check
547-
# -strict treats warnings as errors
550+
run: >
551+
CXXFLAGS=-Og ./ci/build.sh -v
552+
--build-type=Debug
553+
--target=openvdb_shared
554+
--components=\"core\"
555+
--cargs=\'-DUSE_EXPLICIT_INSTANTIATION=OFF\'
556+
- name: abi_dump
548557
run: |
549558
abi-dumper/abi-dumper.pl build_latest/openvdb/openvdb/libopenvdb.so -o ABI-1.dump -lver 1
550559
abi-dumper/abi-dumper.pl build/openvdb/openvdb/libopenvdb.so -o ABI-2.dump -lver 2
551-
abi-compliance-checker/abi-compliance-checker.pl -l OPENVDB -old ABI-2.dump -new ABI-1.dump -strict
560+
- name: abi_check
561+
# -strict treats warnings as errors
562+
# -extended checks all member data
563+
# we check everything _not_ in openvdb::**::internal namespace
564+
run: >
565+
abi-compliance-checker/abi-compliance-checker.pl -l OPENVDB
566+
-old ABI-2.dump
567+
-new ABI-1.dump
568+
-skip-internal-symbols "\d(openvdb.*internal)"
569+
-skip-internal-types "(openvdb.*internal)::"
570+
-strict
571+
-extended
552572
- name: upload_report
553573
uses: actions/upload-artifact@v3
554574
if: always()

openvdb/openvdb/points/PointRasterizeFrustum.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <openvdb/math/Ray.h>
1414
#include <openvdb/math/DDA.h>
1515
#include <openvdb/util/NullInterrupter.h>
16+
#include <openvdb/thread/Threading.h>
1617
#include <openvdb/tools/GridTransformer.h> // for tools::resampleToMatch()
1718
#include <openvdb/tools/Interpolation.h>
1819
#include <openvdb/points/PointCount.h>

openvdb/openvdb/points/impl/PointRasterizeFrustumImpl.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ struct RasterizeOp
331331
void operator()(const PointLeafT& leaf, size_t) const
332332
{
333333
if (mInterrupter && mInterrupter->wasInterrupted()) {
334-
tbb::task::self().cancel_group_execution();
334+
thread::cancelGroupExecution();
335335
return;
336336
}
337337

openvdb/openvdb/unittest/TestPointRasterizeFrustum.cc

Lines changed: 83 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1798,7 +1798,7 @@ struct HaltOnSecondInterrupt : public util::NullInterrupter
17981798
mInterrupt = true;
17991799
return false;
18001800
}
1801-
tbb::atomic<bool> mInterrupt = false;
1801+
std::atomic<bool> mInterrupt{false};
18021802
};
18031803

18041804
} // namespace
@@ -2332,127 +2332,130 @@ TEST_F(TestPointRasterizeFrustum, testStreaming)
23322332
#ifndef ONLY_RASTER_FLOAT
23332333
// memory tests
23342334

2335-
FloatGrid::Ptr density1, density2, density3;
2336-
Vec3SGrid::Ptr velocity1, velocity2, velocity3;
2335+
if (io::Archive::isDelayedLoadingEnabled() && io::Archive::hasBloscCompression()) {
23372336

2338-
const size_t mb = 1024*1024;
2339-
const size_t tinyMemory = static_cast<size_t>(0.1*mb);
2337+
FloatGrid::Ptr density1, density2, density3;
2338+
Vec3SGrid::Ptr velocity1, velocity2, velocity3;
23402339

2341-
size_t initialMemory;
2340+
const size_t mb = 1024*1024;
2341+
const size_t tinyMemory = static_cast<size_t>(0.1*mb);
23422342

2343-
{ // memory test 1 - retain caches and streaming disabled
2344-
Rasterizer rasterizer(settings);
2345-
2346-
rasterizer.addPoints(points, /*stream=*/false);
2347-
rasterizer.addPoints(points2, /*stream=*/false);
2348-
2349-
initialMemory = rasterizer.memUsage();
2343+
size_t initialMemory;
23502344

2351-
EXPECT_TRUE(initialMemory > size_t(4*mb) && initialMemory < size_t(16*mb));
2345+
{ // memory test 1 - retain caches and streaming disabled
2346+
Rasterizer rasterizer(settings);
23522347

2353-
EXPECT_EQ(size_t(2), rasterizer.size());
2348+
rasterizer.addPoints(points, /*stream=*/false);
2349+
rasterizer.addPoints(points2, /*stream=*/false);
23542350

2355-
velocity1 = rasterizer.rasterizeAttribute<Vec3SGrid, Vec3s>("v");
2356-
EXPECT_EQ(Index64(219780), velocity1->activeVoxelCount());
2351+
initialMemory = rasterizer.memUsage();
23572352

2358-
EXPECT_TRUE(rasterizer.memUsage() > size_t(71*mb) &&
2359-
rasterizer.memUsage() < size_t(91*mb));
2353+
EXPECT_TRUE(initialMemory > size_t(4*mb) && initialMemory < size_t(16*mb));
23602354

2361-
density1 = rasterizer.rasterizeDensity("density");
2362-
EXPECT_EQ(Index64(219780), density1->activeVoxelCount());
2355+
EXPECT_EQ(size_t(2), rasterizer.size());
23632356

2364-
// no data is discarded so expect a fairly high memory footprint
2357+
velocity1 = rasterizer.rasterizeAttribute<Vec3SGrid, Vec3s>("v");
2358+
EXPECT_EQ(Index64(219780), velocity1->activeVoxelCount());
23652359

2366-
EXPECT_TRUE(rasterizer.memUsage() > size_t(80*mb) &&
2367-
rasterizer.memUsage() < size_t(100*mb));
2368-
}
2360+
EXPECT_TRUE(rasterizer.memUsage() > size_t(71*mb) &&
2361+
rasterizer.memUsage() < size_t(91*mb));
23692362

2370-
{ // memory test 2 - retain caches and streaming enabled
2363+
density1 = rasterizer.rasterizeDensity("density");
2364+
EXPECT_EQ(Index64(219780), density1->activeVoxelCount());
23712365

2372-
{ // reopen file and deep copy while setting transform
2373-
io::File file(filename);
2374-
file.open();
2375-
openvdb::GridBase::Ptr baseGrid = file.readGrid("points");
2376-
file.close();
2366+
// no data is discarded so expect a fairly high memory footprint
23772367

2378-
points = openvdb::gridPtrCast<PointDataGrid>(baseGrid);
2379-
points2 = points->deepCopy();
2380-
points2->setTransform(transform);
2368+
EXPECT_TRUE(rasterizer.memUsage() > size_t(80*mb) &&
2369+
rasterizer.memUsage() < size_t(100*mb));
23812370
}
23822371

2383-
Rasterizer rasterizer(settings);
2372+
{ // memory test 2 - retain caches and streaming enabled
23842373

2385-
rasterizer.addPoints(points, /*stream=*/true);
2386-
rasterizer.addPoints(points2, /*stream=*/true);
2374+
{ // reopen file and deep copy while setting transform
2375+
io::File file(filename);
2376+
file.open();
2377+
openvdb::GridBase::Ptr baseGrid = file.readGrid("points");
2378+
file.close();
23872379

2388-
EXPECT_EQ(initialMemory, rasterizer.memUsage());
2380+
points = openvdb::gridPtrCast<PointDataGrid>(baseGrid);
2381+
points2 = points->deepCopy();
2382+
points2->setTransform(transform);
2383+
}
23892384

2390-
EXPECT_EQ(size_t(2), rasterizer.size());
2385+
Rasterizer rasterizer(settings);
23912386

2392-
velocity2 = rasterizer.rasterizeAttribute<Vec3SGrid, Vec3s>("v");
2393-
EXPECT_EQ(Index64(219780), velocity2->activeVoxelCount());
2387+
rasterizer.addPoints(points, /*stream=*/true);
2388+
rasterizer.addPoints(points2, /*stream=*/true);
23942389

2395-
size_t postRasterMemory = rasterizer.memUsage();
2390+
EXPECT_EQ(initialMemory, rasterizer.memUsage());
23962391

2397-
EXPECT_TRUE(postRasterMemory > size_t(70*mb) && postRasterMemory < size_t(85*mb));
2392+
EXPECT_EQ(size_t(2), rasterizer.size());
23982393

2399-
density2 = rasterizer.rasterizeDensity("density");
2400-
EXPECT_EQ(Index64(219780), density2->activeVoxelCount());
2394+
velocity2 = rasterizer.rasterizeAttribute<Vec3SGrid, Vec3s>("v");
2395+
EXPECT_EQ(Index64(219780), velocity2->activeVoxelCount());
24012396

2402-
// as data is being streamed, second attribute shouldn't change memory usage very much
2397+
size_t postRasterMemory = rasterizer.memUsage();
24032398

2404-
EXPECT_TRUE(rasterizer.memUsage() < (postRasterMemory + tinyMemory));
2405-
}
2399+
EXPECT_TRUE(postRasterMemory > size_t(70*mb) && postRasterMemory < size_t(85*mb));
24062400

2407-
{ // memory test 3 - release caches and streaming enabled
2401+
density2 = rasterizer.rasterizeDensity("density");
2402+
EXPECT_EQ(Index64(219780), density2->activeVoxelCount());
24082403

2409-
{ // reopen file and deep copy while setting transform
2410-
io::File file(filename);
2411-
file.open();
2412-
openvdb::GridBase::Ptr baseGrid = file.readGrid("points");
2413-
file.close();
2404+
// as data is being streamed, second attribute shouldn't change memory usage very much
24142405

2415-
points = openvdb::gridPtrCast<PointDataGrid>(baseGrid);
2416-
points2 = points->deepCopy();
2417-
points2->setTransform(transform);
2406+
EXPECT_TRUE(rasterizer.memUsage() < (postRasterMemory + tinyMemory));
24182407
}
24192408

2420-
auto points3 = points->deepCopy();
2421-
auto points4 = points2->deepCopy();
2409+
{ // memory test 3 - release caches and streaming enabled
2410+
2411+
{ // reopen file and deep copy while setting transform
2412+
io::File file(filename);
2413+
file.open();
2414+
openvdb::GridBase::Ptr baseGrid = file.readGrid("points");
2415+
file.close();
24222416

2423-
Settings settings2(*frustum);
2424-
settings2.threshold = 0.0f;
2417+
points = openvdb::gridPtrCast<PointDataGrid>(baseGrid);
2418+
points2 = points->deepCopy();
2419+
points2->setTransform(transform);
2420+
}
2421+
2422+
auto points3 = points->deepCopy();
2423+
auto points4 = points2->deepCopy();
24252424

2426-
Mask mask2(*frustum, nullptr, BBoxd(), /*clipToFrustum=*/false);
2425+
Settings settings2(*frustum);
2426+
settings2.threshold = 0.0f;
24272427

2428-
Rasterizer rasterizer(settings2, mask2);
2428+
Mask mask2(*frustum, nullptr, BBoxd(), /*clipToFrustum=*/false);
24292429

2430-
rasterizer.addPoints(points, /*stream=*/true);
2431-
rasterizer.addPoints(points2, /*stream=*/true);
2430+
Rasterizer rasterizer(settings2, mask2);
24322431

2433-
EXPECT_EQ(initialMemory, rasterizer.memUsage());
2434-
EXPECT_EQ(size_t(2), rasterizer.size());
2432+
rasterizer.addPoints(points, /*stream=*/true);
2433+
rasterizer.addPoints(points2, /*stream=*/true);
24352434

2436-
density3 = rasterizer.rasterizeDensity("density", RasterMode::ACCUMULATE, true);
2437-
EXPECT_EQ(Index64(219780), density3->activeVoxelCount());
2435+
EXPECT_EQ(initialMemory, rasterizer.memUsage());
2436+
EXPECT_EQ(size_t(2), rasterizer.size());
24382437

2439-
// all voxel data, attribute data and caches are being discarded,
2440-
// so memory after rasterizing shouldn't change very much
2438+
density3 = rasterizer.rasterizeDensity("density", RasterMode::ACCUMULATE, true);
2439+
EXPECT_EQ(Index64(219780), density3->activeVoxelCount());
24412440

2442-
EXPECT_TRUE(rasterizer.memUsage() < (initialMemory + tinyMemory));
2441+
// all voxel data, attribute data and caches are being discarded,
2442+
// so memory after rasterizing shouldn't change very much
24432443

2444-
// deep-copies of delay-loaded point grids need to be used for repeat rasterization
2444+
EXPECT_TRUE(rasterizer.memUsage() < (initialMemory + tinyMemory));
24452445

2446-
rasterizer.clear();
2447-
rasterizer.addPoints(points3, /*stream=*/true);
2448-
rasterizer.addPoints(points4, /*stream=*/true);
2446+
// deep-copies of delay-loaded point grids need to be used for repeat rasterization
24492447

2450-
EXPECT_EQ(size_t(2), rasterizer.size());
2448+
rasterizer.clear();
2449+
rasterizer.addPoints(points3, /*stream=*/true);
2450+
rasterizer.addPoints(points4, /*stream=*/true);
24512451

2452-
EXPECT_TRUE(rasterizer.memUsage() < (initialMemory + tinyMemory));
2452+
EXPECT_EQ(size_t(2), rasterizer.size());
24532453

2454-
velocity3 = rasterizer.rasterizeAttribute<Vec3SGrid, Vec3s>("v", RasterMode::ACCUMULATE, true);
2455-
EXPECT_EQ(Index64(219780), velocity3->activeVoxelCount());
2454+
EXPECT_TRUE(rasterizer.memUsage() < (initialMemory + tinyMemory));
2455+
2456+
velocity3 = rasterizer.rasterizeAttribute<Vec3SGrid, Vec3s>("v", RasterMode::ACCUMULATE, true);
2457+
EXPECT_EQ(Index64(219780), velocity3->activeVoxelCount());
2458+
}
24562459
}
24572460
#endif
24582461

0 commit comments

Comments
 (0)