Unreal engine 4.6 run on shield tablet with openGl Es3.1 fps range 19 to 30

Unreal engine 4.6 run on shield tablet with openGl Es3.1 fps range 19 to 30 its heavy
some time

How long does it stay running? I can run it on a Nexus 10 and it works fine. But 5 minutes later it always crashes.

it works more than 10 minutes but its not stable (fps low and i have crashes white cut when i rotate the camera ) , and My shield tablet battery ends quickly, i wish epic can optimised it.

If you guys manage to get a log, please open a ticket in AnswerHub to see where it’s crashing!

Dude, it’s running with screen space reflections, HDR and SSAO on a tablet. Getting 19fps is a huge achievement.

What ES3 adds to ES2 in UE4? Quickly searching for “ES3” on github doesn’t reveals extra features.

I read that to enable ES3.1 you need the following section in your project’s “DefaultEngine.ini”:


[/Script/AndroidRuntimeSettings.AndroidRuntimeSettings]
bBuildForES2=false
bBuildForES31=true

Is it sufficient at “project level” or do I need a whole custom engine build too?

Ok…support for ES3.1 requires some more work :wink:

Actually The FPS was pretty bad when we first ran our ES3.1 build on shield as well. but what you need to do is to change some values on DefaultDeviceProfiles.ini for shield.

create a new section [Android_TegraK1 DeviceProfile] and then under that section: Reduce shadow quality, change Mobile Scale Factor, Disable reflection environment (if you have that) , and reduce Bloom Quality, and …

It will change your quality, but will help fps quite a bit.

Thanks for the tips - and impressive the result you achieved!

I successfully enabled ES3.1 support (from the 4.6.1 codebase) and deployed to the Shield Tablet, but the whole scene is rendered in a tiny area of few pixels in the lower left corner of the device. Anyone experienced this problem?

Yes, I experienced the same problem. You can minimize and then maximize the app and it will be rendered correctly.

The problem appears to be a race condition on startup, where a dummy surface gets created for querying capabilities. Seems like that surface gets stuck as the active one.

Moving some init code inside a branch in AndroidPrivate.h resolves the issue, but it may cause issue elsewhere… Epic needs to fix this eventually.

It worked! Thanks a lot.