apple / apple/plugins-for-godot

Deadlock while rebuilding dynamic font textures

Open
#5 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Objective-C++
Stars
93
Forks
6
PR merge metrics
No merged PRs in 30d

Description

Changing Label3D text can regenerate its font-atlas texture. The replacement texture may be temporarily unavailable until Godot renders another frame.

TextureLoader keeps the texture dirty for retry, but also reports loading as unfinished. This pauses the whole SceneTree, preventing the frame needed to make the texture available and leaving dynamic labels permanently stuck.

Fix: Keep retrying pending texture usages without treating them as a reason to pause the SceneTree.

Project to reproduce issue:
https://github.com/kelwyng/godotrealitybridge-tests

Press the **orange** right hand button, bridge freezes.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating TextureLoader and trace how dirty texture usages are reported to the SceneTree. Run the linked reproduction project and press the orange right-hand button to observe the freeze. Done means pending texture usages keep retrying without pausing the SceneTree, allowing the replacement texture to become available.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, godot, objective-c
Domain
game-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
58/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.