Skip to content

sycl: compilation fails with std::future_error: Future already retrieved #272

@LAKostis

Description

@LAKostis

Greetings!

I'm having strange issue when compiling oidn sycl: it fails during ocloc invocation with error. Only oidn is affected, other apps using sycl (blender for example) compile just fine:

[ 77%] Building CXX object devices/sycl/CMakeFiles/OpenImageDenoise_device_sycl.dir/sycl_conv_xelp.cpp.o
cd /usr/src/RPM/BUILD/oidn-2.3.3/x86_64-alt-linux/devices/sycl && /usr/lib/llvm-dpcpp/bin/clang++ -DOIDN_DEVICE_SYCL_AOT -DOIDN_DEVICE_SYCL_JIT_CACHE -DOpenImageDenoise_device_sycl_EXPORTS -D__STDC_CONSTANT_MACROS -D__STDC_LIMIT_MACROS -I/usr/src/RPM/BUILD/oidn-2.3.3 -I/usr/src/RP
M/BUILD/oidn-2.3.3/external -I/usr/src/RPM/BUILD/oidn-2.3.3/x86_64-alt-linux -pipe -frecord-gcc-switches -Wall -g -O2  -Wall -Wno-unknown-pragmas -Wno-pass-failed -Wno-unneeded-internal-declaration -fPIC -Wformat -Wformat-security  -O2 -g -DNDEBUG  -fstack-protector -U_FORTIFY_SOU
RCE -D_FORTIFY_SOURCE=2 -std=c++17 -fPIC -fvisibility=internal -fvisibility-inlines-hidden -fsycl -Wno-deprecated-declarations -fsycl-max-parallel-link-jobs=1 -fsycl-targets=spir64_gen -fno-sycl-rdc -Xsycl-target-backend=spir64_gen "-device tgllp,rkl,adl-s,adl-p,adl-n,dg1,mtl-u,mt
l-h,pvc-vg --format zebin" -MD -MT devices/sycl/CMakeFiles/OpenImageDenoise_device_sycl.dir/sycl_conv_xelp.cpp.o -MF CMakeFiles/OpenImageDenoise_device_sycl.dir/sycl_conv_xelp.cpp.o.d -o CMakeFiles/OpenImageDenoise_device_sycl.dir/sycl_conv_xelp.cpp.o -c /usr/src/RPM/BUILD/oidn-2.
3.3/devices/sycl/sycl_conv_xelp.cpp
terminate called after throwing an instance of 'std::future_error'
  what():  std::future_error: Future already retrieved
llvm-foreach: Aborted
clang++: error: gen compiler command failed with exit code 254 (use -v to see invocation)
ALT Linux Team clang version 21.0.0dpcpp
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/lib/llvm-dpcpp/bin
Build config: +assertions
clang++: note: diagnostic msg: Error generating preprocessed source(s).
gmake[2]: *** [devices/sycl/CMakeFiles/OpenImageDenoise_device_sycl.dir/build.make:163: devices/sycl/CMakeFiles/OpenImageDenoise_device_sycl.dir/sycl_conv_xelp.cpp.o] Error 1
gmake[2]: Leaving directory '/usr/src/RPM/BUILD/oidn-2.3.3/x86_64-alt-linux'
gmake[1]: *** [CMakeFiles/Makefile2:505: devices/sycl/CMakeFiles/OpenImageDenoise_device_sycl.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....

Toolchain details:
oidn version: 2.3.3
libze 1.23.2
ocloc 25.31.34666.3
igc: 2.16.0
DPC++ 6.2.0

oidn flags used for sycl enablement:

        -DOIDN_DEVICE_SYCL:BOOL=ON \
        -DCMAKE_C_COMPILER=%prefix/lib/llvm-dpcpp/bin/clang \
        -DCMAKE_CXX_COMPILER=%prefix/lib/llvm-dpcpp/bin/clang++ \

Detailed compile log attached.

compile.log

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions