Quick answer: Godot 4 shader works on PC but pixelated on mobile? Compatibility renderer uses lowp by default - explicitly use highp for color calculations.

Smooth gradient shader. Desktop: continuous gradient. Android: banded.

Use highp explicitly

precision highp float;

Top of shader. Forces high precision for the whole file.

Or per-variable

highp on color variables; lowp on factors. Mixed precision; minimum cost where it matters.

Test on actual hardware

The compatibility renderer behaves differently per device. Test on lowest-tier supported device.

“Precision is a per-platform decision. Defaults differ.”

If your shaders look fine on desktop and broken on mobile, precision is the first suspect.

Related reading