[TUTORIAL] Setting up Nvidia Shield Tablet for UE4 with ES31+AEP

Hi All,

I have created a Video Tutorial detailing the process of building the engine from Github source compiling for development with OpenGL ES3.1 and the Android Extension Pack to allow near PC level rendering quality on the Nvidia Shield Tablet.
I hope that the tutorial is useful for people working on Android projects and projects aimed specifically at Shield hardware. You can find the tutorial below:



Is it essential to use the GitHub version to do this?

Need to deploy to a Shield tablet today in fact with Desktop Rendering, so hoping this is relatively straightforward. I only have the Binary version of the Engine installed atm, getting the GIT version is going to be… problematic on Source Control.

I’m 99% sure that you can only do this from source code currently. Hope that isnt going to cause too much trouble with your project.

It’s not difficult to implement however, check the video out if you haven’t already.

Thank you for making this :smiley:

No problem! more tutorials inbound soon! Hope its helpful!

hi, theonebutcher
thank you for your help! Im also trying to build for Tegra K1, Shield Tablet.
I tried this tutorials, but found some differences.

  1. After installation TADP(4.0r1), I setup the batchfiles(Setup,Generate…). But I couldnt find the Solution Platform “Tegra-Android”(just only “Android”).
    How can I select that platform? ( or failed to install TADP?)

  2. After all compiling, I cant find the packaging Android list “Android(ES31-AEP)” on my built UE4-Editor.

  3. I packaged for Android(DXT) with ES31 and successed getting xxx-armv7-es31.apk.
    But when tried to execute on Device, “GlobalShaderCache-GLSL_310_ES_EXT.bin is missing” error happened and stopped.
    How can I find this .bin file?

Shader Compiler should’ve created that file in your project’s Saved/Cooked/TargetPlatfrom/Engine folder during cooking.

Perhaps the Engine couldn’t get the proper Shader Format due to some mis-configuration, or a bug in the code, thus failing to create that file.

I’d put it up on AnswerHub as a bug anyway and have someone from Epic take a look at it. They do have TK1s available to them so they can test it out.

I can confirm that you can deploy to the shield without going near the github version. However the TADP installer included with ue4 or in the pack didn’t work for me as it wouldn’t detect the shield for deployment. I had to get TADP installer individually from the Nvidia site before it would work. I’m in work at the moment so I don’t have links, I did this back in 4.6 I think it was. EDIT : probably wasn’t the newest openGL so you may need the github version

You can use the Binary version with no issues. I did just the same thing to get the FPS template running on my shield controller at home.

Can really use the “Android ES31 + AEP” on the Nexus 9?
I can’t deploy to Nexus 9
my post is

as far as I can tell, you currently can’t enable Android OpenGL ES 3.1 + AEP in the binary version, it’s grayed out and the tooltip says “This requires github source”.

so yes, you may be able to deploy to a shield device with the binary from the installer… however, it’s probably not running opengl es 3.1 + aep. To take full advantage of the tegra k1 / x1 hardware, you want opengl es 3.1 + AEP.

edit: however, I tried following this video with 4.8 source and wasn’t able to follow. I have the tegra android pack installed, but there was no “Android-Tegra” build configuration option in visual studio. I did see the OpenGL ES 3.1 + AEP option enabled in the editor, however I did not have the option to Package the project for Tegra. I tried packaging it for DXT instead, and it looked identical to when i built it with the binary editor from the epic installer.

however I am using a shield console instead of a shield tablet, so im not sure if it’s something to do with tegra k1 vs x1, etc… and I’m an UE noob, so that doesn’t help.

In any case, it will be nice with Android OpenGL ES 3.1 + AEP doesn’t require github source…

Yeah, looks like it does require Source regardless. Trying this with 4.8.1 now.

I did change the config file settings in DefaultEngine.ini in my Project, which DID check the ES31 option. However, I’m not given the ES3.1 + AEP option in-editor (though I am given ATSC, whatever that is).

Definitely have the TADP installed since I’ve been using it for a while with the latest Shield software, but still not getting a Tegra-Android build option in VS…

EDIT: Yup, this tutorial no longer works for me. Certainly in 4.8, anyway.

We just started porting our game to a NVIDIA K1 based Android Console and we’re using 4.10 with Visual Studio 2015.

It apears the NVIDIA platform selector doesn’t show up in Visual Studio 2015.

I would be really thankful if someone could point out how to package the game for OpenGL ES31 :slight_smile:

Have a great day

In case anyone is interested to get a solution to my above-mentioned problem: Do not use the provided Android Works application, go download the latest version, install it and plug in your console on the USB port. That should do it :slight_smile:

does not work with branch 4.10 ? i followed tutorial without any error after compiling and i still don’t get Es3.1+aep packaging option :s

In my expirience with 4.10 branch, engine compiles only with VS2013. VS2015 hangs with infinity find.exe process on configuring build.

When *.so’s compiled, there is no much .a libraries, like in binary engine version, but, there is one .so and one .apk per es.

I compiled engine with Development Editor (Win64), then Development (Win64), then Shipping (Android), because in binary engine version there is only and also its size is the smallest. When I trying to package my game, it starts to compile *.so’s again! I’m using development package. Do I need development android .so build?