Compiling Unreal engine on Arm64 (iMX8)

I’m tasked with getting the Unreal engine going on an embedded Arm64 platform which uses a relative new and powerful SoC from NXP. This platform has OpenGLES 3.1 (and lower) support using a Vivante GPU (GC7000Lite). The OS running on this platform is (plain) Debian stretch and Weston / Wayland.

Now I’m trying to figure out what is the best way to build an Unreal engine for this platform.

However reading the documentation the regular Linux build only supports OpenGL (which isn’t OpenGLES). The Android build should support the Vivante GPU but that doesn’t do me any good either.

What is the best coarse of action here? Create some kind of mash-up between Android and the regular Linux build? Use a different game engine?

Any input is welcome.

Linux ARM is a rare target for most game engines. But all the pieces are there, you just have to get hour hands dirty with the source code and buckle up for a bumpy ride. Years ago I gave a go at compiling UE4 for Windows 10 mobile for kicks and giggles (Direct3D on ARM), so in your case it should be completely possible.

Any input that anyone has on this topic, I’m also interested in it as well. I had looked into this a bit a few months ago, and was considering some ways to try to get it to work using OpenEmbedded / Bitbake, but I didn’t really get very far before I got moved to a different aspect of the project entirely.

Thanks for your response.
I got a little bit further. Someone else in the project managed to compile for ARM64 Linux using the Vulkan 3D driver (Vulkan is a competing standard to OpenGL). I can run the binary on the ARM platform and everything including the system and display driver is detected correctly but there is an error message saying the pixelformats used for the content are not compatible compatible. The project does run on the platform when compiled for Android so it seems to me all the bits & pieces are there to run on OpenGLES as well. I’d prefer to use the unrealengine as-is but in case it can’t be used I’m wondering whether Epic would be interested in a version which can target embedded ARM platforms. It would be nice not to get stuck with a ‘patched up’ older version.

I’m trying the same thing, to compile UE4Editor to run on Linux Arm64 (Ubuntu),
I hit a roadblock with the file Binaries/Linux/dump_syms that only exists in x86_x64 format and it fails all compilation attempts because every UE4 binaries seems to depends on this file…
I’ve got the games/projects to run fine at linux arm64, but had no luck with the full Engine/Editor.

any update on this?

I have managed to hack something together by hacking the Android target into a Linux OpenGL-ES target. I got some Unreal projects to kind of run but the basic Unreal examples won’t run at all. My customer has abandoned the idea of running Unreal content on the iMX8 platform for now. I don’t think I’m going to revisit this soon.

Now i have a similar question about porting the ue project to aarch64 & mali GPU…Maybe I can try to answer this question when I have a successful port.

Hi Bruce, did you get it to work? I’m interested in compiling it for the Rock5 B SBC.

I‘m still working on it, and i got a runtime SDL error “failed to create an EGL window surface” when running a demo in ue4.27… Now, i can make sure the SDL2 can run correctly in my environment(wayland on opengles with xdgshell protocals). And the trouble is that many libraries are binary and cannot be debugged, it make me confused.

Hello ,Bruce,have you ever encountered the issue of missing System.Native dataset when running setup script? I encountered it after building Mono on an arm64 system and replacing the paths.