Quick answer: Godot 4 multi-pass shader producing different render-target compatibility on Compatibility vs Forward+ renderers? Each backend has different MRT support - declare explicitly.
Stylized post-process; works on Forward+; on Compatibility, second pass fails to bind.
Declare per-renderer
#ifdef RENDER_FORWARD_PLUS
layout(location = 1) out vec4 b;
#endifBackend-aware declaration. Compatibility skips the second target.
Or use Forward+ only
If your effect needs MRT, restrict to Forward+. Document compatibility limitation.
Test on both backends
Renderer switch in Project Settings. Each shader tested both ways.
“Backends differ. Multi-render-target support is one of the differences.”
If you ship cross-renderer, the per-backend shader audit is mandatory. Document; reuse.