Quick answer: Godot shader #include not propagating changes? The editor caches shader compiles; touching the include alone may not trigger consumer recompiles.
Editing a shared shader include leaves the consumer shaders rendering with the old code until you save them too.
Manual Touch Consumer
Open the consumer shader, save without changes. Editor re-imports and re-compiles. Tedious but reliable.
Auto-Reload via Watch
Godot 4’s file watcher catches some include changes. If not, project settings → filesystem_auto_reload_on_changes can help.
Include Path Resolution
Use #include "res://shaders/common.gdshaderinc" with absolute paths. Relative paths sometimes resolve inconsistently across editor and runtime.
Avoid Deep Include Chains
Deep nested includes worsen the recompile-propagation problem. Flatten where reasonable; one common include is easier to track than three.
Verifying
Editing the include and reloading consumers produces the updated shader. No stale visuals.
“Includes cache. Touch consumers or rely on the watcher to recompile.”
For iteration speed, edit the consumer shader directly — once happy with the snippet, move it to the include. Last-step move avoids the recompile dance.