Search Unity

Feedback Ability to change Graphics API at runtime for Android devices with bad Vulkan performance

Discussion in 'Graphics Experimental Previews' started by Prodigga, Aug 25, 2019.

  1. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    782
    Hi there

    I found a bug report here that was marked as 'wont fix'

    https://issuetracker.unity3d.com/issues/vulkan-performance-is-worse-than-opengles3-and-opelgles2

    The issue is that some android devices run worse on Vulkan compared to OpenGL3. The issue isn't limited to just some obscure devices but lots of mainstream ones as well. As the bug report notes, the issue is present in but not limited to:

    -Samsung Galaxy Note 8 (SM-N950F), 7.1.1, CPU: Exynos 9 Octa 8895, GPU: Mali-G71;
    -Google Pixel 2, 8.1.0, CPU: Qualcomm Snapdragon 835, GPU: Adreno 540;
    -Huawei Nexus 6P (Nexus 6P), 8.0.0, CPU: Snapdragon 810 MSM8994, GPU: Adreno (TM) 430;
    -Samsung Galaxy S8 (SM-G950F), 8.0.0, CPU: Exynos 9 Octa 8895, GPU: Mali-G71;
    -Samsung Galaxy S9 (SM-G960U1), 8.0.0, CPU: Snapdragon 845 SDM845, GPU: Adreno (TM) 630.

    I have noticed the same thing on my OnePlus 6T - a modern phone less than a year old!

    The Unity developer notes that:
    Unfortunately, we have no way to control the graphics API at runtime. We need to configure the graphics API waterfall, and the selection is made automatically.

    On all of the devices listed above, the correct solution (if your game has the luxury of supporting all graphics API's like ours) is to skip Vulkan and just go straight to OpenGL3. But we have no control over this.

    And unfortunately we can't just place OpenGL3 above Vulkan - there are devices that work better on Vulkan. Those devices would be made to use OpenGL3 instead!

    Its a lose lose situation!

    I know it is anecdotal evidence but I've personally only seen Vulkan perform better on one device compared to OpenGL3, so for us it would be more about setting OpenGL3 to default, and Vulkan as an 'opt in'. But anyway - the point is it is not possible since we have no access to this at runtime.
     
    Kichang-Kim likes this.
  2. Prodigga

    Prodigga

    Joined:
    Apr 13, 2011
    Posts:
    782
  3. BattleAngelAlita

    BattleAngelAlita

    Joined:
    Nov 20, 2016
    Posts:
    62