Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.

Bug VFX on URP with OpenGLES3 doesn't render properly on Android

Discussion in 'Visual Effect Graph' started by masta-yoda, Mar 3, 2021.

  1. masta-yoda

    masta-yoda

    Joined:
    Apr 19, 2020
    Posts:
    80
    I have built an Oculus Quest game and use Vulkan graphics API to run VFX. It works fine on Quest 2, but Quest 1 shows lower FPS than OpenGLES3 Graphics API (profiler shows that clear that I'm GPU bound) and doesn't allow me to profile my GPU. The profiler shows that I'm GPU bound but Vulkan is not supported by GPU profiler. I also found another thread with a similar issue related to the preview version of VFX. Now the VFX is out of preview, it should work fine on mobile but I'm still experiencing the same artifacts when all the particles are "streamed to the sky". I'm attaching a sample project source code and two android (Oculus Quest) builds, one built with Vulkan (works fine) and another built with OpenGLES3 (has artifacts). Everything was build just now using the latest Unity Editor 2020.2.6f1 and VFX package 10.3.2.

    Is there a solution to solve this issue?

    OpenGLES3


    OpenGLES3 build:
    https://www.dropbox.com/s/o0nc0wgs4dpjkz6/build1-OpenGLES3.apk?dl=0

    Vulkan


    Vulkan build:
    https://www.dropbox.com/s/tx6ulznlms45uds/build2-Vulkan.apk?dl=0

    upload_2021-3-3_13-10-2.png
     

    Attached Files:

  2. masta-yoda

    masta-yoda

    Joined:
    Apr 19, 2020
    Posts:
    80
    Per support suggestion, I switched to 2020.3 (which was just released), which didn't help, the issue is still there. I decided to try the latest 2021.2.0a8 build (alpha) just to see if something to address this issue is coming in one of the upcoming releases. Unfortunately, the issue is still there. Any advice here?
     
  3. Vita-

    Vita-

    Unity Technologies

    Joined:
    Jul 2, 2019
    Posts:
    102
    Hello,

    VFX is production ready when used with HDRP, URP and mobile support is still in development (about VFX Graph being in preview for URP can be found in Package Manager). To avoid craziness, platform has to support Compute Shaders and Shader Storage Buffer Object (SSBO) in a vertex stage, that being said Open GLES does no satisfy these requirements. Detailed information about mobile support, graphics APIs and pipelines can be found in our documentation.

    Cheers
     
  4. omg_peter

    omg_peter

    Joined:
    Dec 7, 2020
    Posts:
    7
    Hmm, it's news to me that VFX graph is in preview with URP. Up until version 10.0 it looks like the documentation didn't mention that and it wasn't clear from the package manager.
    upload_2021-3-17_14-42-1.png

    became

    upload_2021-3-17_14-42-31.png
    It sounds like we should avoid using VFX Graph unless we're using HDRP?
     
  5. masta-yoda

    masta-yoda

    Joined:
    Apr 19, 2020
    Posts:
    80
  6. VladVNeykov

    VladVNeykov

    Unity Technologies

    Joined:
    Sep 16, 2016
    Posts:
    549
    Hi @omg_peter , the change you noticed was us adding a clearer explanation based on the feedback we received, as it was not as clear beforehand (in your first screenshot, it mentioned that HDRP started being verified from 2019.3 onwards, but it was not explicitly mentioning that URP is not). Nothing functionality-wise was changed, this was just an attempt to clear up the messsage.

    There's nothing particular to avoid VFX for URP, it is as stable as HDRP and tested continuously. The preview bit is to mark that not all features are yet implemented (like lit URP particles), and mobile support (as URP targets significantly more devices than HDRP). If the current feature set works in your case, then URP can certainly be used. If your project is dependent on mobile support or needs lit particles, it might not be mature enough for your needs.

    Hope this helps!
     
    masta-yoda likes this.