Has anyone else noticed and investigated the issues with JUCE UI on macOS Tahoe?
We (and others) have an issue in Pro Tools which I tracked as far as the repaint() requests being stacked up for far too long before actual paint() calls were being made.
So the UI looks really laggy and stutters and it depends on what else the DAW is displaying at the time. MULTIPLE_PAINT_CALLS made no difference. Bypassing all my heavy UI drawing logic made no difference at all.
I’m now seeing something similar in Nuendo but have not done a deep dive yet to look for the bottleneck. Bizarrely on Nuendo it’s only an issue in > 7channel instances. It’s also an issue with the built-in VSTMultiPanner, but I’m not sure if that’s written with JUCE as well. And in Nuendo the entire DAW UI stalls ~every second.
More info when I get time to deep-dive, but this feels like a JUCE vs Tahoe thing and will be an issue for everyone I guess.
Modal Dialogs:
If you still have these you should definitely get rid of them, they lag immensely, if you have a Modal Dialog with Text Input for instance the input is very laggy.
Drag & Drop:
When Drag&Drop is performed with drag allowed to external windows the Drag & Drop operation causes intermittent UI stalls. And not only the normal graphics rendering but OpenGL rendering as well. We hack-fixed this limiting the amount of updated to the window being dragged,
We still use JUCE 7 though, JUCE 8 does seem to perform better with this.
I’ve been trying to reproduce this issue but so far I’ve been unsuccessful. including with a plugin that I’m aware exhibits this issue sent to me via email.
My setup
Pro Tools Developer/Ultimate 2025.12.0
macOS 26.0.1/26.2
Xcode 26.1.0/26.2.0
Apple M2 Max (MBP)
If there is anything else you find or can share I’m happy to take a look (although I’ll be out at NAMM most of next week).
FWIW, I’ve seen some UI performance issues with Pro Tools that happen only in the release version, but not in the developer version. That was before Tahoe, but maybe the hint that both versions seem to behave very differently may be valuable. Might not be related at all though.
Actually that specific issue looked like most time is spent inside CoreGraphics or something, not in the JUCE drawing, not in any ProTools graphics code (you can trace that with Instruments). Avid has traces and was able to reproduce, but I haven’t heard back about it for a while. Performance got worse the larger the repainted area got (in my case typically only becomes noticeable when resizing to a larger size, it’s still measurably slow at 100% zoom though).
I’d love to know if someone has a JUCE plugin which does NOT have this issue in Pro Tools on Tahoe. Preferably a surround plugin, but any plugin should reveal this issue from what I’ve seen.
To test if you’re suffering from it:
Make a large session with ~500 tracks.
Sprinkle audio all over it so the PT meters are working most of the time.
Go into continuous scroll and hit play
Reveal your plugin and start adjusting knobs and watching UI components.
If your plugin behaves normally and updates meters/knobs/sliders smoothly, I’d love to know how you organise your repaint() calls.
Are you experiencing this issue with the JUCE plugin demos? If so, perhaps you could create this session that shows the problem and upload it somewhere?