Quick answer: Unity Shader Graph's built-in noise nodes producing different patterns on iOS (Metal) vs Android (Vulkan)? Implementation differs per backend - use a texture-based noise.

Water shader; noise gives a moving pattern. iOS shows one pattern; Android shows another at the same time.

Bake noise to texture

Author a noise texture; sample in shader. Identical across platforms.

Or use a deterministic algorithm

Custom HLSL implementation; one math path; same output everywhere.

Verify per platform

Side-by-side: iOS Metal vs Android Vulkan vs PC. Same noise input; same output expected.

“Built-in shader functions are platform-implemented. Implementations differ.”

For cross-platform consistency, texture-based noise is the universal answer. Procedural noise is platform-quirky.

Related reading