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
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).
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!
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.