Skip to content

Resource (re)importing speed is affected by editor framerate, leading to slow import speeds when the window is unfocused #93877

Closed
@Calinou

Description

@Calinou

Tested versions

  • Reproducible in: 4.3.beta 92c8e87

System information

Godot v4.3.beta (92c8e87) - Fedora Linux 40 (KDE Plasma) - X11 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 4090 (nvidia; 550.90.07) - 13th Gen Intel(R) Core(TM) i9-13900K (32 Threads)

Issue description

Resource (re)importing speed is affected by editor framerate, leading to slow import speeds when the window is unfocused. This is particularly the case when importing lots of small resources that import fast individually (as opposed to few large, complex resources). I noticed this while testing #93727.

This is a frequent problem in various games and apps, to the point where many games disable V-Sync and any built-in FPS limiters during loading screens to speed them up. We can likely do something similar here.

Project exporting may be affected by similar issues as well, but I haven't tested.

Time includes editor startup + shutdown time. Tests done on a 120 Hz display.

Mode Time taken
Unfocused (10 FPS1) 12m05s
Default (120 FPS) 1m09s
Update Continuously (120 FPS) 1m09s
No V-Sync (145 FPS) 1m08s
No V-Sync, Update Continuously2 23s

Command used for testing

Steps to reproduce

  • Open the MRP and measure the time taken to import all resources (e.g. using the command line or with a stopwatch).
  • Set V-Sync Mode to Disabled and enable Update Continuously in the Editor Settings.
  • Exit the editor and remove .godot/ in the project folder.
  • Reopen the editor on the project and measure the time taken again.
    • Your mileage may vary if your OS/graphics driver forces V-Sync on all applications.

Minimal reproduction project (MRP)

test_base_mesh.zip

Footnotes

  1. Controlled by the Unfocused Low Processor Mode Sleep Usec editor setting. This limit is only effective if Update Continuously is unchecked.

  2. In this scenario, I average 400 FPS during the import process and 1,700 FPS at idle once importing is done (with no scene open in the editor).

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions