# GearVR debugging with ARM Mali Graphics debugger

**URL:** <https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510>\
**Category:** Mobile\
**Tags:** Android-Packaging, unreal-engine, Android, gear-vr, question\
**Created:** [October 7, 2015, 9:34am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510 "2015-10-07T09:34:46Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![MiKom](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MiKom](https://forums.unrealengine.com/u/MiKom)\
**Post date:** [October 7, 2015, 9:34am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/1 "2015-10-07T09:34:46Z")

</div>

Hi,

in my attempt to dig deep into performance problems of my GearVR UE4 game, I tried using the ARM Mali Graphics debugger. It requires adding a .so library to the Android project and loading it dynamically on runtime.

I added loading code to main game activity in `Engine\Build\Android\Java\src\com\epicgames\ue4\GameActivity.java` but unfortunately, I’m unable to package the .so file with the .apk properly.

When I added makefiles to the UE4 Java project as per ARM documentation, I get error when AutomationTool is about to create the .apk file (error log below).

I’ve seen on Niklas Smedberg’s presentation ([https://de45xmedrsdbp.cloudfront.net/Resources/files/UE4\_DevCon2014\_MobilePerf-1826750604.pdf](https://de45xmedrsdbp.cloudfront.net/Resources/files/UE4_DevCon2014_MobilePerf-1826750604.pdf)), that you guys at Epic use ARM Mali Graphics Debugger to debug UE4 projects. Could you please give some small tutorial on how to set it up properly?

```
MainFrameActions: Packaging (Android (ETC2)): ====2015-10-07 11:23:03====PREPARING NATIVE CODE=================================================================
MainFrameActions: Packaging (Android (ETC2)): UEDeployAndroid.UpdateProjectProperties: 
MainFrameActions: Packaging (Android (ETC2)): ====2015-10-07 11:23:03====UPDATING BUILD CONFIGURATION FILES====================================================
MainFrameActions: Packaging (Android (ETC2)): UEDeployAndroid.RunCommandLineProgramAndThrowOnError: Updating project.properties, local.properties, and build.xml...
MainFrameActions: Packaging (Android (ETC2)): UEDeployAndroid.RunCommandLineProgramAndThrowOnError: Updating project.properties, local.properties, and build.xml...
MainFrameActions: Packaging (Android (ETC2)): UEDeployAndroid.MakeApk: 
MainFrameActions: Packaging (Android (ETC2)): Copying new .so C:\Repo\mkosobucki_capybara\Capybara\Binaries\Android\Capybara-armv7-es2.so file to jni folder...
MainFrameActions: Packaging (Android (ETC2)): UEDeployAndroid.RunCommandLineProgramAndThrowOnError: Preparing native code for debugging...
MainFrameActions: Packaging (Android (ETC2)): BuildCommand.Execute: ERROR: BUILD FAILED
MainFrameActions: Packaging (Android (ETC2)): Program.Main: ERROR: AutomationTool terminated with exception:
MainFrameActions: Packaging (Android (ETC2)): Program.Main: ERROR: Exception in UnrealBuildTool: ERROR: C:/NVPACK/android-ndk-r10e/ndk-build.cmd failed with args APP_ABI="armeabi-v7a " NDK_DEBUG=1
MainFrameActions: Packaging (Android (ETC2)): Stacktrace: at UnrealBuildTool.Android.UEDeployAndroid.RunCommandLineProgramAndThrowOnError(String WorkingDirectory, String Command, String Params, String OverrideDesc, Boolean bUseShellExecute)
MainFrameActions: Packaging (Android (ETC2)): at UnrealBuildTool.Android.UEDeployAndroid.MakeApk(String ProjectName, String ProjectDirectory, String OutputPath, String EngineDirectory, Boolean bForDistribution, String CookFlavor, Boolean bMakeSeparateApks, Boolean bIncrementalPackage, Boolean bDisallowPackagingDataInApk)
MainFrameActions: Packaging (Android (ETC2)): at UnrealBuildTool.Android.UEDeployAndroid.PrepForUATPackageOrDeploy(String ProjectName, String ProjectDirectory, String ExecutablePath, String EngineDirectory, Boolean bForDistribution, String CookFlavor, Boolean bIsDataDeploy)
MainFrameActions: Packaging (Android (ETC2)): at AndroidPlatform.Package(ProjectParams Params, DeploymentContext SC, Int32 WorkingCL) in c:\Repo\mkosobucki_capybara\Engine\Source\Programs\AutomationTool
MainFrameActions: Packaging (Android (ETC2)): \Android\AndroidPlatform.Automation.cs:line 183
MainFrameActions: Packaging (Android (ETC2)): at Project.Package(ProjectParams Params, Int32 WorkingCL) in c:\Repo\mkosobucki_capybara\Engine\Source\Programs\AutomationTool\Scripts\PackageCommand.Automation.cs:line 30
MainFrameActions: Packaging (Android (ETC2)): at BuildCookRun.DoBuildCookRun(ProjectParams Params) in c:\Repo\mkosobucki_capybara\Engine\Source\Programs\AutomationTool\Scripts\BuildCookRun.Automation.cs:line 212
MainFrameActions: Packaging (Android (ETC2)): at BuildCommand.Execute() in c:\Repo\mkosobucki_capybara\Engine\Source\Programs\AutomationTool\AutomationUtils\BuildCommand.cs:line 35
MainFrameActions: Packaging (Android (ETC2)): at AutomationTool.Automation.Execute(List`1 CommandsToExecute, CaselessDictionary`1 Commands) in c:\Repo\mkosobucki_capybara\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 392
MainFrameActions: Packaging (Android (ETC2)): at AutomationTool.Automation.Process(String[] CommandLine) in c:\Repo\mkosobucki_capybara\Engine\Source\Programs\AutomationTool\AutomationUtils\Automation.cs:line 366
MainFrameActions: Packaging (Android (ETC2)): at AutomationTool.Program.MainProc(Object Param) in c:\Repo\mkosobucki_capybara\Engine\Source\Programs\AutomationTool\Program.cs:line 134
MainFrameActions: Packaging (Android (ETC2)): at AutomationTool.InternalUtils.RunSingleInstance(Action`1 Main, Object Param) in c:\Repo\mkosobucki_capybara\Engine\Source\Programs\AutomationTool\AutomationUtils\Utils.cs:line 708
MainFrameActions: Packaging (Android (ETC2)): at AutomationTool.Program.Main() in c:\Repo\mkosobucki_capybara\Engine\Source\Programs\AutomationTool\Program.cs:line 53
MainFrameActions: Packaging (Android (ETC2)): ProcessManager.KillAll: Trying to kill 0 spawned processes.
MainFrameActions: Packaging (Android (ETC2)): Program.Main: AutomationTool exiting with ExitCode=Error_Unknown
MainFrameActions: Packaging (Android (ETC2)): Domain_ProcessExit
MainFrameActions: Packaging (Android (ETC2)): AutomationToolLauncher exiting with ExitCode=1
MainFrameActions: Packaging (Android (ETC2)): copying UAT log files...
MainFrameActions: Packaging (Android (ETC2)): RunUAT.bat ERROR: AutomationTool was unable to run successfully.
MainFrameActions: Packaging (Android (ETC2)): BUILD FAILED
PackagingResults:Error: Error Unknown Error
```

---

<div class="post-metadata">

**Author:** ![MiKom](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@MiKom](https://forums.unrealengine.com/u/MiKom)\
**Post date:** [November 6, 2015, 3:53pm UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/2 "2015-11-06T15:53:30Z")

</div>

Upgrade to MGD 3.2.0 helped. It works now. However, it’s still unsuitable to use with GearVR because of this:  
[https://forums.oculus.com/viewtopic.php?t=20404](https://forums.oculus.com/viewtopic.php?t=20404)

You can’t easily set up VRApi used in UE4 to use double buffering, so MGD won’t recognize places where frames end.

---

<div class="post-metadata">

**Author:** ![olletsocmit](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@olletsocmit](https://forums.unrealengine.com/u/olletsocmit)\
**Post date:** [March 14, 2022, 9:08am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/3 "2022-03-14T09:08:40Z")

</div>

Thanks

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_0f495ff11](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_0f495ff11](https://forums.unrealengine.com/u/anonymous_user_0f495ff11)\
**Post date:** [April 13, 2022, 11:45am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/4 "2022-04-13T11:45:47Z")

</div>

I am here because of @discobot

---

<div class="post-metadata">

**Author:** ![discobot](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/discobot/32/88673_2.png) [@discobot](https://forums.unrealengine.com/u/discobot)\
**Post date:** [April 13, 2022, 11:45am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/5 "2022-04-13T11:45:49Z")

</div>

Hi! To find out what I can do, say `@discobot display help`.

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_0f495ff11](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_0f495ff11](https://forums.unrealengine.com/u/anonymous_user_0f495ff11)\
**Post date:** [April 13, 2022, 11:46am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/6 "2022-04-13T11:46:57Z")

</div>

go away @discobot ; you are only instigating and causing problems/confusion in your wake.

😠

---

<div class="post-metadata">

**Author:** ![anonymous\_user\_0f495ff11](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@anonymous\_user\_0f495ff11](https://forums.unrealengine.com/u/anonymous_user_0f495ff11)\
**Post date:** [April 13, 2022, 11:49am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/7 "2022-04-13T11:49:57Z")

</div>

SHOW ME THE CAPYBARA

 ![3293194726_b594520d87_b](https://d3kjluh73b9h9o.cloudfront.net/original/4X/d/1/6/d16d2a61545b525547edea6cff1d660b29969b42.jpeg)

---

<div class="post-metadata">

**Author:** ![SphereCrush1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@SphereCrush1](https://forums.unrealengine.com/u/SphereCrush1)\
**Post date:** [April 15, 2022, 5:41pm UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/8 "2022-04-15T17:41:47Z")

</div>

Let’s go to the bar and capitalize, you old goat. You won’t need to see anything but your beer.

---

<div class="post-metadata">

**Author:** ![SphereCrush1](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@SphereCrush1](https://forums.unrealengine.com/u/SphereCrush1)\
**Post date:** [April 15, 2022, 8:28pm UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/9 "2022-04-15T20:28:58Z")

</div>

If you have a thing for rodents, you old goat, the beer might not work, I hear rodents have a thing for old goats. [Capybara - Wikipedia](https://en.wikipedia.org/wiki/Capybara)

---

<div class="post-metadata">

**Author:** ![nomisnibor](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/nomisnibor/32/471404_2.png) [@nomisnibor](https://forums.unrealengine.com/u/nomisnibor)\
**Post date:** [April 20, 2022, 2:48am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/10 "2022-04-20T02:48:17Z")

</div>

@discobot Not sure I understand why you bring me here… 🫠

---

<div class="post-metadata">

**Author:** ![discobot](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/discobot/32/88673_2.png) [@discobot](https://forums.unrealengine.com/u/discobot)\
**Post date:** [April 20, 2022, 2:48am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/11 "2022-04-20T02:48:20Z")

</div>

Hi! To find out what I can do, say `@discobot display help`.

---

<div class="post-metadata">

**Author:** ![nomisnibor](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/nomisnibor/32/471404_2.png) [@nomisnibor](https://forums.unrealengine.com/u/nomisnibor)\
**Post date:** [April 20, 2022, 2:57am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/12 "2022-04-20T02:57:44Z")

</div>

> [@discobot](#):
>
> `discobot display help`.

@discobot display help.

---

<div class="post-metadata">

**Author:** ![CgMarcosMorais1](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/cgmarcosmorais1/32/613925_2.png) [@CgMarcosMorais1](https://forums.unrealengine.com/u/CgMarcosMorais1)\
**Post date:** [May 31, 2022, 9:03am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/13 "2022-05-31T09:03:07Z")

</div>

@discobot display help

---

<div class="post-metadata">

**Author:** ![discobot](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/discobot/32/88673_2.png) [@discobot](https://forums.unrealengine.com/u/discobot)\
**Post date:** [May 31, 2022, 9:03am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/14 "2022-05-31T09:03:10Z")

</div>

I currently know how to do the following things:

`@discobot start {name-of-tutorial}`

> Starts an interactive tutorial just for you, in a personal message. `{name-of-tutorial}` can be one of: `tutorial, advanced tutorial`.

`@discobot roll 2d6`

> 🎲 3, 6

`@discobot quote`

> 🗨 _A rolling stone gathers no moss._ — Publilius Syrus

`@discobot fortune`

> 🔮 You may rely on it

---

<div class="post-metadata">

**Author:** ![Top6u17](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Top6u17](https://forums.unrealengine.com/u/Top6u17)\
**Post date:** [July 24, 2022, 7:39pm UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/16 "2022-07-24T19:39:53Z")

</div>

@discobot sent me here

---

<div class="post-metadata">

**Author:** ![discobot](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/discobot/32/88673_2.png) [@discobot](https://forums.unrealengine.com/u/discobot)\
**Post date:** [July 24, 2022, 7:39pm UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/17 "2022-07-24T19:39:56Z")

</div>

Hi! To find out what I can do, say `@discobot display help`.

---

<div class="post-metadata">

**Author:** ![RyleDuppp](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@RyleDuppp](https://forums.unrealengine.com/u/RyleDuppp)\
**Post date:** [July 31, 2022, 1:36pm UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/18 "2022-07-31T13:36:48Z")

</div>

@discobot display help

---

<div class="post-metadata">

**Author:** ![discobot](https://d1ap1mz92jnks1.cloudfront.net/user_avatar/forums.unrealengine.com/discobot/32/88673_2.png) [@discobot](https://forums.unrealengine.com/u/discobot)\
**Post date:** [July 31, 2022, 1:36pm UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/19 "2022-07-31T13:36:50Z")

</div>

I currently know how to do the following things:

`@discobot start {name-of-tutorial}`

> Starts an interactive tutorial just for you, in a personal message. `{name-of-tutorial}` can be one of: `tutorial, advanced tutorial`.

`@discobot roll 2d6`

> 🎲 3, 6

`@discobot quote`

> 🗨 _Until you make peace with who you are, you’ll never be content with what you have._ — Doris Mortman

`@discobot fortune`

> 🔮 You may rely on it

---

<div class="post-metadata">

**Author:** ![Murderousmama13](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Murderousmama13](https://forums.unrealengine.com/u/Murderousmama13)\
**Post date:** [August 1, 2022, 5:25pm UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/20 "2022-08-01T17:25:59Z")

</div>

@NickEh30 Hello! Im new here! 🤝

---

<div class="post-metadata">

**Author:** ![Limmy\_Jimmy](https://d3kjluh73b9h9o.cloudfront.net/original/4X/2/8/5/28502927f1d97ba1051b3b47ccfe17233bf41ef0.png) [@Limmy\_Jimmy](https://forums.unrealengine.com/u/Limmy_Jimmy)\
**Post date:** [October 7, 2022, 1:00am UTC](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510/21 "2022-10-07T01:00:59Z")

</div>

@discobot display help

[Next page](https://forums.unrealengine.com/t/gearvr-debugging-with-arm-mali-graphics-debugger/334510.md?page=2)
