renderkit / openpgl Goto Github PK
View Code? Open in Web Editor NEWIntel(R) Open Path Guiding Library
License: Apache License 2.0
Intel(R) Open Path Guiding Library
License: Apache License 2.0
Unfortunately building a GPU solution so can't use your library, but I'd love to know what PG method you're using.
Embree has the long term goal of replacing its common
library with osprays rkcommon support library:
I started with OPGL and when using the superbuild script it took me a while to find out how to enable static build and that BUILD_STATIC must be used. It might be helpful to mention that in superbuild section of help.
Is aarch64 Linux ever going to be supported like with Embree? Or is it never going to happen like with OpenImageDenoise?
Right now building openpgl on ARM fails. I have attached the error.
build.log
Failed to build openpgl if turn on OPENPGL_USE_OMP_THREADING ON
.
The problem seems to be from tbb, but actually if I turn off OPENPGL_USE_OMP_THREADING OFF
, openpgl built successfully...
[ 88%] Building CXX object openpgl/CMakeFiles/openpgl.dir/__/third-party/embreeSrc/common/sys/alloc.cpp.o
cd ....../openpgl/build/openpgl && /usr/bin/c++ -DBUILD_SHARED -DOPENPGL_DEVICE_TYPE_CPU_4 -DOPENPGL_DEVICE_TYPE_CPU_8 -DOPENPGL_USE_OMP_THREADING -DOPENPGL_VERSION_MAJOR=0 -DOPENPGL_VERSION_MINOR=4 -DOPENPGL_VERSION_PATCH=0 -DOPENPGL_VERSION_STRING=\"0.4.0\" -D__TBB_NO_IMPLICIT_LINKAGE=1 -Dopenpgl_EXPORTS -I....../openpgl/openpgl/../third-party -I....../openpgl/openpgl -I....../openpgl/build/openpgl/include/openpgl -isystem /opt/intel/oneapi/tbb/latest/include -O3 -DNDEBUG -fPIC -fopenmp -std=c++11 -MD -MT openpgl/CMakeFiles/openpgl.dir/__/third-party/embreeSrc/common/simd/sse.cpp.o -MF CMakeFiles/openpgl.dir/__/third-party/embreeSrc/common/simd/sse.cpp.o.d -o CMakeFiles/openpgl.dir/__/third-party/embreeSrc/common/simd/sse.cpp.o -c ....../openpgl/third-party/embreeSrc/common/simd/sse.cpp
cd ....../openpgl/build/openpgl && /usr/bin/c++ -DBUILD_SHARED -DOPENPGL_DEVICE_TYPE_CPU_4 -DOPENPGL_DEVICE_TYPE_CPU_8 -DOPENPGL_USE_OMP_THREADING -DOPENPGL_VERSION_MAJOR=0 -DOPENPGL_VERSION_MINOR=4 -DOPENPGL_VERSION_PATCH=0 -DOPENPGL_VERSION_STRING=\"0.4.0\" -D__TBB_NO_IMPLICIT_LINKAGE=1 -Dopenpgl_EXPORTS -I....../openpgl/openpgl/../third-party -I....../openpgl/openpgl -I....../openpgl/build/openpgl/include/openpgl -isystem /opt/intel/oneapi/tbb/latest/include -O3 -DNDEBUG -fPIC -fopenmp -std=c++11 -MD -MT openpgl/CMakeFiles/openpgl.dir/__/third-party/embreeSrc/common/sys/alloc.cpp.o -MF CMakeFiles/openpgl.dir/__/third-party/embreeSrc/common/sys/alloc.cpp.o.d -o CMakeFiles/openpgl.dir/__/third-party/embreeSrc/common/sys/alloc.cpp.o -c ....../openpgl/third-party/embreeSrc/common/sys/alloc.cpp
In file included from ....../openpgl/openpgl/field/Field.h:8,
from ....../openpgl/openpgl/field/SurfaceVolumeField.h:7,
from ....../openpgl/openpgl/device/Device.h:8,
from ....../openpgl/openpgl/api/deviceCPU4.cpp:1:
....../openpgl/openpgl/field/../spatial/KNN.h: In instantiation of ‘void openpgl::KNearestRegionsSearchTree<Vecsize>::buildRegionNeighbours() [with int Vecsize = 4]’:
....../openpgl/openpgl/field/Field.h:261:56: required from ‘void openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::deserialize(std::istream&) [with int Vecsize = 4; TDirectionalDistributionFactory = openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; std::istream = std::basic_istream<char>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:147:35: required from ‘void openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::deserialize(std::istream&) [with int Vecsize = 4; TDirectionalDistributionFactory = openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; TSurfaceSamplingDistribution = openpgl::DQTSurfaceSamplingDistribution<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TVolumeSamplingDistribution = openpgl::DQTVolumeSamplingDistribution<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; std::istream = std::basic_istream<char>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:143:10: required from here
....../openpgl/openpgl/field/../spatial/KNN.h:242:52: error: ‘struct openpgl::KNearestRegionsSearchTree<4>’ has no member named ‘m_nCores’
242 | #pragma omp parallel for num_threads(this->m_nCores) schedule(dynamic)
| ~~~~~~^~~~~~~~
In file included from ....../openpgl/openpgl/device/Device.h:21,
from ....../openpgl/openpgl/api/deviceCPU4.cpp:1:
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h: In instantiation of ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’:
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:103:9: required from ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTree(openpgl::KDTree&, TContainer&, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >&, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&, const uint32_t&) const [with TRegion = openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; uint32_t = unsigned int]’
....../openpgl/openpgl/field/Field.h:333:42: required from ‘void openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::updateSpatialStructure(openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer&) [with int Vecsize = 4; TDirectionalDistributionFactory = openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/Field.h:171:13: required from ‘void openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::updateField(openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer&) [with int Vecsize = 4; TDirectionalDistributionFactory = openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:108:39: required from ‘void openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::updateField(openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer&, openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer&) [with int Vecsize = 4; TDirectionalDistributionFactory = openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; TSurfaceSamplingDistribution = openpgl::DQTSurfaceSamplingDistribution<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TVolumeSamplingDistribution = openpgl::DQTVolumeSamplingDistribution<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:105:10: required from here
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:253:23: error: no matching function for call to ‘openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::updateTreeNode(openpgl::KDTree*&, openpgl::KDNode&, size_t, openpgl::Range&, openpgl::SampleStatistics&, tbb::detail::d1::concurrent_vector<std::pair<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, openpgl::Range>, tbb::detail::d1::cache_aligned_allocator<std::pair<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, openpgl::Range> > >*&, const openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::Settings&) const’
253 | updateTreeNode(kdTree, kdTree->getNode(nodeIdsLeftRight[0]), depth + 1, sampleRangeLeftRight[0], sampleStatsLeftRight[0], dataStorage, buildSettings);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate: ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’
159 | void updateTreeNode(KDTree *kdTree, KDNode &node, size_t depth, TContainer &samples, const Range sampleRange, const SampleStatistics sampleStats, tbb::concurrent_vector< std::pair<TRegion, Range> > *dataStorage, const Settings &buildSettings) const
| ^~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate expects 8 arguments, 7 provided
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:254:23: error: no matching function for call to ‘openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::updateTreeNode(openpgl::KDTree*&, openpgl::KDNode&, size_t, openpgl::Range&, openpgl::SampleStatistics&, tbb::detail::d1::concurrent_vector<std::pair<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, openpgl::Range>, tbb::detail::d1::cache_aligned_allocator<std::pair<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, openpgl::Range> > >*&, const openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::Settings&) const’
254 | updateTreeNode(kdTree, kdTree->getNode(nodeIdsLeftRight[1]), depth + 1, sampleRangeLeftRight[1], sampleStatsLeftRight[1], dataStorage, buildSettings);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate: ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’
159 | void updateTreeNode(KDTree *kdTree, KDNode &node, size_t depth, TContainer &samples, const Range sampleRange, const SampleStatistics sampleStats, tbb::concurrent_vector< std::pair<TRegion, Range> > *dataStorage, const Settings &buildSettings) const
| ^~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate expects 8 arguments, 7 provided
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h: In instantiation of ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’:
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:103:9: required from ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTree(openpgl::KDTree&, TContainer&, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >&, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&, const uint32_t&) const [with TRegion = openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; uint32_t = unsigned int]’
....../openpgl/openpgl/field/Field.h:333:42: required from ‘void openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::updateSpatialStructure(openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer&) [with int Vecsize = 4; TDirectionalDistributionFactory = openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/Field.h:171:13: required from ‘void openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::updateField(openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer&) [with int Vecsize = 4; TDirectionalDistributionFactory = openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:108:39: required from ‘void openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::updateField(openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer&, openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer&) [with int Vecsize = 4; TDirectionalDistributionFactory = openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; TSurfaceSamplingDistribution = openpgl::VMMSurfaceSamplingDistribution<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, false>; TVolumeSamplingDistribution = openpgl::VMMVolumeSamplingDistribution<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, false>; openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:105:10: required from here
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:253:23: error: no matching function for call to ‘openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::updateTreeNode(openpgl::KDTree*&, openpgl::KDNode&, size_t, openpgl::Range&, openpgl::SampleStatistics&, tbb::detail::d1::concurrent_vector<std::pair<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>, openpgl::Range>, tbb::detail::d1::cache_aligned_allocator<std::pair<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>, openpgl::Range> > >*&, const openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::Settings&) const’
253 | updateTreeNode(kdTree, kdTree->getNode(nodeIdsLeftRight[0]), depth + 1, sampleRangeLeftRight[0], sampleStatsLeftRight[0], dataStorage, buildSettings);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate: ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’
159 | void updateTreeNode(KDTree *kdTree, KDNode &node, size_t depth, TContainer &samples, const Range sampleRange, const SampleStatistics sampleStats, tbb::concurrent_vector< std::pair<TRegion, Range> > *dataStorage, const Settings &buildSettings) const
| ^~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate expects 8 arguments, 7 provided
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:254:23: error: no matching function for call to ‘openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::updateTreeNode(openpgl::KDTree*&, openpgl::KDNode&, size_t, openpgl::Range&, openpgl::SampleStatistics&, tbb::detail::d1::concurrent_vector<std::pair<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>, openpgl::Range>, tbb::detail::d1::cache_aligned_allocator<std::pair<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>, openpgl::Range> > >*&, const openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::Settings&) const’
254 | updateTreeNode(kdTree, kdTree->getNode(nodeIdsLeftRight[1]), depth + 1, sampleRangeLeftRight[1], sampleStatsLeftRight[1], dataStorage, buildSettings);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate: ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<4, 32> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’
159 | void updateTreeNode(KDTree *kdTree, KDNode &node, size_t depth, TContainer &samples, const Range sampleRange, const SampleStatistics sampleStats, tbb::concurrent_vector< std::pair<TRegion, Range> > *dataStorage, const Settings &buildSettings) const
| ^~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate expects 8 arguments, 7 provided
In file included from ....../openpgl/openpgl/field/Field.h:8,
from ....../openpgl/openpgl/field/SurfaceVolumeField.h:7,
from ....../openpgl/openpgl/device/Device.h:8,
from ....../openpgl/openpgl/api/deviceCPU8.cpp:1:
....../openpgl/openpgl/field/../spatial/KNN.h: In instantiation of ‘void openpgl::KNearestRegionsSearchTree<Vecsize>::buildRegionNeighbours() [with int Vecsize = 8]’:
....../openpgl/openpgl/field/Field.h:261:56: required from ‘void openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::deserialize(std::istream&) [with int Vecsize = 8; TDirectionalDistributionFactory = openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; std::istream = std::basic_istream<char>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:147:35: required from ‘void openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::deserialize(std::istream&) [with int Vecsize = 8; TDirectionalDistributionFactory = openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; TSurfaceSamplingDistribution = openpgl::DQTSurfaceSamplingDistribution<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TVolumeSamplingDistribution = openpgl::DQTVolumeSamplingDistribution<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; std::istream = std::basic_istream<char>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:143:10: required from here
....../openpgl/openpgl/field/../spatial/KNN.h:242:52: error: ‘struct openpgl::KNearestRegionsSearchTree<8>’ has no member named ‘m_nCores’
242 | #pragma omp parallel for num_threads(this->m_nCores) schedule(dynamic)
| ~~~~~~^~~~~~~~
In file included from ....../openpgl/openpgl/device/Device.h:21,
from ....../openpgl/openpgl/api/deviceCPU8.cpp:1:
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h: In instantiation of ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’:
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:103:9: required from ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTree(openpgl::KDTree&, TContainer&, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >&, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&, const uint32_t&) const [with TRegion = openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; uint32_t = unsigned int]’
....../openpgl/openpgl/field/Field.h:333:42: required from ‘void openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::updateSpatialStructure(openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer&) [with int Vecsize = 8; TDirectionalDistributionFactory = openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/Field.h:171:13: required from ‘void openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::updateField(openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer&) [with int Vecsize = 8; TDirectionalDistributionFactory = openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:108:39: required from ‘void openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::updateField(openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer&, openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer&) [with int Vecsize = 8; TDirectionalDistributionFactory = openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; TSurfaceSamplingDistribution = openpgl::DQTSurfaceSamplingDistribution<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; TVolumeSamplingDistribution = openpgl::DQTVolumeSamplingDistribution<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >; openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:105:10: required from here
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:253:23: error: no matching function for call to ‘openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::updateTreeNode(openpgl::KDTree*&, openpgl::KDNode&, size_t, openpgl::Range&, openpgl::SampleStatistics&, tbb::detail::d1::concurrent_vector<std::pair<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, openpgl::Range>, tbb::detail::d1::cache_aligned_allocator<std::pair<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, openpgl::Range> > >*&, const openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::Settings&) const’
253 | updateTreeNode(kdTree, kdTree->getNode(nodeIdsLeftRight[0]), depth + 1, sampleRangeLeftRight[0], sampleStatsLeftRight[0], dataStorage, buildSettings);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate: ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’
159 | void updateTreeNode(KDTree *kdTree, KDNode &node, size_t depth, TContainer &samples, const Range sampleRange, const SampleStatistics sampleStats, tbb::concurrent_vector< std::pair<TRegion, Range> > *dataStorage, const Settings &buildSettings) const
| ^~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate expects 8 arguments, 7 provided
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:254:23: error: no matching function for call to ‘openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::updateTreeNode(openpgl::KDTree*&, openpgl::KDNode&, size_t, openpgl::Range&, openpgl::SampleStatistics&, tbb::detail::d1::concurrent_vector<std::pair<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, openpgl::Range>, tbb::detail::d1::cache_aligned_allocator<std::pair<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, openpgl::Range> > >*&, const openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::Settings&) const’
254 | updateTreeNode(kdTree, kdTree->getNode(nodeIdsLeftRight[1]), depth + 1, sampleRangeLeftRight[1], sampleStatsLeftRight[1], dataStorage, buildSettings);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate: ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical>, openpgl::DirectionalQuadtreeFactory<openpgl::DirectionalQuadtree<openpgl::SphereToSquareCylindrical> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’
159 | void updateTreeNode(KDTree *kdTree, KDNode &node, size_t depth, TContainer &samples, const Range sampleRange, const SampleStatistics sampleStats, tbb::concurrent_vector< std::pair<TRegion, Range> > *dataStorage, const Settings &buildSettings) const
| ^~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate expects 8 arguments, 7 provided
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h: In instantiation of ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’:
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:103:9: required from ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTree(openpgl::KDTree&, TContainer&, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >&, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&, const uint32_t&) const [with TRegion = openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; uint32_t = unsigned int]’
....../openpgl/openpgl/field/Field.h:333:42: required from ‘void openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::updateSpatialStructure(openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer&) [with int Vecsize = 8; TDirectionalDistributionFactory = openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/Field.h:171:13: required from ‘void openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::updateField(openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer&) [with int Vecsize = 8; TDirectionalDistributionFactory = openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; openpgl::Field<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:108:39: required from ‘void openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::updateField(openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer&, openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer&) [with int Vecsize = 8; TDirectionalDistributionFactory = openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >; TSpatialStructureBuilder = openpgl::KDTreePartitionBuilder; TSurfaceSamplingDistribution = openpgl::VMMSurfaceSamplingDistribution<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, false>; TVolumeSamplingDistribution = openpgl::VMMVolumeSamplingDistribution<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, false>; openpgl::SurfaceVolumeField<Vecsize, TDirectionalDistributionFactory, TSpatialStructureBuilder, TSurfaceSamplingDistribution, TVolumeSamplingDistribution>::SampleContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>]’
....../openpgl/openpgl/field/SurfaceVolumeField.h:105:10: required from here
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:253:23: error: no matching function for call to ‘openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::updateTreeNode(openpgl::KDTree*&, openpgl::KDNode&, size_t, openpgl::Range&, openpgl::SampleStatistics&, tbb::detail::d1::concurrent_vector<std::pair<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>, openpgl::Range>, tbb::detail::d1::cache_aligned_allocator<std::pair<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>, openpgl::Range> > >*&, const openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::Settings&) const’
253 | updateTreeNode(kdTree, kdTree->getNode(nodeIdsLeftRight[0]), depth + 1, sampleRangeLeftRight[0], sampleStatsLeftRight[0], dataStorage, buildSettings);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate: ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’
159 | void updateTreeNode(KDTree *kdTree, KDNode &node, size_t depth, TContainer &samples, const Range sampleRange, const SampleStatistics sampleStats, tbb::concurrent_vector< std::pair<TRegion, Range> > *dataStorage, const Settings &buildSettings) const
| ^~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate expects 8 arguments, 7 provided
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:254:23: error: no matching function for call to ‘openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::updateTreeNode(openpgl::KDTree*&, openpgl::KDNode&, size_t, openpgl::Range&, openpgl::SampleStatistics&, tbb::detail::d1::concurrent_vector<std::pair<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>, openpgl::Range>, tbb::detail::d1::cache_aligned_allocator<std::pair<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>, openpgl::Range> > >*&, const openpgl::KDTreePartitionBuilder<openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>, tbb::detail::d1::concurrent_vector<PGLSampleData> >::Settings&) const’
254 | updateTreeNode(kdTree, kdTree->getNode(nodeIdsLeftRight[1]), depth + 1, sampleRangeLeftRight[1], sampleStatsLeftRight[1], dataStorage, buildSettings);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate: ‘void openpgl::KDTreePartitionBuilder<TRegion, TContainer>::updateTreeNode(openpgl::KDTree*, openpgl::KDNode&, size_t, TContainer&, openpgl::Range, openpgl::SampleStatistics, tbb::detail::d1::concurrent_vector<std::pair<TRegion, openpgl::Range> >*, const openpgl::KDTreePartitionBuilder<TRegion, TContainer>::Settings&) const [with TRegion = openpgl::Region<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32>, openpgl::AdaptiveSplitAndMergeFactory<openpgl::ParallaxAwareVonMisesFisherMixture<8, 32> >::Statistics>; TContainer = tbb::detail::d1::concurrent_vector<PGLSampleData>; size_t = long unsigned int]’
159 | void updateTreeNode(KDTree *kdTree, KDNode &node, size_t depth, TContainer &samples, const Range sampleRange, const SampleStatistics sampleStats, tbb::concurrent_vector< std::pair<TRegion, Range> > *dataStorage, const Settings &buildSettings) const
| ^~~~~~~~~~~~~~
....../openpgl/openpgl/spatial/kdtree/KDTreeBuilder.h:159:10: note: candidate expects 8 arguments, 7 provided
make[2]: *** [openpgl/CMakeFiles/openpgl.dir/build.make:93: openpgl/CMakeFiles/openpgl.dir/api/deviceCPU4.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [openpgl/CMakeFiles/openpgl.dir/build.make:107: openpgl/CMakeFiles/openpgl.dir/api/deviceCPU8.cpp.o] Error 1
make[2]: Leaving directory '....../openpgl/build'
make[1]: *** [CMakeFiles/Makefile2:101: openpgl/CMakeFiles/openpgl.dir/all] Error 2
make[1]: Leaving directory '....../openpgl/build'
make: *** [Makefile:159: all] Error 2
Since ARM64 is already supported for MacOS, would it be possible to also support ARM64 for Windows?
The mm_lookupmask_ps
/mm_lookupmask_pd
symbols are visible from libpgl:
nm -DC --defined-only /usr/lib64/libopenpgl.so.0.4.0 | grep embree
0000000000078580 B embree::mm_lookupmask_pd
0000000000076060 B embree::mm_lookupmask_ps
libembree3 proper does not have this issue, as it sets default symbol visibility to "hidden".
Hi there.
Sadly this is not very useful in general (in Blender) since it does not support GPU, the CPU implementation is very good, but when we do renders we need GPU speed, but we want PG quality because the difference is pretty big.
Do you have a GPU implementation time frame?
Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.