#123910·godot

Forward+: LightmapGI pipeline errors when no lightmapped surfaces are visible

Author: chow-landCreated Sep 28, 2026Updated Sep 28, 2026
Labelsbugtopic:renderingconfirmedtopic:3d

Tested versions

  • Reproduced in official Godot 4.7.2.stable, ed1daf0bf, using Forward+.
  • Not reproduced with the Mobile renderer on the same engine and device.
  • Other versions have not been tested with this isolated reproduction.

System information

macOS Sequoia 15.6.1 (24G90), Apple M4 Pro, ARM64, Metal 3.2, Forward+.

Issue description

Starting a scene with baked LightmapGI produces renderer errors when the camera is inside the lightmap bounds but does not see any lightmapped surfaces.

The attached reproduction contains only native Godot nodes, ArrayMesh resources, and StandardMaterial3D materials. It has no scripts, plugins, GDExtensions, or custom shaders. Every mesh uses ordinary Cast Shadow: On.

The following errors occur:

ERROR: Pre-raster shader (vertex shader) is not provided for pipeline creation.
  at: render_pipeline_create (servers/rendering/rendering_device.cpp:4830)
ERROR: Condition "pipeline.is_null()" is true.
  at: _create_pipeline (servers/rendering/renderer_rd/forward_clustered/scene_shader_forward_clustered.cpp:506)

An additional error occurs during teardown in the failing standalone runs:

ERROR: Invalid Task ID
  at: wait_for_task_completion (core/object/worker_thread_pool.cpp:408)

Whether the teardown error has the same underlying cause has not been established.

Expected: The scene should render and shut down without errors, regardless of whether lightmapped surfaces are currently visible.

The failure reproduced across separate launches, including after a fresh project import. These controls did not produce the errors:

  • Changing only the camera transform so it faces the baked geometry.
  • Keeping the original camera but removing the LightmapGI Light Data assignment.
  • Running the failing scene with Mobile instead of Forward+, still using Metal.

Steps to reproduce

  1. Extract and import the attached project in Godot 4.7.2.
  2. Use the Forward+ renderer with the Metal rendering driver.
  3. Run the project (F5). Its main scene is failure.tscn.
  4. Wait a few seconds and inspect the Output panel for the pipeline errors. The empty-looking game view is intentional: the camera does not see the baked surfaces.
  5. Stop the run and inspect the output for the additional Invalid Task ID error.

For comparison, run these scenes individually (F6), starting a fresh runtime process each time:

  • control_visible.tscn: differs only in the camera transform, placing the baked geometry in view.
  • control_no_lightmap.tscn: retains the failing camera position but removes the LightmapGI Light Data assignment.

Neither control produced the reported errors in testing. Running the failing scene with Mobile instead of Forward+, still using Metal, also produced no corresponding errors.

No rebaking is required; the lightmap is included.

Minimal reproduction project

Includes the failing scene, two controls, baked resources, instructions, and logs. The .godot directory is excluded.

godot_lightmap_error_repro.zip