NVIDIA / gvdb-voxels

Sparse volume compute and rendering on NVIDIA GPUs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error Buiding OpenVDB Samples

dumbledoreo opened this issue · comments

I have successfully built and tested gvdb-voxels "as-is", but now I am trying to build gvdb-voxels with OpenVDB Samples enabled. I have built OpenVDB 8.1.1 and installed, and set GVDB_BUILD_OPENVDB and GVDB_BUILD_OPENVDB_SAMPLES to ON.

I am getting the following CMake messages:

Note: GVDB_OPENVDB_INSTALL_PATH not specified; assuming OpenVDB has been installed in /usr/local/lib64 (which should contain cmake/OpenVDB).
CMake Error at source/gvdb_library/CMakeLists.txt:262 (find_package):
By not providing "FindOpenVDB.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "OpenVDB", but
CMake did not find one.

Could not find a package configuration file provided by "OpenVDB" with any
of the following names:

OpenVDBConfig.cmake
openvdb-config.cmake

Add the installation prefix of "OpenVDB" to CMAKE_PREFIX_PATH or set
"OpenVDB_DIR" to a directory containing one of the above files. If
"OpenVDB" provides a separate development package or SDK, be sure it has
been installed.

I have built and installed OpenVDB 8.1.1 and it is in /usr/local/lib64 however, there are no .cmake files in /usr/local/lib64/cmake/OpenVDB, which I assume is why OpenVDBConfig.cmake and openvdb-config.cmake are not found and do not seem to be present in my OpenVDB build tree, so not sure what to do about that. BUT, when I try to use the FindOpenVDB.cmake from the OpenVDB distribution with gvdb-voxels, I get compiliation errors:

