SystemInfo.supportsComputeShaders always false on Android

Hello,

I’m trying to get compute shaders to work on Android but SystemInfo.supportsComputeShaders always return false when my target platform is Android. When I select Windows as my target platform, it works well. To be more precise, I’m testing in unity editor with the Android selected at my current platform, not on an actual android device.

Here are the settings I’m currently using. I’ve also tried other settings based on information I’ve seen online.
I am currently using Unity 5.6.0 and the android API target is 5.0.

97071-computeshadersettings.png

Is there a setting I’m missing that could cause this ?
Thank you.

Well, do you actually test on an android device? You may want to check the ES 3.1 support of your device with an app like this. For example i have a Nexus 7 (2012) which only supports OpenGL ES 2.0. Your device need to support OpenGL ES 3.1 in order to support compute shaders.

The android API version is just a requirement but not a guarantee. If the hardware doesn’t support it there’s no way to make it work besides buying a more recent device that has support for ES 3.1

You can also try adding Vulkan as Graphics API.

I don’t have any android device that supports ES 3.1 so i can’t test it anywhere.

This issue is now fixed in 2017.3
It might have been fixed in earlier 2017 version too.

I had this problem in 2018.3. As @Okluckej mentioned in the comments. You need to turn off your Graphics Emulation under Edit > Graphics Emulation.

If you’re on a Mac, there’s an additional step. Turn on Metal Editor Support even if you are building for Android. It’s in Player > Other Settings > Metal Editor Support.