View Issue Details

IDProjectCategoryView StatusLast Update
0010293ardourbugspublic2026-05-02 16:35
Reporterbsj Assigned To 
PriorityhighSeveritymajorReproducibilityalways
Status newResolutionopen 
PlatformApple MacintoshOSMacOSOS Version10.12 or later
Product Version9.2 
Summary0010293: Enhancement Request: Improved UI Thread Efficiency and Meter Redrawing on macOS (Apple Silicon)
DescriptionOn modern Apple Silicon hardware (specifically the M4), Ardour 9.x experiences significant GUI sluggishness as the track count increases, even when CPU and GPU usage are low.
While a session with 1-4 tracks feels "musical" and snappy, the meter response becomes visually "heavy" and disconnected once the track count reaches 10-16 tracks and beyond. This occurs in a completely empty session with no third-party plugins. Currently, the only workaround to regain smooth metering is to hide or disable tracks etc.

I wish Ardour was Metal or Vulkan accelerated!!!!!
Steps To Reproducevery simple, keep adding tracks and the meters will evenly get worse and worse less snappy with no plugins just an empty session no matter buffer size.
Additional InformationTechnical Observations:
Hardware: Apple M4 (Base model), macOS [Insert your version, e.g., Sonoma].
Behavior: The issue appears to be GUI Thread Contention. Hiding tracks immediately restores fluidity, suggesting that the redraw requests for multiple active meters are flooding the main UI thread.
Ineffectiveness of Current Settings: Toggling "Use intermediate image-surface," "Retina scaling," and various "macOS Drawing Models" does not fully resolve the scaling issue.
Redraw Overhead: It appears macOS may be forcing expensive full-window or large-area redraws for every meter update, causing the UI to fall behind the audio engine's "musical" timing.
TagsGUI, lag, slowdowns, sluggish

Activities

paul

2026-05-02 16:35

administrator   ~0030314

There is no GUI thread contention, because the GUI is 100% single threaded.

The issues with macOS redrawing are deep and subtle. macOS itself indeed forces full-window redraws for every meter update (a change Apple made 6-8 years ago, without announcing it), which is why we (and many other apps) had to add our own system of keeping track of what areas need updating.

However, recently I've observed that even when our code does the right thing, macOS' lower layers do not appear to always flush just-drawn areas to the screen if they are small. I am still (slowly) investigating what could cause this and how to fix it.

Issue History

Date Modified Username Field Change
2026-04-22 03:47 bsj New Issue
2026-04-22 03:47 bsj Tag Attached: GUI
2026-04-22 03:47 bsj Tag Attached: lag
2026-04-22 03:47 bsj Tag Attached: slowdowns
2026-04-22 03:47 bsj Tag Attached: sluggish
2026-05-02 16:35 paul Note Added: 0030314