Search Unity

Bug GPU Skinning is not disabled on platforms without support.

Discussion in 'Windows' started by Koksny, Aug 8, 2020.

  1. Koksny

    Koksny

    Joined:
    Nov 15, 2017
    Posts:
    15
    From what i understand, GPU Skinning should automatically fallback to CPU skinning if it's not supported. This however does not happens for DirectX 10.

    To reproduce, please use GPU skinning in a build that has -force-feature-level-10-0 flag. It'll crash with "Platform does not support compute shaders **".

    Unity 2019.4.3f1, Unity 2019.4.7f1
     
    Last edited: Aug 8, 2020
  2. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    Can you report it as a bug?
     
  3. Koksny

    Koksny

    Joined:
    Nov 15, 2017
    Posts:
    15
    I did, and person answering it missed a bit the point, case 1269149

    I'm quite certain this is not intended behaviour. By the API documentation, on platforms without compute shaders, it should fallback automatically to normal CPU skinning.

    In fact, i can not work around this issue. If I understand correctly, what you suggest is simply not using blend shapes on platforms without DirectX 11, while it was working fine a couple Unity versions ago fine. It's not expected, it's a bug. Let me repeat - right now, I can't use morphers/blend shapes on any platform below DirectX 11, because I have no way of changing GPU Skinning settings at runtime. And the code above is not helpful, because i have to use blend shapes.

    "You can work around this issue by checking the graphics API feature level and inform the player if he should use a higher graphics API feature level." - No, i can't, if a player has no access to higher API feature level, they can't use higher level API features. I can only force CPU skinning by disabling GPU skinning before making build, and handicapping framerate for all other players.

    What would help is adding bool variable to SetBlendShapeWeight(), so we can control it with "SetBlendShapeWeight(Index, Value, IsGPUSkinningEnabled = true).
     
    Last edited: Aug 11, 2020
  4. Tautvydas-Zilys

    Tautvydas-Zilys

    Unity Technologies

    Joined:
    Jul 25, 2013
    Posts:
    10,675
    It's a bug on our side, it definitely flew over the person's who was responding to you head. I'll make sure that it gets reactivated. Thanks for bringing this up!
     
  5. Koksny

    Koksny

    Joined:
    Nov 15, 2017
    Posts:
    15
    Thank You very much!
     
  6. Emiliana_vt

    Emiliana_vt

    Joined:
    Apr 7, 2018
    Posts:
    13
    I'm on Unity 2019.4.2f1 and some users (so far all of them were using "Intel(R) HD Graphics 3000" integrated graphics on Windows) are also encountering issues due to this with meshes becoming invisible when blendshapes are activated due to unsupported compute shaders.

    Edit: If anybody finds this post, it looks like this issue will be fixed in Unity 2019.4.12f1: https://issuetracker.unity3d.com/is...s-directx-has-feature-level-10-dot-1-or-lower

    Edit 2: I had one person having this issue test a fresh build..Looks like it actually is fixed.
     
    Last edited: Oct 8, 2020