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.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

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:
    2,858
    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:
    2,858
    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.