Search Unity

Shader model 3.5 not working on some Android devices, though it should

Discussion in 'Shaders' started by mrbenn, Nov 23, 2018.

  1. mrbenn

    mrbenn

    Joined:
    May 1, 2015
    Posts:
    13
    I'm testing some shaders on a Samsung Galaxy A3/Adreno 306, but they not available when targeting shader model 3.5, despite the fact that SystemInfo.graphicsShaderLevel is 35. It happens even with just a basic shader and it falls back to the 3.0 subshader. In logcat the error is:

    Unsupported: 'Unlit/Test' - Pass '' has no vertex shader

    The documentation states that SystemInfo.graphicsShaderLevel is approximate, but it should be correct as it is an OpenGLES3.0 device. Any ideas on why there is this discrepancy?
     
  2. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,028
    Hi!
    We disabled instancing on Adreno 3xx due to some issues, so it's not compatible with SM 3.5.
     
  3. mrbenn

    mrbenn

    Joined:
    May 1, 2015
    Posts:
    13
    Is there any documentation regarding GPU specific changes like this?
     
  4. aleksandrk

    aleksandrk

    Unity Technologies

    Joined:
    Jul 3, 2017
    Posts:
    3,028
    I don't think so. The best approach would be to check not for the SystemInfo.graphicsShaderLevel, but for exact features you need from the GPU. Those are accurate.