Migration notes: godot-shaders-basics
Incremental upgrade for topics this skill covers. Apply one hop, stabilize/test, then next. Never skip hops.
If the project is < 4.0, follow godot-version-migration era bridges (legacy → 3→4) until 4.0, then these hops. Official 3→4: Upgrading from Godot 3 to Godot 4.
3.x → 4.0
Official: Upgrading from Godot 3 to Godot 4
- Rename
.shader→.gdshader; update references. hint_albedo/hint_color→source_color; filter/repeat on uniforms.- Particles shaders:
start()/process()instead ofvertex(). - Custom
light()and matrix builtins changed — visual QA required.
4.0 → 4.1
Official: Upgrading to Godot 4.1
RenderingServer.global_shader_parameter_get_list/ RD shader version lists returnArray[StringName].RenderingDevice.draw_list_beginstorage_textures typed asArray[RID].
4.1 → 4.2
Official: Upgrading to Godot 4.2
- Mesh format upgrade — re-test shader variants on upgraded mesh surfaces.
- RenderingDevice BarrierMask enum values changed.
4.2 → 4.3
Official: Upgrading to Godot 4.3
- Reverse Z depth — custom spatial shaders comparing depth or using
POSITION.zmay break; migrate depth sampling. - Decal modulate converted sRGB→linear — shader/decal color inputs shift.
- RenderingDevice barrier/draw_list API simplified (post_barrier params removed).
4.3 → 4.4
Official: Upgrading to Godot 4.4
RenderingDevice.draw_list_beginsignature overhauled (params removed + breadcrumb).Shaderdefault texture parameter types useTexture/TextureLayered.- VisualShader cubemap / Texture2DArray nodes use
TextureLayered. VisualShaderNodeVec4Constantinput type → Vector4 — recreate constant nodes.
4.4 → 4.5
Official: Upgrading to Godot 4.5
RenderingServer.instance_reset_physics_interpolation/instance_set_interpolatedremoved.
4.5 → 4.6
Official: Upgrading to Godot 4.6
- Glow default blend Screen (brighter) — shader output may look hotter against default bloom.
- Sky reflection roughness_layers default 7 (was 8).
4.6 → 4.7
Official: Upgrading to Godot 4.7
LinearToSRGBvisual shader no longer clamps[0,1]on Mobile/Forward+.Texture2D.get_format()unified on base class — branch format-specific shader paths on the base API.Image.save_exr*gain color_image / max_linear_value optionals.