Hello everyone!
I’ve found out a weird issue with Mobile HDR in GearVR project. Turning it on makes ‘Slate Present time’ go unreasonably high and unstable in almost empty scene. I’ve read explanations about ‘Present time’ might go up if the scene is too heavy to render, so Slate is basically waiting for the next frame. However almost empty test scene suffers from same issue.
Here are the steps:
- Unreal 4.14 downloaded by Launcher
- Blank BP project, mobile, Scalable 3D, no starter content
- Basic project setup to run it in GearVR
- Test level containing simple static mesh floor, Static Sky light and Stationary Direct light. (1 drawcall and 30 tris in total)
- Project running on Samsung Galaxy S6 (Android 6.0.1)
Below are Profiler stats of test run.
Thread graph:
Stat info:
As you can see RenderThread is sonstantly jumping between 16.6 and 33.3 ms. Now I’ve spotted enabling Mobile HDR adds around 2.5ms into Draw time as a ‘FinishRenderViewTarget’. Which still takes just 4.9ms Draw time. I believe ‘stat startfile’ adds something like 2ms while writing statfile for some reason, I’ve just noticed it when executing ‘stat startfile’ command with ‘stat unit’ active. But without any ‘stat’ commands unstable fps is very noticeable by juddering of objects while passing by them in game.
To put it into a contest I’ve made test run with Mobile HDR turned off. Same project, same scene, just turned HDR off and rebuilt the project.
Thread graph:
Stat info:
RenderThread is smooth as silk at constant 16.6 ms. Draw time is expected 1.7ms, and Slate ‘Present time’ is that high just waiting due to 60 fps limit. In fact, on my test scene I’ve managed to get silky smooth 16.6ms with 100 drawcalls and 60k tris in frame.
I’ve came across couple of posts on Oculus forum from Unity developers and they experiencing what looks like a similar fps-jiggling issue with build-in Vsync, however by their words it have something to do with Android 6.0.1, coz as they say same project on similar Galaxy S6 BUT with Android 5 runs perfect constant 60 fps.
So the question is this - what’s up with recent version of Mobile HDR and may this issue be dependent on Android version? Sadly, I don’t have Android 5 phone so I can’t test this case.
Thanks and really waiting for Staff to reply. Cheers!