Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

URP does not work with Vulkan on Oculus Quest?

Discussion in 'Universal Render Pipeline' started by Claytonious, Jan 29, 2020.

  1. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    900
  2. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    I did a test last week and it resulted in a grey left eye and black right eye in URP 7.1.7 & 7.1.8

    There is this blurb on Upload VR which seems to suggest that there is a check that can be bypassed in the Oculus Integration package. https://uploadvr.com/unity-oculus-quest-vulkan/
     
  3. equalsequals

    equalsequals

    Joined:
    Sep 27, 2010
    Posts:
    154
    Update: As of 2019.3.0f6, Vulkan on Quest is still not working correctly with either the Built-in Renderer or URP 7.1.8.

    The result (if Post-Processing is disabled) is a correct left eye, but the right eye has an incorrect projection.

    As per @daves post here, I did these tests with the new XR Management system and not the Legacy VR Settings.
     
  4. mfuad

    mfuad

    Unity Technologies

    Joined:
    Jun 12, 2018
    Posts:
    334
    Just to provide more clarity on current status of Vulkan/FFR on Oculus Quest:
    It is currently an experimental release, in which we intend to gather feedback from the community on its performance in real world situations. This feature is only available through the plugin framework using the Oculus XR Plugin and not available through the deprecated built-in XR pathway. The feature is also only supported for a limited set of configurations. Currently, the feature only works with the built-in rendering pipeline (using multipass with post processing disabled) but will soon work with URP when URP 7.2.0 is released.
     
    newguy123 and BATTLEKOT like this.
  5. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    900
    Thanks for the info @mfuad; it's so nice to hear concrete news and we appreciate it.

    Could I please ask you for a single point of clarification on this statement? You say that it only works "with the built-in rendering pipeline (using multipass with post processing disabled)" and will soon work with URP 7.2.0. When it is working with URP 7.2.0, will that *also* be limited only to multipass? Or will the URP 7.2.0 path support multiview?

    Thanks again!
     
  6. mfuad

    mfuad

    Unity Technologies

    Joined:
    Jun 12, 2018
    Posts:
    334
    Hi @Claytonious, yes it will support multiview. Multiview should also work with the built-in rendering pipeline, but we noticed in certain cases that it would fall back to multipass rendering. It's a known issue that we're investigating.
     
    Claytonious likes this.
  7. Claytonious

    Claytonious

    Joined:
    Feb 16, 2009
    Posts:
    900
    Thanks!
     
  8. Dragnipurake97

    Dragnipurake97

    Joined:
    Sep 28, 2019
    Posts:
    40
    If you are using a custom pipeline with the SRP API, does updating the URP to 7.2.0 change the backend so multiview for Vulkan will work, even if you are not using the URP?
     
    eatbuckshot likes this.
  9. eatbuckshot

    eatbuckshot

    Joined:
    Jan 10, 2016
    Posts:
    24
    It seems even with Universal RP package updated to 7.2.1 on Unity 2019.3.2f1, the Quest seems to still have problems rendering using Vulkan, and multiview. It is much better than 7.1.8 which just only rendered gray screens with random black artifacts. Currently, only the left eye seems to render correctly while the right eye has some odd rotation and offset/field of view/distortion when looking around.

    This is tested on the Universal template in the construction scene. This was tested with these packages:
    Oculus XR plugin 1.1.5
    XR Management 3.0.6
    XR Legacy Input Helpers 1.3.11
     
    ImpossibleRobert and Claytonious like this.
  10. demonixis

    demonixis

    Joined:
    Aug 20, 2013
    Posts:
    185
  11. eatbuckshot

    eatbuckshot

    Joined:
    Jan 10, 2016
    Posts:
    24
    Unity 2019.3.2f1
    Universal RP 7.2.1
    Oculus XR plugin 1.1.5
    XR Management 3.0.6
    XR Legacy Input Helpers 1.3.11
    New project, Universal Template

    High graphics quality profile

    Project Settings > XR Plugin Management > Oculus > (Android icon) tab > Stereo Rendering Mode: Multipass or multiview
    Player / Player Settings > Other Settings > Rendering > Graphics APIs > Vulkan or OpenGLES3
    Vulkan + Multipass = Renders correctly both eyes
    Vulkan + Multiview = Left eye only renders correctly, right eye seems offset/fov is distorted when looking around
    OpenglES3 + Multiview = Renders correctly both eyes
    OpenglES3 + Multipass= Renders correctly both eyes
     
    Last edited: Feb 22, 2020
  12. welliAR

    welliAR

    Joined:
    Jun 25, 2018
    Posts:
    31
    Hey Folks. I'm currently try to get out the most juice of the Quest. What i did:
    Using latest Oculus Integration 13.0
    Using latest XR Management 3.0.6
    Using latest URP 7.2.1

    Settings:
    URP-Renderpipeline Config
    - No MSAA
    - HDR On
    - Softshadows Off
    - Dynamic Batchin On
    - URP-Postprocessing used with Volume on Camers => I need Bloom ;) I love it lol
    - everything else is on default

    Oculus (XR Settings)
    - Rendering: MultiPass Stereo
    - Device: Quest

    Oculus (OVR Manager)
    - Use Recommended MSAA Off
    - Fixed Foveated Rendering Maximum (via Code)


    Project Settings
    - Graphics API only 1 => Vulkan!


    It runs not so bad at all. But i think i can get more out of it by switching to MultiView Rendering in Oculus-Settings. But here it comes. When i activate that, my whole Screen get doubled. So i have a double view.

    Any ideas?

    Cheers
    Roli
     
    eatbuckshot likes this.
  13. Dragnipurake97

    Dragnipurake97

    Joined:
    Sep 28, 2019
    Posts:
    40
    HDR and post-processing is very expensive on Quest so could drop them. I have found some form of MSAA to make the game looks a lot better for a pretty cheap cost since it's done on chip IIRC. Could stick with OpenGL for now with multi-view since Vulkan only really improves CPU performance and having multi-pass will double your batches.
     
  14. vpinto

    vpinto

    Joined:
    Apr 6, 2013
    Posts:
    21
    I have not managed to get bloom to work on Quest for the life of me. Looks like my setup is exactly the same as yours. It shows up in engine, but not on device. Any thoughts?
     
  15. welliAR

    welliAR

    Joined:
    Jun 25, 2018
    Posts:
    31
    Thx for quick reply! I don't want to give up postprocessing. I've a lasershooter and i really want to have bloom in HDR lasers. So when i understand you right, i cannot use Multi-View with vulkan right now? During experimenting my framerate has doubled after going to URP. Before any little posteffect drops the fps to under half. Seems that Posteffect-Stack of URP is very good. No chance for MultiView you think?
     
  16. welliAR

    welliAR

    Joined:
    Jun 25, 2018
    Posts:
    31
    Do you have the Volume also on VR-Rig Camera? So ist the Camera the same as you use when Play without quest? Do you set Quest as Device in Oculus XR Settings? Did you only have one Graphics API => Vulkan? This has also a nice effect on Build-Time, cause any Graphics-API listed there doubles the shadervariants ;)
     
  17. vpinto

    vpinto

    Joined:
    Apr 6, 2013
    Posts:
    21
    I do not have the volume on the VR-rig camera. But there is only one camera in the scene, so I assumed it would use the same camera to play when I press play. Also, I am currently testing this in the new Escaperoom Project made by unity, and they have a separate object for the volume, set to global.

    Even after attempting to put the volume on the XR camera, still nothing.

    Otherwise, I have set oculusXR plugin as the provider in XR plugin management, there is no option specifically for Quest there. I also have only 1 Graphics api, Vulkan ( and yes thank the lord for reduced shader variants).

    I did notice, that the play camera is not the same as the scene camera, where the bloom shows in the scene, it does not show in the game window, or when playing. curious.
     
  18. AxonGenesis

    AxonGenesis

    Joined:
    Jun 24, 2016
    Posts:
    84
    I have also been trying to get Vulkan to work with Oculus Quest, Unity 2019.4.4f1 using URP and Unity's new XR System (not Oculus VR). It builds and runs but the eye renderings are messed up and unviewable. It seems the left eye is skewed far to one side. It doesn't matter which stereo rendering mode is selected.

    Switching to OpenGLES3 works, sort of. With Multiview mode, it is not rendering my Shader Graph skybox (just shows up black). But if I switch to Multi Pass it renders fine.
     
  19. izym

    izym

    Unity Technologies

    Joined:
    Jul 27, 2013
    Posts:
    48
    That doesn't sound right. Can you send a bug report for this? :)
     
  20. AxonGenesis

    AxonGenesis

    Joined:
    Jun 24, 2016
    Posts:
    84
    I'm not sure what is wrong in my project, however I was able to test it with another project created by Dilmer that uses Vulkan and works fine. It uses the OVR Camera Rig setup from the Oculus SDK, rather than Unity's XR Rig. Unity XR is also enabled with the Oculus XR plugin. Not sure if there are any conflicts here, but it's working well. These are some nice examples he's put together with hand tracking if anyone wants to check it out.
    https://github.com/dilmerv/OculusQuestHandTrackingPhysicsURP
     
  21. AxonGenesis

    AxonGenesis

    Joined:
    Jun 24, 2016
    Posts:
    84
    After further testing I determined that when using Vulkan and Multiview stereo rendering mode, enabling Post Processing on the Main Camera causes the eyes to render with an extreme offset on Oculus Quest. This occurs with either the XR Rig or OVR Camera Rig. Seems to be a conflict with Multiview and Post Processing. Switching to Multi Pass or disabling Post Processing solves the problem. I've submitted a bug report with a project (1264663).
     
    Aestial and izym like this.
  22. izym

    izym

    Unity Technologies

    Joined:
    Jul 27, 2013
    Posts:
    48
    Glad to hear that you found the cause :) Many thanks for the bug report!