[ 2%] Built target gvdbPTX
[ 3%] Building CXX object gvdb_library/CMakeFiles/gvdb.dir/src/gvdb_volume_gvdb.cpp.o
[ 4%] Built target gRenderKernelPTX
In file included from gvdb-voxels/source/gvdb_library/src/gvdb_allocator.h:14,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:10:
gvdb-voxels/source/gvdb_library/src/gvdb_vec.h:280:26: warning: type attributes ignored after type is already defined [-Wattributes]
template class GVDB_API Vector3D;
^~~~~~~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_vec.h:281:26: warning: type attributes ignored after type is already defined [-Wattributes]
template class GVDB_API Vector3D;
^~~~~~~~~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In constructor ‘nvdb::VolumeGVDB::VolumeGVDB()’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:64:12: warning: converting to non-pointer type ‘CUdevice’ {aka ‘int’} from NULL [-Wconversion-null]
mDevice = NULL;
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In member function ‘bool nvdb::VolumeGVDB::LoadVDBInternal(openvdb::v8_1::GridBase::Ptr&)’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1965:62: error: to refer to a type member of a template parameter, use ‘typename GridType::ValueType’ [-fpermissive]
const bool isFloat = std::is_same<GridType::ValueType, float>::value;
^
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:2: error: need ‘typename’ before ‘GridType::Ptr’ because ‘GridType’ is a dependent scope
GridType::Ptr grid = openvdb::gridPtrCast(baseGrid);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:15: error: expected ‘;’ before ‘grid’
GridType::Ptr grid = openvdb::gridPtrCast(baseGrid);
^~~~~
;
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1973:22: error: ‘grid’ was not declared in this scope
static_cast(grid->voxelSize().x()),
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1973:22: note: suggested alternative: ‘void’
static_cast(grid->voxelSize().x()),
^~~~
void
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:2: error: need ‘typename’ before ‘typename GridType::TreeType::LeafCIter’ because ‘typename GridType::TreeType’ is a dependent scope
GridType::TreeType::LeafCIter iterator;
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:31: error: expected ‘;’ before ‘iterator’
GridType::TreeType::LeafCIter iterator;
^~~~~~~~~
;
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1991:26: error: ‘iterator’ was not declared in this scope
vdbSkip(grid, iterator, leaf_start);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1991:26: note: suggested alternatives:
In file included from /opt/rh/devtoolset-8/root/usr/include/c++/8/bits/stl_algobase.h:65,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/bits/char_traits.h:39,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/ios:40,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/ostream:38,
from /opt/rh/devtoolset-8/root/usr/include/c++/8/iostream:39,
from gvdb-voxels/source/gvdb_library/src/gvdb_vec.h:15,
from gvdb-voxels/source/gvdb_library/src/gvdb_allocator.h:14,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:10:
/opt/rh/devtoolset-8/root/usr/include/c++/8/bits/stl_iterator_base_types.h:118:12: note: ‘std::iterator’
struct iterator
^~~~~~~~
/opt/rh/devtoolset-8/root/usr/include/c++/8/bits/stl_iterator_base_types.h:118:12: note: ‘std::iterator’
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:4: error: need ‘typename’ before ‘typename GridType::TreeType::LeafNodeType::Buffer’ because ‘typename GridType::TreeType::LeafNodeType’ is a dependent scope
GridType::TreeType::LeafNodeType::Buffer leafBuffer = iterator->buffer();
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:44: error: expected ‘;’ before ‘leafBuffer’
GridType::TreeType::LeafNodeType::Buffer leafBuffer = iterator->buffer();
^~~~~~~~~~~
;
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2096:11: error: ‘leafBuffer’ was not declared in this scope
src = leafBuffer.data();
^~~~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2096:11: note: suggested alternative: ‘glReadBuffer’
src = leafBuffer.data();
^~~~~~~~~~
glReadBuffer
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2099:55: error: ‘leafBuffer’ was not declared in this scope
src = ConvertToScalar(res0 * res0 * res0, (float*)leafBuffer.data(), srcLengths, mValMin, mValMax);
^~~~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2099:55: note: suggested alternative: ‘glReadBuffer’
src = ConvertToScalar(res0 * res0 * res0, (float*)leafBuffer.data(), srcLengths, mValMin, mValMax);
^~~~~~~~~~
glReadBuffer
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In member function ‘void nvdb::VolumeGVDB::SaveVDBInternal(std::string&)’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:2: error: need ‘typename’ before ‘TreeType::Ptr’ because ‘TreeType’ is a dependent scope
TreeType::Ptr tree(treePtr);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:15: error: expected ‘;’ before ‘tree’
TreeType::Ptr tree(treePtr);
^~~~~
;
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2240:10: error: ‘tree’ was not declared in this scope
leaf = tree->touchLeaf(openvdb::Coord(pos.x, pos.y, pos.z));
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2240:10: note: suggested alternative:
In file included from /usr/local/include/openvdb/tools/Count.h:15,
from /usr/local/include/openvdb/tree/Tree.h:13,
from /usr/local/include/openvdb/Grid.h:12,
from /usr/local/include/openvdb/openvdb.h:12,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.h:21,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:12:
/usr/local/include/openvdb/tree/NodeManager.h:25:11: note: ‘openvdb::v8_1::tree’
namespace tree {
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2250:33: error: ‘tree’ was not declared in this scope
verbosef(" Leaf count: %d\n", tree->leafCount());
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2250:33: note: suggested alternative:
In file included from /usr/local/include/openvdb/tools/Count.h:15,
from /usr/local/include/openvdb/tree/Tree.h:13,
from /usr/local/include/openvdb/Grid.h:12,
from /usr/local/include/openvdb/openvdb.h:12,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.h:21,
from gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:12:
/usr/local/include/openvdb/tree/NodeManager.h:25:11: note: ‘openvdb::v8_1::tree’
namespace tree {
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:2: error: need ‘typename’ before ‘GridType::Ptr’ because ‘GridType’ is a dependent scope
GridType::Ptr grid = GridType::create(tree);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:15: error: expected ‘;’ before ‘grid’
GridType::Ptr grid = GridType::create(tree);
^~~~~
;
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2255:2: error: ‘grid’ was not declared in this scope
grid->setGridClass(openvdb::GRID_FOG_VOLUME);
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2255:2: note: suggested alternative: ‘void’
grid->setGridClass(openvdb::GRID_FOG_VOLUME);
^~~~
void
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In member function ‘void nvdb::VolumeGVDB::PrepareRender(int, int, char)’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:4301:59: warning: converting to non-pointer type ‘long long unsigned int’ from NULL [-Wconversion-null]
mScnInfo.dbuf = (dbuf == 255 ? NULL : mRenderBuf[dbuf].gpu);
^~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In member function ‘void nvdb::VolumeGVDB::ScatterDensity(int, float, float, nvdb::Vector3DF, bool, bool)’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:5637:33: warning: NULL used in arithmetic [-Wpointer-arith]
if (mAux[AUX_PNTCLR].gpu != NULL && avgColor) {
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:5649:30: warning: NULL used in arithmetic [-Wpointer-arith]
if (mAux[AUX_PNTCLR].gpu != NULL && avgColor) {
^~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In instantiation of ‘bool nvdb::VolumeGVDB::LoadVDBInternal(openvdb::v8_1::GridBase::Ptr&) [with GridType = openvdb::v8_1::Grid<openvdb::v8_1::tree::Tree<openvdb::v8_1::tree::RootNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::LeafNode<float, 3>, 4>, 5> > > >; openvdb::v8_1::GridBase::Ptr = std::shared_ptropenvdb::v8_1::GridBase]’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2172:51: required from here
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:2: error: dependent-name ‘GridType::Ptr’ is parsed as a non-type, but instantiation yields a type
GridType::Ptr grid = openvdb::gridPtrCast(baseGrid);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:2: note: say ‘typename GridType::Ptr’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:2: error: dependent-name ‘typename GridType::TreeType::LeafCIter’ is parsed as a non-type, but instantiation yields a type
GridType::TreeType::LeafCIter iterator;
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:2: note: say ‘typename typename GridType::TreeType::LeafCIter’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:4: error: dependent-name ‘typename GridType::TreeType::LeafNodeType::Buffer’ is parsed as a non-type, but instantiation yields a type
GridType::TreeType::LeafNodeType::Buffer leafBuffer = iterator->buffer();
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:4: note: say ‘typename typename GridType::TreeType::LeafNodeType::Buffer’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In instantiation of ‘bool nvdb::VolumeGVDB::LoadVDBInternal(openvdb::v8_1::GridBase::Ptr&) [with GridType = openvdb::v8_1::Grid<openvdb::v8_1::tree::Tree<openvdb::v8_1::tree::RootNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::LeafNode<float, 4>, 3>, 3>, 3> > > >; openvdb::v8_1::GridBase::Ptr = std::shared_ptropenvdb::v8_1::GridBase]’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2180:50: required from here
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:2: error: dependent-name ‘GridType::Ptr’ is parsed as a non-type, but instantiation yields a type
GridType::Ptr grid = openvdb::gridPtrCast(baseGrid);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1971:2: note: say ‘typename GridType::Ptr’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:2: error: dependent-name ‘typename GridType::TreeType::LeafCIter’ is parsed as a non-type, but instantiation yields a type
GridType::TreeType::LeafCIter iterator;
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:1990:2: note: say ‘typename typename GridType::TreeType::LeafCIter’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:4: error: dependent-name ‘typename GridType::TreeType::LeafNodeType::Buffer’ is parsed as a non-type, but instantiation yields a type
GridType::TreeType::LeafNodeType::Buffer leafBuffer = iterator->buffer();
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2093:4: note: say ‘typename typename GridType::TreeType::LeafNodeType::Buffer’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In instantiation of ‘void nvdb::VolumeGVDB::SaveVDBInternal(std::string&) [with TreeType = openvdb::v8_1::tree::Tree<openvdb::v8_1::tree::RootNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::LeafNode<float, 3>, 4>, 5> > >; std::string = std::basic_string]’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2292:38: required from here
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:2: error: dependent-name ‘TreeType::Ptr’ is parsed as a non-type, but instantiation yields a type
TreeType::Ptr tree(treePtr);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:2: note: say ‘typename TreeType::Ptr’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:2: error: dependent-name ‘GridType::Ptr’ is parsed as a non-type, but instantiation yields a type
GridType::Ptr grid = GridType::create(tree);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:2: note: say ‘typename GridType::Ptr’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp: In instantiation of ‘void nvdb::VolumeGVDB::SaveVDBInternal(std::string&) [with TreeType = openvdb::v8_1::tree::Tree<openvdb::v8_1::tree::RootNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::InternalNode<openvdb::v8_1::tree::LeafNode<float, 4>, 3>, 3>, 3> > >; std::string = std::basic_string]’:
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2295:37: required from here
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:2: error: dependent-name ‘TreeType::Ptr’ is parsed as a non-type, but instantiation yields a type
TreeType::Ptr tree(treePtr);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2215:2: note: say ‘typename TreeType::Ptr’ if a type is meant
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:2: error: dependent-name ‘GridType::Ptr’ is parsed as a non-type, but instantiation yields a type
GridType::Ptr grid = GridType::create(tree);
^~~~~~~~
gvdb-voxels/source/gvdb_library/src/gvdb_volume_gvdb.cpp:2254:2: note: say ‘typename GridType::Ptr’ if a type is meant
make[2]: *** [gvdb_library/CMakeFiles/gvdb.dir/build.make:251: gvdb_library/CMakeFiles/gvdb.dir/src/gvdb_volume_gvdb.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:314: gvdb_library/CMakeFiles/gvdb.dir/all] Error 2
make: *** [Makefile:149: all] Error 2

the same question,did you solve it