diff --git a/src/game/engine/scenes/tests/gameplay_arc_proof.gd b/src/game/engine/scenes/tests/gameplay_arc_proof.gd index 37cf2b8e..5530d6d4 100644 --- a/src/game/engine/scenes/tests/gameplay_arc_proof.gd +++ b/src/game/engine/scenes/tests/gameplay_arc_proof.gd @@ -228,9 +228,13 @@ func _capture_step(label: String, mode: String, focus: Vector2i = Vector2i.ZERO) _focus_camera(focus, 5.0 * 384.0) else: _setup_camera_fit() - # Multiple frames so the canvas items finish redraw + camera resolves. - for _i: int in range(8): + # Wait two real frames-rendered to flush the GPU composite. process_frame + # fires before draw; frame_post_draw fires AFTER GPU composite, which is + # what `get_viewport().get_texture()` actually reads. + for _i: int in range(3): await get_tree().process_frame + for _j: int in range(2): + await RenderingServer.frame_post_draw var image: Image = get_viewport().get_texture().get_image() if image == null: push_error("gameplay_arc: viewport image null at %s" % label)