Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Godot 3.2.4 not building on ARM64 Linux #45687

Closed
NicoZobernig opened this issue Feb 3, 2021 · 5 comments
Closed

Godot 3.2.4 not building on ARM64 Linux #45687

NicoZobernig opened this issue Feb 3, 2021 · 5 comments

Comments

@NicoZobernig
Copy link

Godot version:
Godot branch 3.2 - version 3.2.4 (?)

OS/device including version:
Nvidia Jetson AGX Xavier
JetPack 4.5 - Ubuntu 18.04
NVIDIA Tegra Xavier (nvgpu)/integrated
GL ES 3.0

Issue description:
build failing with error fatal error: xmmintrin.h: No such file or directory
xmmintrin.h does not seem to exist for ARM architectures ?

Steps to reproduce:
scons -j8 platform=linux target=release_debug or scons -j8 platform=linux target=release_debug use_llvm=yes on ARM

Godot 3.2.2 and 3.2.3 build successfully.

@Calinou
Copy link
Member

Calinou commented Feb 3, 2021

This may be related to the new CPU lightmapper which integrates the OpenImageDenoise library (thirdparty/oidn).

However, prior to 3.2.4, many other libraries already included xmmintrin.h without trouble:

List of files where xmmintrin.h is included
❯ rg -i "xmmintrin"
thirdparty/squish/simd_sse.h
29:#include <xmmintrin.h>

thirdparty/opus/celt/kiss_fft.h
42:# include <xmmintrin.h>

thirdparty/opus/celt/float_cast.h
94:        #include <xmmintrin.h>

thirdparty/bullet/clew/clew.h
343:#include <xmmintrin.h>

thirdparty/oidn/common/platform.h
27:#include <xmmintrin.h>

thirdparty/opus/celt/x86/pitch_sse4_1.c
32:#include <xmmintrin.h>

thirdparty/opus/celt/x86/celt_lpc_sse.c
32:#include <xmmintrin.h>

thirdparty/opus/celt/x86/pitch_sse2.c
32:#include <xmmintrin.h>

thirdparty/opus/celt/x86/pitch_sse.c
40:#include <xmmintrin.h>

thirdparty/opus/silk/x86/VAD_sse.c
32:#include <xmmintrin.h>

thirdparty/opus/silk/x86/VQ_WMat_EC_sse.c
32:#include <xmmintrin.h>

thirdparty/opus/silk/x86/NSQ_sse.c
32:#include <xmmintrin.h>

thirdparty/opus/silk/x86/NSQ_del_dec_sse.c
32:#include <xmmintrin.h>

thirdparty/bullet/BulletCollision/Gimpact/gim_memory.h
39:#include <xmmintrin.h>  // for prefetch

thirdparty/opus/silk/fixed/x86/vector_ops_FIX_sse.c
32:#include <xmmintrin.h>

thirdparty/opus/silk/fixed/x86/prefilter_FIX_sse.c
32:#include <xmmintrin.h>

thirdparty/opus/silk/fixed/x86/burg_modified_FIX_sse.c
32:#include <xmmintrin.h>

@Calinou Calinou added this to the 3.2 milestone Feb 3, 2021
@ChristophHaag
Copy link

I found a workaround at #2671 (comment)

arch=arm64 selects a build configuration that works here:

scons arch=arm64 platform=x11 target=release_debug use_llvm=no -j4

would be nice if it would default to do the correct thing on arm.

@akien-mga akien-mga self-assigned this Feb 3, 2021
@akien-mga
Copy link
Member

Yeah the new denoiser and ray tracing libraries are not compatible with aarch64. There's a check in place that works for macOS, but not for Linux, I'll have to fix that (we currently don't use/define arch on Linux, so the check doesn't work to disable those features).

@akien-mga akien-mga changed the title Godot 3.2.4 not building on Jetson Xavier - ARM architecture Godot 3.2.4 not building on ARM64 Linux Feb 3, 2021
@Burnsedia
Copy link

I have arm build on my itch.io page

akien-mga added a commit to akien-mga/godot that referenced this issue Feb 23, 2021
Fixes godotengine#45687.

This is really just a band-aid, our current buildsystem doesn't work well for
cross-compilation and needs a thorough refactoring to do so.
@akien-mga
Copy link
Member

"Fixed" by #46345 (will still fail when cross-compiling, but passing arch=arm64 as suggested above will indeed work as a workaround).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants