godotengine / godotengine/godot
Editor hangs after changing font parameters
- Dominant language
- C++
- Stars
- 117k
- Forks
- 26.8k
- PR merge metrics
- PR metrics pending
Description
### Tested versions
Reproducible in: 4.6 RC 1, 4.7.dev1, v4.6.dev5.official [f5918a9d3], v4.6.dev4.official [bd2ca13c6]
Not reproducible in: v4.4.1.stable.official [49a5bc7b6], v4.5.1.stable.official [f62fdbde1], v4.6.dev3.official [9d84f3d13]
Seems to have started in v4.6.dev4.official [bd2ca13c6]
### System information
Godot v4.7.dev1 - Windows 11 (build 26200) - Multi-window, 2 monitors - Direct3D 12 (Forward+) - dedicated NVIDIA GeForce RTX 3060 Ti (NVIDIA; 32.0.15.9144) - 12th Gen Intel(R) Core(TM) i5-12600K (16 threads) - 31.74 GiB memory
### Issue description
I have a test scene with 2000 labels. I'm using a default theme called main_theme. The default font is a FontVariation. When I make changes to my font's parameters (extra spacing, baseline offset, etc) I can see the changes in real-time when I drag to adjust the parameters, but once I release my mouse button or stay still too long, Godot hangs for a while. It's seems to be affected by how much I change the parameters. If I adjust the parameters too much, it can make the editor hang for almost a minute. Also, after this, switching scenes continue to take about as long as the last hang. However, if I save and reopen the project, it goes back to normal. In all the versions before 4.6.dev4 I've tested, I'm able to immediately continue editing, panning the camera around, itc, but from 4.6.dev4 onwards it hangs. CPU and GPU usage never goes above 5%.
While testing, I've noticed the problem compounds. The more I mess with the FontVariation, the longer and longer it'll freeze. It's up to well over a minute now.
The font I'm using is Silver which supports lots of languages. I thought that might be contributing to the problem, but I've tested it with smaller fonts and it still happens.
### Steps to reproduce
1. Open the project
2. Double click the main_theme to open it in the inspector
3. Mouse drag on one of the parameters (i.e. Extra spacing: Bottom)
4. The changes update immediately
5. Release your mouse (pausing too long while dragging can trigger it too)
6. Godot will hang
7. Switch between scene_1 and scene_2
8. Godot will hang
9. Reload the project
10. Switch between scene_1 and scene_2
11. Godot will act normal
### Minimal reproduction project (MRP)
[MRP.zip](https://github.com/user-attachments/files/25318706/MRP.zip)
Contributor guide
Research direction
Start with the linked MRP, open main_theme in the inspector, and reproduce the hang by changing a FontVariation parameter with the listed Godot versions. Compare behavior around the reported 4.6.dev4 regression, including switching between scene_1 and scene_2. Done means changing font parameters no longer causes prolonged editor or scene-switching hangs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- godot
- Domain
- game-dev, performance, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 42/100