Unreal Engine for Windows on Arm64

Before you begin

Note

All development work and work in the Unreal Editor must take place on a Windows x64 system.

The following instructions help users produce a project build that can run on a Windows 10 Arm device: 1. Follow the steps provided by Epic Games to gain access to the Unreal Engine source code on GitHub. 2. Follow instructions from the pull request for Unreal Engine 4.25 to create a custom build of the engine to add Arm for Windows 10 support. https://github.com/EpicGames/UnrealEngine/pull/6975 These instructions will become largely unnecessary once the pull request is accepted into the main engine project by Epic.

Technical Prerequisites

Development machine

  • Git

  • Visual Studio 2019

    • Workloads

    • Desktop Development with C++

    • Universal Windows Platform Development Workload

    • Individual components

      • .NET Framework 4.6.x

      • Visual C++ compilers and libraries for Arm and Arm64

      • Visual C++ Runtime for UWP

      • Windows 10 SDK 10.0.18362.0

Target Arm64 Windows 10 machine

Visual Studio Redistributable for Arm64

Building Unreal Engine from source to enable Windows Arm cross-compile

To produce a UE4Editor-Debug.exe in EngineBinariesWin64to run for a project:

  1. Clone the latest version of Unreal Engine 4.25 source from the 4.25 branch.

  2. Incorporate changes from the Arm Support Pull Request.

    https://github.com/EpicGames/UnrealEngine/pull/6975

    1. Run Setup.bat.

    2. Run GenerateProjectFiles.bat.

  3. Open UE4.sln in Visual Studio 2019.

    1. In Solution Explorer, right-click UE4 and select Set as Startup Project.

      Clean
    2. Right-click UE4 > Properties.

    3. From the Configuration list, select Active (Development).

      Configuration
    4. Under Configuration Properties, click NMake and append “ -Architecture=arm64” to the following entries:

      – Build Command Line

      – Rebuild All Command Line

      – Clean Command Line

      Clean
    5. Click Apply.

  4. Right-click UE4 in the Solution Explorer and select Build.

Producing builds

  1. Open UE4 Game Project in the editor that was built in the previous section.

If the project was created in a different editor version, it is recommended to open a copy of the project.

  1. To create a packaged build, go to File > Package Project > Windows (Snapdragon)

Additional notes

Remote debug

It is possible to remote debug with Visual Studio, as outlined in Microsoft Remote Debugging. The remote debugging tools for Visual Studio 2019 and the Arm64 platform must be installed on the engineering sample and started up.

An example remote debug configuration can be found at https://gyazo.com/a1218849ba30d13a839a90a42703d11b.

Build optimization

This build is optimized for the Microsoft SQ1 Arm processor, and available in the Surface Pro X tablet in particular. The thread affinity setup is optimized for the DX12 RHI on the SQ1 and takes advantage of the faster “big cores”. For more details, review the additions to Engine/Source/Runtime/Core/Public/Windows/WindowsPlatformAffinity.h.

Third-party libraries

Several third party libraries have been recompiled for Windows 10 Arm64 to support this work. This was often done outside of the Unreal Engine 4 source tree, using each library’s build system. Refer to the README-arm64.txt files for notes on how the libraries were configured and compiled and details on the source version used:

  • Engine/Source/ThirdParty/PhysX3/README-arm64.txt

  • Engine/Source/ThirdParty/Vorbis/README-arm64.txt