isl-org / isl-org/Open3D

Open3D failed to build with C2665 C2679 C2678 C2440 with MSVC on Windows arm64ec

Open
#5,702 0 comments 0 reactions 0 assignees View on GitHub
build/install
Dominant language
C++
Stars
14k
Forks
2.6k
Avg merge
5d 18h
Merged PRs (30d)
6

Description

### Checklist

- [X] I have searched for [similar issues](https://github.com/isl-org/Open3D/issues).
- [X] For Python issues, I have tested with the [latest development wheel](http://www.open3d.org/docs/latest/getting_started.html#development-version-pip).
- [X] I have checked the [release documentation](http://www.open3d.org/docs/release/) and the [latest documentation](http://www.open3d.org/docs/latest/) (for `master` branch).

### Steps to reproduce the issue

1. Open a VS 2019 x64 Native Tools Command Prompt
2. set VSCMD_SKIP_SENDTELEMETRY=1 & "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\Tools\VsDevCmd.bat" -host_arch=amd64 -arch=arm64
3. git clone https://github.com/isl-org/Open3D F:\Open3D
4. cd F:\Open3D
5. git submodule update --init --recursive
6. mkdir build_arm64ec && cd build_arm64ec
7. cmake -G "Visual Studio 16 2019" -A ARM64EC -DCMAKE_SYSTEM_VERSION=10.0.22618.0 -DCMAKE_BUILD_TYPE=Release -DBUILD_EXAMPLES=OFF -DBUILD_SHARED_LIBS=ON -DSTATIC_WINDOWS_RUNTIME=OFF -DBUILD_COMMON_ISPC_ISAS=ON -DBUILD_WEBRTC=OFF -DBUILD_CUDA_MODULE=OFF ..
8. pip3 install wheel
9. msbuild /m /p:Platform=ARM64EC /p:Configuration=Release Open3D.sln /t:Rebuild >msbuild.log 

### Error message

```shell
135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\geometry\linei.h(56,53): error C2665: 'embree::movemask': no overloaded function could convert all the argument types (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\geometry\primitive8.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
Line 2848: 135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\bvh\bvh_intersector1.cpp(104,13): error C2679: binary '=': no operator found which takes a right-hand operand of type 'float' (or there is no acceptable conversion) (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\bvh\bvh_intersector1_bvh8.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
Line 2974: 135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\bvh\bvh_intersector_hybrid.cpp(126,24): error C2678: binary '==': no operator found which takes a left-hand operand of type 'embree::vint_impl<8>' (or there is no acceptable conversion) (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\bvh\bvh_intersector_hybrid8_bvh4.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
Line 3008: 135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\bvh\bvh_intersector_hybrid.cpp(94,14): error C2679: binary '=': no operator found which takes a right-hand operand of type 'float' (or there is no acceptable conversion) (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\bvh\bvh_intersector_hybrid4_bvh8.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
Line 3010: 135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\bvh\bvh_intersector_hybrid.cpp(126,24): error C2678: binary '==': no operator found which takes a left-hand operand of type 'embree::vint_impl<8>' (or there is no acceptable conversion) (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\bvh\bvh_intersector_hybrid8_bvh8.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
Line 3021: 135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\bvh\bvh_intersector_stream.cpp(112,104): error C2440: '': cannot convert from 'int' to 'embree::vboolf_impl<8>' (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\bvh\bvh_intersector_stream_bvh8.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
Line 3071: 135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\bvh\bvh_intersector_stream.cpp(112,57): error C2672: 'embree::sse42::BVHNNodeTraverserStreamHitCoherent<8,1>::traverseClosestHit': no matching overloaded function found (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\bvh\bvh_intersector_stream_bvh8.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
Line 3083: 135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\bvh\bvh_intersector_stream.cpp(242,100): error C2440: '': cannot convert from 'int' to 'embree::vboolf_impl<8>' (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\bvh\bvh_intersector_stream_bvh8.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
Line 3130: 135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\bvh\bvh_intersector_stream.cpp(242,57): error C2672: 'embree::sse42::BVHNNodeTraverserStreamHitCoherent<8,1>::traverseAnyHit': no matching overloaded function found (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\bvh\bvh_intersector_stream_bvh8.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
Line 3168: 135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\bvh\bvh_intersector_stream.cpp(343,50): error C2440: '': cannot convert from 'embree::ZeroTy' to 'embree::vint_impl<8>' (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\bvh\bvh_intersector_stream_bvh8.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
Line 3206: 135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\bvh\bvh_intersector_stream.cpp(347,20): error C2039: 'storeu': is not a member of 'embree::vint_impl<8>' (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\bvh\bvh_intersector_stream_bvh8.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
Line 3222: 135>F:\Open3D\build_arm64ec\embree\src\ext_embree\kernels\bvh\bvh_intersector_stream.cpp(347,1): error C3861: 'storeu': identifier not found (compiling source file F:\Open3D\build_arm64ec\embree\src\ext_embree-build\bvh\bvh_intersector_stream_bvh8.cpp.avx.cpp) [F:\Open3D\build_arm64ec\embree\src\ext_embree-build\kernels\embree_avx.vcxproj] [F:\Open3D\build_arm64ec\ext_embree.vcxproj]
```

### Open3D, Python and System information

```markdown
Versions and configuration
- Operating system: Windows Server 2022 Datacenter
- Compiler version: Visual Studio 2019(16.11.20)
- Python version: Python 3.9.7
- How did you install Open3D?: build from source
```

### Additional information

[Open3D_msbuild_error.log](https://github.com/isl-org/Open3D/files/10037203/Open3D_msbuild_error.log)

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.