I’ve been running around this problem for a day and finally found the root - but not the cause.
I have this shader that generates bands using a Sine function. However, on some Android platforms (OnePlus 7 Pro), the result is unexpected:
I found that the problem is in the result returned by the Sin function at values where it should be 0, returning -0 or +0 depending on platforms.
I would have supposed that enabling full precision float would fix the problem, but it doesn’t.
Is this difference between +0 and -0 to be expected depending on platforms? Or perhaps slightly different implementations of the Sin function at the GPU level?
*edited with embeded images instead of imgur


