Platform build support reference
Read time 5 minutesLast updated 10 days ago
When you build your project, Burst compiles your code and creates a single dynamic library in the folder for the platform you're targeting. For example, on Windows, the path is .
PluginsData/Plugins/lib_burst_generated.dllThe job system runtime loads the generated library the first time a Burst compiled method is invoked.
To control Burst's AOT compilation, use the settings in the Burst AOT Settings section of the Project Settings window (Edit > Project Settings > Burst AOT Settings). For more information, refer to Burst AOT Settings reference.
Platforms without cross compilation
If you're compiling for a non-desktop platform, Burst compilation requires specific platform compilation tools (similar to IL2CPP). Desktop platforms (macOS, Linux, Windows) don't need external toolchain support.
The table below lists the level of support for AOT compilation on each platform. If you select an invalid target (one with missing tools, or unsupported), Unity doesn't use Burst compilation, but still builds the target without Burst optimizations.
Host Editor platform | Target Player platform | Supported CPU architectures | External toolchain requirements |
|---|---|---|---|
| Windows | Windows | x86 (SSE2, SSE4) x64 (SSE2, SSE4, AVX, AVX2) | None |
| Windows | Universal Windows Platform | x86 (SSE2, SSE4) x64 (SSE2, SSE4, AVX, AVX2) ARM32 (Thumb2, Neon32) ARMV8 AARCH64 Note: A UWP build always compiles all four targets. | Visual Studio 2017 Universal Windows Platform Development Workflow C++ Universal Platform Tools |
| Windows | iOS | ARMV8 AARCH64 | Burst supports compilation for iOS from Windows. However, to build the resulting Xcode project, you need macOS with Xcode installed. |
| Windows | tvOS | ARMV8 AARCH64 | Burst supports compilation for tvOS from Windows. However, to build the resulting Xcode project, you need macOS with Xcode installed. |
| Windows | visionOS | ARMV8 AARCH64 | Burst supports compilation for visionOS from Windows. However, to build the resulting Xcode project, you need macOS with Xcode installed. |
| Windows | visionOS Simulator | ARMV8 AARCH64 | Burst supports compilation for visionOS Simulator from Windows. However, to build the resulting Xcode project, you need macOS with Xcode installed. |
| Windows | Android | x86 SSE2 ARMV7 (Thumb2, Neon32) ARMV8 AARCH64 (ARMV8A, ARMV8A_HALFFP, ARMV9A) | Android NDK Important: Use the Android NDK that you install through Unity Hub (via Add Component). Burst falls back to the one that the |
| Windows | Xbox One | x64 SSE4 | Microsoft GDK |
| Windows | Xbox Series | x64 AVX2 | Microsoft GDK |
| Windows | PlayStation 4 | x64 SSE4 | Minimum PS4 SDK version 8.00 |
| Windows | PlayStation 5 | x64 AVX2 | Minimum PS5 SDK version 2.00 |
| Windows | Nintendo Switch | ARMV8 AARCH64 | None |
| macOS | macOS | x64 (SSE2, SSE4, AVX, AVX2), Apple Silicon | None |
| macOS | iOS | ARMV8 AARCH64 | To build the resulting Xcode project, you need Xcode installed. |
| macOS | tvOS | ARMV8 AARCH64 | To build the resulting Xcode project, you need Xcode installed. |
| macOS | visionOS | ARMV8 AARCH64 | To build the resulting Xcode project, you need Xcode installed. |
| macOS | visionOS Simulator | ARMV8 AARCH64 | To build the resulting Xcode project, you need Xcode installed. |
| macOS | Android | x86 SSE2 ARMV7 (Thumb2, Neon32) ARMV8 AARCH64 (ARMV8A, ARMV8A_HALFFP, ARMV9A) | Android NDK Important: Use the Android NDK that you install through Unity Hub (via Add Component). Burst falls back to the one that the |
| Linux | Linux | x64 (SSE2, SSE4, AVX, AVX2) | None |
| Linux | iOS | ARMV8 AARCH64 | Burst supports compilation for iOS from Linux. However, to build the resulting Xcode project, you need macOS with Xcode installed. |
| Linux | tvOS | ARMV8 AARCH64 | Burst supports compilation for tvOS from Linux. However, to build the resulting Xcode project, you need macOS with Xcode installed. |
| Linux | visionOS | ARMV8 AARCH64 | Burst supports compilation for visionOS from Linux. However, to build the resulting Xcode project, you need macOS with Xcode installed. |
| Linux | visionOS Simulator | ARMV8 AARCH64 | Burst supports compilation for visionOS Simulator from Linux. However, to build the resulting Xcode project, you need macOS with Xcode installed. |
Unsupported project types
Some projects can't use Burst as the compiler:
- Android projects from the Linux Editor.
- Xcode projects generated from the Create Xcode Project option.
Multiple Burst targets
When Burst compiles multiple target platforms during a build, it has to perform separate compilations. For example, if you want to compile and , Burst has to do two separate compilations to generate code for each of the targets you choose.
X64_SSE2X64_SSE4To keep the combinations of targets to a minimum, Burst target platforms require multiple processor instruction sets underneath:
- is gated on having
SSE4.2andSSE4.2instruction sets.POPCNT - is gated on having
AVX2,AVX2,FMA,F16C, andBMI1instruction sets.BMI2 - is a basic Armv8-A CPU target
ARMV8A - is
ARMV8A_HALFFPplus the following extensions:ARMV8A,fullfp16,dotprod,crypto,crc,rdm. In practice, this means Cortex A75/A55 and later cores.lse - is
ARMV9Aplus SVE2 support. In practice, this means Cortex X2/A710/A510 and later cores. Important: this target is currently experimental.ARMV8A_HALFFP
Dynamic dispatch based on runtime CPU features
For all / CPU desktop platforms, as well as for 64-bit Arm on Android, Burst takes into account the CPU features available at runtime to dispatch jobs to different versions it compiles.
x86x64For and CPUs, Burst supports and instruction sets at runtime only.
x86x64SSE2SSE4For example, with dynamic CPU dispatch, if your CPU supports and below, Burst selects automatically.
SSE3SSE2