Morph targets on Samsung S9 (Exynos 9810) is broken

On Samsung S9: instead blinking eyes - exploding head (incorrect vertexes animation by morph targets) BOTH NATIVE & WEB
iPhone 6s, Samsung A12, Poco F2 Pro, Lenovo P12 Pro (Chrome), Pixel 4A, Samsung S10 (Exynos 9820): all ok

cc @sebavan but that might as well be a browser limitation :confused: do the morph targets example in the documentation run normally? Morph Targets | Babylon.js Documentation (babylonjs.com)

PC, Samsung A12 (Chrome), IPhone 6s (Safari) - all ok, Samsung S9 (Samsung Internet, Chrome) - bug

When you say “bug”, you mean the examples also don’t run correctly? Then it really seems this is an issue with the device itself, possibly its graphics chip.

BOTH NATIVE & WEB bug only on Samsung S9 (Exynos 9810)

In examples no morphs+animation from gltb

Looks like a processor issue then :confused: Maybe someone else on the forum owns the device and can chip in with their experience?

1 Like

In Unity 2020 with Samsung Exynos sometimes has same bug, solution was be disable “GPU skinning”. May be now same solution? How switch morph targets to other controls (like webgl1, may be)?

Can you try it out with EnableTextureStorage false? Morph targets demo | Babylon.js Playground (babylonjs.com)

image
…and spam hundreds of exceptions

It hit the browser attribute limit :frowning: Morph Targets | Babylon.js Documentation

  • Please be aware that most of the browsers are limited to 16 attributes per mesh. Adding a single morph target to a mesh add up to 4 new attributes (position + normal + tangents + uvs). This could quickly go beyond the max attributes limitation.

There is no way bypass Exynos bug, IMHO. Sad.

In BabylonNative before XR start (after 1 sec loading model) morph sometimes is normal than (in XR) is again broken
In web mode same, but delay is shorter. I think, after some scene.render() is broke (first 1-3 frames scene.deltaTime is NaN)

I do animate morphs after loading model and first frame was normal morph

Unfortunately it seems to be a limitations from the browser on this one :frowning: you could try to reduce the number of bones influencers to 4 to limit the amount of attribs in use

IPhone 6s and Samsung S10/A12 have more unlimited browser versus Samsung S9?

You can see their respective capabilities here: WebGL Report

OES_texture_float_linear
WEBKIT_WEBGL_compressed_texture_pvrtc
WEBGL_compressed_texture_pvrtc
EXT_color_buffer_half_float
KHR_parallel_shader_compile

Available on IPhone and not on Sams S9

This part as well should provide a hint
image

IPhone 6s vs Sams S9 differents
Max vertex uniform vectors: 256 vs 1024
Max varying vectors: 31 vs 15
Max vertex uniform components: 1024 vs 4096
Max vertex output components: 124 vs 64
Max varying components: 124 vs 60

PS: sorry, message limit