From 245bb35cfae865e991526673b2da8073ec77c5c2 Mon Sep 17 00:00:00 2001 From: Joshua Marshall-law Date: Tue, 10 Mar 2026 11:36:08 +0000 Subject: [PATCH 1/8] Update author name in mobile graphics guide --- .../_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/_index.md b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/_index.md index 5caa77dcdb..9d871bd573 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/_index.md @@ -16,7 +16,7 @@ prerequisites: - Desktop computer capable of running Unity - Unity version compatible with Unity Burst compiler 1.5 or later -author: Arm +author: Joshua Marshall-Law ### Tags skilllevels: Advanced From 3dd6cd47823432784624a2193c9d68b8ce1a0401 Mon Sep 17 00:00:00 2001 From: Joshua Marshall-law Date: Tue, 10 Mar 2026 11:41:15 +0000 Subject: [PATCH 2/8] Update Unity version from 2022.3 to v6.3 --- .../2-arm-neon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/2-arm-neon.md b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/2-arm-neon.md index 08a0681220..3cfe30fe44 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/2-arm-neon.md +++ b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/2-arm-neon.md @@ -5,7 +5,7 @@ weight: 3 ### FIXED, DO NOT MODIFY layout: learningpathall --- -In 2021 Unity released version 1.5 of the Burst compiler. The headline feature of this version was new support for Neon intrinsics. Since then there have been various improvements in both Burst and Neon support. This learning path was written using Unity 2022.3 and [Burst 1.8.12](https://docs.unity3d.com/Packages/com.unity.burst@1.8/manual/index.html). +In 2021 Unity released version 1.5 of the Burst compiler. The headline feature of this version was new support for Neon intrinsics. Since then there have been various improvements in both Burst and Neon support. This learning path was written using Unity v6.3 and [Burst 1.8.12](https://docs.unity3d.com/Packages/com.unity.burst@1.8/manual/index.html). ## Unity Burst compiler Burst is an advanced compiler that compiles specific parts of your code. It translates .NET byte code into CPU native instructions. It is part of Unity's [DOTS (Data Oriented Technology Stack](https://unity.com/dots). Your project and code need some minimal setup in order to use the Burst compiler. From 8fc9387bfc1fc75bbd2323a1d3ac51ff80ce88b8 Mon Sep 17 00:00:00 2001 From: Joshua Marshall-law Date: Tue, 10 Mar 2026 13:58:33 +0000 Subject: [PATCH 3/8] added detail to burst enablement --- .../5-the-optimizations.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/5-the-optimizations.md b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/5-the-optimizations.md index 05a6853dd7..25e00ac6ea 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/5-the-optimizations.md +++ b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/5-the-optimizations.md @@ -13,7 +13,7 @@ In order to leverage Neon intrinsics in code, you first have to ensure that your ### Enable Burst package -1. In the Window menu, select _Package Manager_ +1. In the Window menu, select _Packet Management_ -> _Package Manager_ 1. Ensure that the Packages option in top left is set to _Unity Registry_ From 98c24d656f85a9a56be547efcd61ff0e7f0731e5 Mon Sep 17 00:00:00 2001 From: Joshua Marshall-law Date: Tue, 10 Mar 2026 13:59:07 +0000 Subject: [PATCH 4/8] Update Burst version to 1.8.28 in documentation --- .../2-arm-neon.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/2-arm-neon.md b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/2-arm-neon.md index 3cfe30fe44..8dc7c39107 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/2-arm-neon.md +++ b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/2-arm-neon.md @@ -5,7 +5,7 @@ weight: 3 ### FIXED, DO NOT MODIFY layout: learningpathall --- -In 2021 Unity released version 1.5 of the Burst compiler. The headline feature of this version was new support for Neon intrinsics. Since then there have been various improvements in both Burst and Neon support. This learning path was written using Unity v6.3 and [Burst 1.8.12](https://docs.unity3d.com/Packages/com.unity.burst@1.8/manual/index.html). +In 2021 Unity released version 1.5 of the Burst compiler. The headline feature of this version was new support for Neon intrinsics. Since then there have been various improvements in both Burst and Neon support. This learning path was written using Unity v6.3 and [Burst 1.8.28](https://docs.unity3d.com/Packages/com.unity.burst@1.8/manual/index.html). ## Unity Burst compiler Burst is an advanced compiler that compiles specific parts of your code. It translates .NET byte code into CPU native instructions. It is part of Unity's [DOTS (Data Oriented Technology Stack](https://unity.com/dots). Your project and code need some minimal setup in order to use the Burst compiler. From f6528a1d6ff024fdc5ac561f1ab64af3abb3831a Mon Sep 17 00:00:00 2001 From: Joshua Marshall-law Date: Thu, 12 Mar 2026 10:52:42 +0000 Subject: [PATCH 5/8] Update architecture requirements for Neon intrinsics --- .../5-the-optimizations.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/5-the-optimizations.md b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/5-the-optimizations.md index 25e00ac6ea..b47f6b974f 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/5-the-optimizations.md +++ b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/5-the-optimizations.md @@ -24,7 +24,7 @@ In order to leverage Neon intrinsics in code, you first have to ensure that your 1. If Burst is already installed, it will be ticked. If not, select _Install_ ### Turn off ARMv7 architecture support -Neon intrinsics in Unity require ARMv8. +Neon intrinsics in Unity require ARM64. 1. Select _Project Settings_ from the _Edit_ menu @@ -34,7 +34,7 @@ Neon intrinsics in Unity require ARMv8. 1. Ensure ARMv7 is _not_ ticked -1. Ensure ARMv8 _is_ ticked +1. Ensure ARM64 _is_ ticked ### Allow unsafe code We need to make use of memory pointers. From b5532469f3216655a72c07227e0698a14d9aa2ff Mon Sep 17 00:00:00 2001 From: Joshua Marshall-law Date: Thu, 12 Mar 2026 10:59:51 +0000 Subject: [PATCH 6/8] Clarify character count display in performance data --- .../6-collecting-performance-data.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/6-collecting-performance-data.md b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/6-collecting-performance-data.md index 088f23b4b2..9ab64b0378 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/6-collecting-performance-data.md +++ b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/6-collecting-performance-data.md @@ -17,7 +17,7 @@ First, you will need a consistent scenario in which you can reliably compare the The sample generates new characters every frame up to a maximum of 2401. This maximum is reached in a couple of minutes or so. -Unfortunately, the sample code doesn’t display the character count but it can be added easily. +Unfortunately, the sample code in the CollisionCalculationScript doesn’t display the character count but it can be added easily. ### Display character count First, pass the character count to the `ScreenWriteout` function call in _Update_. Line 265 becomes: @@ -52,7 +52,7 @@ You will need to ensure plain (unoptimized) mode is active: public const Mode codeMode = Mode.Plain; ``` -4. Open _Build Settings_ from the _File_ menu +4. Open _Build Profiles_ from the _File_ menu 5. Ensure the following options: From 2d9f8d62b22fdaadb0aac0e1970a0cf441337091 Mon Sep 17 00:00:00 2001 From: Joshua Marshall-law Date: Thu, 12 Mar 2026 11:18:21 +0000 Subject: [PATCH 7/8] Clarify device reference in data analysis section Updated the description of the collected data to specify 'our sample device' instead of 'a Samsung S8'. --- .../7-analyzing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/7-analyzing.md b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/7-analyzing.md index 758a5fff4b..69309d4f8f 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/7-analyzing.md +++ b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/7-analyzing.md @@ -31,7 +31,7 @@ To compare the results you will use the Analyzer to import all three datasets bu 1. Click back to the Analyzer and select the second _Pull Data_. -You now have two datasets loaded, one from the unoptimized mode and one from the Burst mode. This is what the data looks like collected from a Samsung S8. +You now have two datasets loaded, one from the unoptimized mode and one from the Burst mode. This is what the data looks like collected from our sample device. ![Plain vs Burst#center](images/analyzer-plain-vs-burst.PNG) From f1f0b01596275dce395b919d6819b2c74aa291f4 Mon Sep 17 00:00:00 2001 From: Joshua Marshall-law Date: Thu, 12 Mar 2026 11:19:09 +0000 Subject: [PATCH 8/8] Update authors in mobile graphics learning path --- .../_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/_index.md b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/_index.md index 9d871bd573..efdd47e8d3 100644 --- a/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/_index.md +++ b/content/learning-paths/mobile-graphics-and-gaming/using-neon-intrinsics-to-optimize-unity-on-android/_index.md @@ -16,7 +16,7 @@ prerequisites: - Desktop computer capable of running Unity - Unity version compatible with Unity Burst compiler 1.5 or later -author: Joshua Marshall-Law +author: Ben Clark, Joshua Marshall-Law ### Tags skilllevels: Advanced