Quick answer: Godot 4 3D post-process shader showing flipped scene? Compatibility renderer uses bottom-up UVs; Forward+ uses top-down - branch on the renderer at compile time.
Pixelation post effect works in Forward+. Switched to Compatibility for mobile, image is upside-down.
Branch on renderer
vec2 uv = SCREEN_UV;
#ifdef RENDER_GLES
uv.y = 1.0 - uv.y;
#endifPreprocessor branch ensures the right UV orientation per renderer.
Or use VIEWPORT_TEXTURE
Viewport-based capture has consistent orientation across renderers. Heavier setup; simpler shader.
Test on both renderers
Project Settings > Rendering > Renderer. Switch and verify post-process orientation in both.
“UV orientation is a backend choice. Cross-renderer shaders carry the conditional.”
If your project ships on mobile, write all shaders against the renderer with the flipped UV first. Adapting downward is easier than upward.