[Gear VR] Unable to reach 60 fps on empty scene

I tried almost empty scene, I tried complex scene, I disabled all post processing and used 100% rough materials, no dynamic lights at all, no normal maps, render scale is below 1 (although with 1 it’s still all the same) - I can not get 60 fps on my Gear VR and Galaxy S6. 17ms seems to be ridiculous render time.

Here are the screenshots:

http://s8.postimg.org/iijorsi5w/Screenshot_2016_03_15_21_08_28.jpg
http://s27.postimg.org/vumj65crm/Screenshot_2016_03_15_21_24_59.jpg

Note that I also tried a simple scene without sky at all - still 58 fps.

Hello ,

I ran a few tests on my end. I did not see the loss in frame rate on my in a blank project. I consistently hovered between 59 to 60 FPS. I also tested the project that was provided by you in another thread, in this project I was able to see a slight drop in frame rates but only in the level containing your castle like mesh. When you test the frame rate, do you package out the project or are you launching on to the device straight from the editor?

I always package the project as build for shipping (sometimes as development build, but there is no performance difference between those) and install .apk on the device (by copying .apk from PC to the device, and then tapping it to install via Android Package Manager). Then I run it after it gets installed.

Also worth noting that Oculus require 60 fps min, and they impose soft limits on scene complexity with 100k tris and 60 draw calls in the view. So I assume that should run at 60 fps on the device, and my scene is well below those soft limits.

Hello ,

After looking over your project again. I would suggest that you break up your mesh into multiple meshes. The Frame rate issue may be due to the fact that all of the 45k tris are being rendered at all times instead of being culled out when they are off screen. The reason they are not being culled out is due to the fact that it is one large mesh and so it is never really fully off screen. I hope that this information helps. Could you try this and get back to me?

Make it a great day

Oculus’ recommended soft limit is 100k visible textures triangles. I am not even close to that soft limit. So if you look at it as 45k textured triangles in the view, it should provide 60 fps.

Note that I have 58 fps in virtually empty scene (geometry from FPS template). So whether it’s 100 tris or 45k tris, I get the same fps. So I am positive that it has nothing to do with my mesh not being culled.

I’ll try splitting my mesh (also would help to determine whether there is some limit on vertex count for GLES2 re: torn mesh issue) and test it again, but I am pretty sure rendering engine needs to be optimized particularly for Gear VR. It just doesn’t seem like it’s the case at this time.

Looking at this write up makes me wonder if it’s rather UE4 not being optimized for Gear VR yet rather than anything else: Creating Escape Velocity for Samsung Gear VR: A Postmortem - Unreal Engine

Thank you for the additional information, please be sure to update the thread with the result of the modified mesh. If the issue is still occurring, I will be happy to assist you further. I will be marking this questions as resolved for now. However, if this turns out not to be the case, as I said feel free to reopen this thread with a reply and any additional information you may have.

4.11p8 project with mesh split into 20 pcs. Resized texture to 2048^2 (from 4096^2) and reduced lightmap size to 1024 (from 2048).

Alright, I can confirm that while artifacts are gone (torn mesh), fps has not improved a single bit. I am still getting 58 fps.

I disconnected BP that was snapping screenshots and re-uploaded (updated link above).

A new update:

Added precomputed visibility and fake fog - no change in the performance for me at all.

I PM’ed this very same project to Oculus, so in case you guys communicating about this issue, you should be on the same page as far as having test subject.

As far as I know, Gear VR is actually a mobile phone, so 58 fps(equal to 60 fps on PC) is the top framerate when Vsync is on (ON by default on Android phone). I wonder if your FPS ever went lower than 58 fps frequently.

Gear VR is not a phone :slight_smile: It’s a VR device where put in the most powerful smartphone (S6 and alike or S7) and experience best mobile VR you can possibly have to the date.

58 fps is 58 fps, it’s not equal 60 fps on PC. There is no reason for fps to be 58 on an empty scene. Needless to say that Oculus requires 60 fps min for Gear VR, and again, there is no reason for UE4 not to run Quake-complexity scene at 60 fps (even Doom 3 level of complexity, minus real-time lighting/shadows should run at 60 fps with UE4).

I added fake fog and animated skeletal actors into my scene (6 total, 3 in the view, each is ~1,200 tris) - fps is still 58. So empty scene is 58 fps, complex scene is 58 fps. Something is definitely off in the engine.

The most powerful smartphone? So it’s still a mobile phone. I’d never played a game that can reach 60 fps on my mobile phone, the top fps is always 58.

I’m just curious whether you’d ever got a lower fps than 58 or not.

That’s too bad. All Unity based VR games run at 60 fps. Let’s not derail this thread with your personal experiences and conclusions, and let Epic devs research the issue and fix it.

Ok, I think I see where the issue potentially is - render scale.

I had render scale slider at less than 100% all this time, hoping for performance boost. Yesterday I set it to 100%, and in some instances I got 61 fps in my scene.

Any chance this is being looked into ? Thanks.

Hello ,

After running a few tests with your project on multiple devices I unable to get the consistent 58 FPS that you are reporting. The frame rate appears to fluctuate depending on how much is currently going on in the scene (as expected). However, from your post a few days ago it sounds like you have resolved/ found a workaround for your issue. Do you still require assistance with this issue?

No, unfortunately I didn’t not resolve it. Even if I delete sky and some of the meshes (except the one I stand on), I can never reach 60 fps. That time when I saw 60 fps on the screenshot was a fluke - I can’t get it anymore. And I didn’t even change a thing! :frowning:

What fps values and render time values did you get during your tests ?

What’s puzzling is what are 17 ms spent on in an “empty” scene? There are several people who are unable to achieve 60 fps in an empty scene and they also wonder why 17 ms spent on whatever UE4 is doing, where is nothing obvious to do (nothing to render besides a box, no game logic, etc.)

I’ll do some more tests over the weekend and will provide another test build.