RenderKit / ospray

An Open, Scalable, Portable, Ray Tracing Based Rendering Engine for High-Fidelity Visualization
http://ospray.org
Apache License 2.0
982 stars 178 forks source link

Aarch64 superbuild compile error with OpenImageDenoise (2.12.0 and 3.0.0) #584

Closed jfavre closed 4 months ago

jfavre commented 4 months ago

I see the same error with v2.12.0 or v3.0.0

[ 76%] Building CXX object devices/cpu/CMakeFiles/OpenImageDenoise_device_cpu.dir/cpu_device.cpp.o cd /run/user/1100/ospray/ospray-3.0.0/build/oidn/build/devices/cpu && /user-environment/linux-sles15-neoverse_v2/gcc-12.3.0/gcc-12.3.0-vdy2ewcrvlxqlhbe63h56co7hx5p5dwi/bin/g++ -DOpenImageDenoise_device_cpu_EXPORTS -DSTDC_CONSTANT_MACROS -DSTDC_LIMIT_MACROS -D__TBB_NO_IMPLICIT_LINKAGE=1 -I/run/user/1100/ospray/ospray-3.0.0/build/oidn/build/devices/cpu -I/run/user/1100/ospray/ospray-3.0.0/build/oidn/src -I/run/user/1100/ospray/ospray-3.0.0/build/oidn/src/external -I/run/user/1100/ospray/ospray-3.0.0/build/oidn/build -isystem /bret/scratch/cscs/jfavre/ospray-3.0.0/include -Wall -Wno-unknown-pragmas -Wno-strict-overflow -fPIC -Wformat -Wformat-security -Wmissing-field-initializers -O3 -DNDEBUG -fstack-protector -D_FORTIFY_SOURCE=2 -std=c++11 -fPIC -fvisibility=internal -fvisibility-inlines-hidden -MD -MT devices/cpu/CMakeFiles/OpenImageDenoise_device_cpu.dir/cpu_device.cpp.o -MF CMakeFiles/OpenImageDenoise_device_cpu.dir/cpu_device.cpp.o.d -o CMakeFiles/OpenImageDenoise_device_cpu.dir/cpu_device.cpp.o -c /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/devices/cpu/cpu_device.cpp /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/devices/cpu/cpu_device.cpp: In static member function 'static std::string oidn::CPUDevice::getName()': /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/devices/cpu/cpu_device.cpp:65:5: error: 'cpuid' was not declared in this scope 65 | cpuid(regs[0], 0x80000000); | ^~~~~ /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/devices/cpu/cpu_device.cpp: In member function 'virtual void oidn::CPUDevice::wait()': /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/devices/cpu/cpu_device.cpp:260:13: error: invalid use of incomplete type 'class oidn::CPUEngine' 260 | engine->wait(); | ^~ In file included from /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/devices/cpu/cpu_device.cpp:4: /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/devices/cpu/cpu_device.h:14:9: note: forward declaration of 'class oidn::CPUEngine' 14 | class CPUEngine; | ^~~~~ In file included from /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/core/device.h:7, from /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/devices/cpu/cpu_device.h:6: /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/core/ref.h: In instantiation of 'oidn::Ref::~Ref() [with T = oidn::CPUEngine]': /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/devices/cpu/cpu_device.cpp:104:24: required from here /run/user/1100/ospray/ospray-3.0.0/build/oidn/src/core/ref.h:68:40: error: invalid use of incomplete type 'class oidn::CPUEngine' 68 | OIDN_INLINE ~Ref() { if (ptr) ptr->decRef(); }

johguenther commented 4 months ago

This was mainly due to some compile issues in OIDN, which are fixed in released v2.2, which 2258668 now also uses.