Why bother enabling Vulkan in Android?

Is there any reason to have “Auto Graphics API” selected on Android and support Vulkan? As far as I can see, it just adds testing risk due to a low-percentage user path that introduces errors on a tiny fraction of Android devices, all of which support ES3 anyway.

Assuming our app has to target ES3 (with fallbacks for ES2) is there anything awesome (theoretical better performance under Vulkan doesn’t count because the devices that support it are at the high end of our target specs anayway) we’re missing out on by turning off Auto Graphics API on Android and just explicitly targeting ES2+ES3?

The Vulcan is making your Android smartphone more efficient while rendering jaw-dropping graphics for enabling next generation visual advancements on existing hardware.

1 Like

Compute shaders, if you need them. rendertexture.memoryless mode for depth (if you need it). Some other stuff.

If you’re not making your game scalable, which means demanding more from the high end devices, then Vulkan doesn’t do a lot in your case. (and it does introduce some more variables for testing)

The only important thing, is that it might offer potentially better battery life on those high end devices that support it.

6 Likes

Excellent answer. Thanks.

Another potential benefit is that shaders are precompiled in an optimized format that needs little extra processing, so if everything did work out as it could/should you could improve startup time or whatever. I personally have not had much success with trying to get shaders to compile without blocking everything, including async scene loads on some devices.
But then we have not had much success with vulkan shaders either, on some devices there is a terrible delay at startup for no apparent reason with vuklan which seems to be shader related.

What is the minimum API level for android to enable Vulkan support? I have read that for gles3 it should be 18.

Bit of a necro here but now that we’re in 2021, how have things improved there? I still see that modest indie games on mobile would have no use to keep Vulkan in their builds.

Distribution dashboard  |  Platform  |  Android Developers
OpenGL ES certainly remains relevant, especially for modest products on phones. Vulkan looks overkill so it’s logical here to go for a fallback on GL3+ if no support for Vulkan is included.
For greater games, there is perhaps a chance that of the 42% of devices that do not exploit Vulkan, a percentage of them might also be crappy phones that are best sacrificed and forgotten no matter what.
58% of support for Vulkan represents a nice chunk of the market.
This being said, I’m yet to find technical data on the weight of the Vulkan graphics API and how much place it takes inside a build.

2 Likes

I just traced down a performance issue on android from new to old unity version, and found that vulkan is slower than opengles3 in my case on android. Vulkan is now default option where it was not before…hence the older unity setup running faster.

I didn’t want to say anything without doing new blank tests, but both my android phones seem to run my particular project faster if using openGLES3.

default render pipeline, pixelxl4 and moto g5.

3 Likes

Coming back on this in 2022 :slight_smile:
In my 3D mobile game with URP, it was running slow and device was heating up badly (samsung s8) with vulkan and openGLES3 selected. I removed vulkan and now it’s smooth as silk.

7 Likes

Coming from the distant future of June 2023 to also say that “Vulkan support for android still sucks”.

I spent a day trying to figure out where we lost a ton of performance, and it was a naive decision I did a while ago to re-add Vulkan to our APIs list because “surely they have it working pretty well by now”. I guess I’m less jaded with Unity than I think I am.

The super bummer though is that I remember back in the Unity 5 days, when they actually introduced it, Vulkan was faster than GLES 3.0. Since then it has consistently been slower every time I try it.

DON’T USE VULKAN.

PS: Optimised frame pacing also seems to introduce stuttering.

4 Likes

They probably bloated it with many New and Exciting Functions™️ since then.

If you find a regression which is reproducable, make a bug report so it can be looked into. Otherwise it will not be fixed.
For me vulkan is about the same performance, and it enables better compute shader support, like for VFX graph. And for VR there are more latency improvements with vulkan

1 Like

Don’t do that, it won’t be fixed either way.

It didn’t work with the last 324098320 bug reports, why would it work now?

1 Like

That’s an issue from 2019. Modern phone drivers have gotten better. There are issues being accepted now.

This is about it getting even worse in 2022 which means if that bug gets fixed they might bother to make it on par with 2021, which is where I found Vulkan performance to be disappointing and which means the best option is still to not use Vulkan regardless of that issue getting fixed.

Not using Vulkan™ requires zero bug reports and gives better results instantly. Doing a bug report on the other hand requires spending a few hours filing a bug report, then waiting 6 months to see that little, if anything, has changed in a Unity version you’re probably not using.

2 Likes

I reckon they addressed a few Vulkan issues by simply ditching support for certain devices. For instance, Vulkan used to run on the Samsung Galaxy S6, but they stopped backing it some time in 2022.

To be fair, it wasn’t like Vulkan was faster than OGL, rather Vulkan permits the use of the ScalableBufferManager API, a super useful tool for amping up your framerate.

The S6 boasts a 5.1 inch display with a native resolution of 1440x2560. Minimising the resolution to 720x1280 using the ScalableBufferManager API caused the game to render much faster, minus any eye-catching graphical glitches. Unfortunately, with Vulkan support gone, the game runs like a slideshow on OGL.

1 Like

Funny you mention the s6 because it was the device where we once experienced better performance with Vulkan with Unity (I believe it was) 5. Afterwards, in subsequent Unity versions, enabling Vulkan consistently made performance worse.

1 Like

– This patient is in great pain sir.
BAM!
– What patient?

Last I talked to a Unity dev, they told me to disable Graphics Jobs because it was causing lots of crashes on Vulkan. I did so, and indeed, that did fix the crashes. That was on 2020.3, so maybe things have been fixed since then…?

Vulkan has the potential to be a lot faster if things are done right at the low level. In practice I have seen some decent performance improvements from enabling it. But it needs to be stable to be usable.

1 Like