Vertical tearing with Android N, not with Android 6. - Page 2 — Oculus
Welcome to the Oculus Developer Forums!

Your participation on the forum is subject to the Oculus Code of Conduct.

In general, please be respectful and kind. If you violate the Oculus Code of Conduct, your access to the developer forums may be revoked at the discretion of Oculus staff.

Vertical tearing with Android N, not with Android 6.

2»

Comments

  • Leemon89Leemon89 Posts: 29
    Brain Burst
    edited May 2017
    @Norman3D
    Thanks for detailed answers mate! I've managed to squeeze into 15 drawcalls and 20k tris with Default Lit materials but still couldn't get silky smooth 60fps (after update to Android 7). Only after you mentioned Unlit materials I've ran some tests with unlit and realized how high 110-120 shader instructions really are. Now I just want to cry.
    Also, would you be so kind and give me your Skype? I have couple more questions here and there and would be very happy to be able to talk to you whenever you could.
  • Norman3DNorman3D Posts: 63
    Hiro Protagonist
    Leemon89 said:
    @Norman3D
    Thanks for detailed answers mate! I've managed to squeeze into 15 drawcalls and 20k tris with Default Lit materials but still couldn't get silky smooth 60fps (after update to Android 7). Only after you mentioned Unlit materials I've ran some tests with unlit and realized how high 110-120 shader instructions really are. Now I just want to cry.
    Also, would you be so kind and give me your Skype? I have couple more questions here and there and would be very happy to be able to talk to you whenever you could.
    I pmed you!
  • aussieburgerVRaussieburgerVR Posts: 202 Oculus Start Member
    Thanks for sharing that info @Norman3D ; ! Pretty much all what I was guessing except for how the reflections where done:

    Reflections are cubemaps rendered in the editor. I'm using OpenGLES 3.0 since I can use cubemap mip maps and plug in a roughness texture to control the mip bias per pixel. The shader is totally unlit so I'm adding the cubemap there. I'm not relying on Unreal to do this automatically like materials usually work.

    which I don't really understand from text - I hope you can provide a little example in your blogpost for how that was done exactly?

    Two other side questions that just came to mind:

    • How do you differentiate between the devices? Last time I checked it wasn't really possible to tell if a user was using a S6, S7 or a S8 in UE4?
    • How did you capture your footage for the trailer?
    Thanks again for this valuable info!
  • Norman3DNorman3D Posts: 63
    Hiro Protagonist
    Thanks for sharing that info @Norman3D ; ! Pretty much all what I was guessing except for how the reflections where done:

    Reflections are cubemaps rendered in the editor. I'm using OpenGLES 3.0 since I can use cubemap mip maps and plug in a roughness texture to control the mip bias per pixel. The shader is totally unlit so I'm adding the cubemap there. I'm not relying on Unreal to do this automatically like materials usually work.

    which I don't really understand from text - I hope you can provide a little example in your blogpost for how that was done exactly?

    Two other side questions that just came to mind:

    • How do you differentiate between the devices? Last time I checked it wasn't really possible to tell if a user was using a S6, S7 or a S8 in UE4?
    • How did you capture your footage for the trailer?
    Thanks again for this valuable info!
    Cubemaps were captured with a scene capture component in the editor and turned into a static texture, which is then sampled in the material. My material then takes care of doing the parallax correction and all that.

    The footage was captured from the PC version of the game running the appropriate material quality settings.

    There are different material quality settings, there is a node for that in the material editor. You can use that to essentially turn on or off features depending on said material quality level. I can't speak for how exactly we differentiate between phone models except to say that our programmer does it through code using the phone model numbers.

    Haven't had time to write that blog post, since I'm still super busy. I'll write it as soon as I have time, but I'm not able to forsee when just yet.
  • firagabirdfiragabird Posts: 159
    Art3mis
    @Leemon89

    Nothing specific to share. These issues really depend on the application's design and use of resources. If you are encountering any issues with your application, try these steps below from one of our mobile engineers to diagnose this:

    "a) increasing MSAA to max (e.g. 8x if available), b) reducing eye buffer size, c) reducing the amount of geometry per frame. The problem with context switching on tile granularity is that expensive tiles can cause timewarp to not get scheduled in time. Qualcomm has big tiles, so it can easy to get "geometry camping" on a tile that makes it too expensive.
    The suggestions above are diagnostic - they won't fix the problem in a shipping sense, but they may help you better understand what's going wrong."
    @imperativity

    Should I take this to mean that Oculus a) is aware that Android 7/Nougat performance is slower than Android 6/Marshmallow; and b) will take no further action to resolve the performance regression besides passing the lost performance on to app developers? Because this would be highly disappointing if true.

    @Norman3D

    Has Oculus given you any further updates on this unresolved issue?
    S7 Exynos Nougat. 2017 Gear VR. Public test channel.
  • Norman3DNorman3D Posts: 63
    Hiro Protagonist
    @Norman3D

    Has Oculus given you any further updates on this unresolved issue?
    nope. It's my understanding that if this is indeed a driver issue there is nothing Oculus can do since it's 100% Samsung's responsibility. Oculus can't push driver updated to Samsung's Android OS afaik. I can't wait for Go, since Oculus can control the entire stack of the device and this way can ensure it's a stable and consistent platform for development.
  • firagabirdfiragabird Posts: 159
    Art3mis
    @Norman3D

    If it's a Samsung issue, Oculus should still be actively working with them (they are partners after all) to resolve the issue. Go will be great for a more console-like platform, but Gear VR will still be how the overwhelming majority of users access the platform for the foreseeable future.

    I wonder if the Oreo update will bring with it an updated GPU driver that fixes any perf regression introduced in Nougat for all affected devices (mostly S7, but hopefully also S6).

    S7 Exynos Nougat. 2017 Gear VR. Public test channel.
  • Norman3DNorman3D Posts: 63
    Hiro Protagonist
    @Norman3D

    If it's a Samsung issue, Oculus should still be actively working with them (they are partners after all) to resolve the issue. Go will be great for a more console-like platform, but Gear VR will still be how the overwhelming majority of users access the platform for the foreseeable future.

    I wonder if the Oreo update will bring with it an updated GPU driver that fixes any perf regression introduced in Nougat for all affected devices (mostly S7, but hopefully also S6).

    I'm sure Oculus is trying their best with Samsung, Carmack has said many times that they have gone to Samsung to request changes. Unfortunately this does not seem to be a quick process and sometimes takes months and even years.
    That being said, I do not know if Oculus has looked further into this particular issue.
  • firagabirdfiragabird Posts: 159
    Art3mis
    @imperativity

    As an end user, would there be value in rolling my OS back to Marshmallow to regain that extra performance/thermal headroom? Does Oculus have any info whether Samsung's Oreo graphics drivers will fix the regression introduced in Nougat?
    S7 Exynos Nougat. 2017 Gear VR. Public test channel.
Sign In or Register to comment.