Testing Mac GUI performance with Hive 2.1 beta
-
tasmaniandevil tasmaniandevil https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=62450
- KVRAF
- 2170 posts since 22 Mar, 2005 from a planet called u-he
Hi everyone,
as you might know, some of our users are experiencing problems with sluggish or lagging GUIs for some time now.
In the past, one workaround that often helped was to set the display's colour profile to sRGB IEC61966-2.1.
However, in the most recent macOS Big Sur, this might not help anymore.
We spent the last two months trying to come up with a solution for this, and identified some settings which can drastically improve the GUI rendering.
As this problem heavily depends on a multitude of known and unknown factors, we need you to test these options, so we can find out which settings are working best on all kinds of system configurations.
Factors playing a role include the operating system, the DAW, the plugin format (often it's the AU version causing problems), the graphics card, used display and resolution. Even the cable used to connect the display to your Mac might influence the behaviour.
Most often it happens when using Retina or other high resolution displays, and some hosts often mentioned are Ableton Live and Logic.
If you have been affected by this issue, please give it a try and let us know which settings work best for you.
You can test this with the current Hive 2.1 public beta, which you will find over here:
viewtopic.php?f=31&t=559585
Here is how you can test:
Ideally, set the colour profile of your display to the one that comes with your display.
You can set the profile in your Mac's preferences, just choose "Displays", and then go to the "Colours" tab to select the appropriate profile.
The options are not available directly in the plugin, but rather in its preferences file.
This file is called com.u-he.Hive.Preferences.txt.
You can edit this file with any simple text editor.
If you don't know where to find it, just open a new Finder window, and from the Go menu choose "Go to Folder".
Paste in the following line (all of it, including the tilde character), and click Go.
This will automatically open the right location in the user library.
~/Library/Application Support/u-he
Every time before you change one of the options in the preferences text file, you need to unload the Hive plugin from the host project.
Then change the setting, save the file, and load a new instance of the plugin. Otherwise the setting might not change.
There are three different settings, and we need to test how they all interact.
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa Draw Async: '
It's just two options for this one:
* YES
* NO
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa View Update Strategy: '
Here you can set the following options:
* AUTO
* SMART
* TIMER
* FORCED
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa View Cache Bitmaps: '
This one has four options as well:
* SMALL
* LARGE
* ALL
* NONE
If you want to, you can even set the frame rate to your liking.
But remember that higher frame rates come at the cost of higher CPU consumption.
V_PROPERTY name='Preference' id='0' value='AllViews:Editor Frame Rate:30'
We found that, for Hive, it generally seems best to set the Draw Async option to YES.
That's where you can start, if you experience problems with the default setting.
Please note that, if you are using the AAX version in Pro Tools, setting Draw Async to YES will result in a small problem with the gamma settings of the plugin GUI. We will try to correct this for the final release of the update.
If this improves the GUI behaviour, you can keep it set to YES, and continue by testing different combinations of the Update Strategy and Cache Bitmaps settings.
Things to look out for:
* How smooth do the GUI controls react to your actions
* Is the preset browser reacting instantly to preset changes, or with a delay
* How smooth does the scope run
* Is your host UI still running fine, or slowing down while the plugin GUI is visible
* How does the CPU load differ between the different options
* How does it run if multiple instances of Hive are loaded, and all are displaying their GUI at the same time
* Is there a difference in the GUI performance when using different GUI sizes for the plugin
With some combinations of settings, the performance stays stable in all GUI sizes, other combinations cause a slowdown with larger sizes, or draw more CPU. Some settings deliver a smoother scope animation, but at the cost of increased CPU demand.
If you test this, please let us know which settings work best for you, and also provide some information about your setup:
* What kind of Mac are you using
* Which macOS version
* Which graphics card
* What kind of display (incl. resolution and frame rate)
* Which DAW (Logic, Live, Cubase, ...), and which version of it
* Which plugin format did you test it with (AU, VST2, VST3, AAX)
Thanks a lot for helping us out on this, we really appreciate your help.
Cheers,
Tas
as you might know, some of our users are experiencing problems with sluggish or lagging GUIs for some time now.
In the past, one workaround that often helped was to set the display's colour profile to sRGB IEC61966-2.1.
However, in the most recent macOS Big Sur, this might not help anymore.
We spent the last two months trying to come up with a solution for this, and identified some settings which can drastically improve the GUI rendering.
As this problem heavily depends on a multitude of known and unknown factors, we need you to test these options, so we can find out which settings are working best on all kinds of system configurations.
Factors playing a role include the operating system, the DAW, the plugin format (often it's the AU version causing problems), the graphics card, used display and resolution. Even the cable used to connect the display to your Mac might influence the behaviour.
Most often it happens when using Retina or other high resolution displays, and some hosts often mentioned are Ableton Live and Logic.
If you have been affected by this issue, please give it a try and let us know which settings work best for you.
You can test this with the current Hive 2.1 public beta, which you will find over here:
viewtopic.php?f=31&t=559585
Here is how you can test:
Ideally, set the colour profile of your display to the one that comes with your display.
You can set the profile in your Mac's preferences, just choose "Displays", and then go to the "Colours" tab to select the appropriate profile.
The options are not available directly in the plugin, but rather in its preferences file.
This file is called com.u-he.Hive.Preferences.txt.
You can edit this file with any simple text editor.
If you don't know where to find it, just open a new Finder window, and from the Go menu choose "Go to Folder".
Paste in the following line (all of it, including the tilde character), and click Go.
This will automatically open the right location in the user library.
~/Library/Application Support/u-he
Every time before you change one of the options in the preferences text file, you need to unload the Hive plugin from the host project.
Then change the setting, save the file, and load a new instance of the plugin. Otherwise the setting might not change.
There are three different settings, and we need to test how they all interact.
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa Draw Async: '
It's just two options for this one:
* YES
* NO
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa View Update Strategy: '
Here you can set the following options:
* AUTO
* SMART
* TIMER
* FORCED
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa View Cache Bitmaps: '
This one has four options as well:
* SMALL
* LARGE
* ALL
* NONE
If you want to, you can even set the frame rate to your liking.
But remember that higher frame rates come at the cost of higher CPU consumption.
V_PROPERTY name='Preference' id='0' value='AllViews:Editor Frame Rate:30'
We found that, for Hive, it generally seems best to set the Draw Async option to YES.
That's where you can start, if you experience problems with the default setting.
Please note that, if you are using the AAX version in Pro Tools, setting Draw Async to YES will result in a small problem with the gamma settings of the plugin GUI. We will try to correct this for the final release of the update.
If this improves the GUI behaviour, you can keep it set to YES, and continue by testing different combinations of the Update Strategy and Cache Bitmaps settings.
Things to look out for:
* How smooth do the GUI controls react to your actions
* Is the preset browser reacting instantly to preset changes, or with a delay
* How smooth does the scope run
* Is your host UI still running fine, or slowing down while the plugin GUI is visible
* How does the CPU load differ between the different options
* How does it run if multiple instances of Hive are loaded, and all are displaying their GUI at the same time
* Is there a difference in the GUI performance when using different GUI sizes for the plugin
With some combinations of settings, the performance stays stable in all GUI sizes, other combinations cause a slowdown with larger sizes, or draw more CPU. Some settings deliver a smoother scope animation, but at the cost of increased CPU demand.
If you test this, please let us know which settings work best for you, and also provide some information about your setup:
* What kind of Mac are you using
* Which macOS version
* Which graphics card
* What kind of display (incl. resolution and frame rate)
* Which DAW (Logic, Live, Cubase, ...), and which version of it
* Which plugin format did you test it with (AU, VST2, VST3, AAX)
Thanks a lot for helping us out on this, we really appreciate your help.
Cheers,
Tas
Last edited by tasmaniandevil on Mon Jan 25, 2021 10:46 am, edited 1 time in total.
That QA guy from planet u-he.
- KVRAF
- 2034 posts since 30 Mar, 2008 from MN, USA
Here are my results.
Mac: Macbook Pro 16" 2019, 64G RAM, Radeon Pro 5500M
Tested on both internal display and external 4K running at 2560x1440 HiDPI
Tested in Bitwig and Hosting AU. Tested AU, VST, VST3.
On all plugin types, setting Async to YES had an immediate effect, making the UI usable on the Izmo skin, and entirely smoothing out the Original skin.
After that, the difference were subtle.
On the AU and VST3, setting the Cache to NONE was discernibly smoother than any other setting, but not by a large amount. On the VST2, the Cache size did not seem to matter.
On all plugin types, setting the Update Strategy to AUTO, SMART or TIMER were about the same. Setting to FORCED sometimes exhibited slightly more lag.
In no setting combination was I able to get Izmo to be as smooth as Original. However, as I said, the difference between the two is small enough that I probably wouldn't notice the slight lag in Izmo if I were not looking for it.
I settled on Async: YES, Cache: NONE, and Update: SMART.
Control response is approximately the same at all scales.
EDIT: As for the Scope and Arp:
The Original skin is as good as one can expect. However, the Update Strategy becomes especially noticeable here on the Izmo skin. On TIMER and FORCED, the scope and arp lag is very noticeable, and annoying. The larger the scale, the more noticeable the lag becomes. On SMART it mostly goes away.
Mac: Macbook Pro 16" 2019, 64G RAM, Radeon Pro 5500M
Tested on both internal display and external 4K running at 2560x1440 HiDPI
Tested in Bitwig and Hosting AU. Tested AU, VST, VST3.
On all plugin types, setting Async to YES had an immediate effect, making the UI usable on the Izmo skin, and entirely smoothing out the Original skin.
After that, the difference were subtle.
On the AU and VST3, setting the Cache to NONE was discernibly smoother than any other setting, but not by a large amount. On the VST2, the Cache size did not seem to matter.
On all plugin types, setting the Update Strategy to AUTO, SMART or TIMER were about the same. Setting to FORCED sometimes exhibited slightly more lag.
In no setting combination was I able to get Izmo to be as smooth as Original. However, as I said, the difference between the two is small enough that I probably wouldn't notice the slight lag in Izmo if I were not looking for it.
I settled on Async: YES, Cache: NONE, and Update: SMART.
Control response is approximately the same at all scales.
EDIT: As for the Scope and Arp:
The Original skin is as good as one can expect. However, the Update Strategy becomes especially noticeable here on the Izmo skin. On TIMER and FORCED, the scope and arp lag is very noticeable, and annoying. The larger the scale, the more noticeable the lag becomes. On SMART it mostly goes away.
Last edited by teilo on Thu Jan 21, 2021 5:04 pm, edited 1 time in total.
CLAP Software Database: https://clapdb.tech. KVR Discussion Topic.
-
tasmaniandevil tasmaniandevil https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=62450
- KVRAF
- Topic Starter
- 2170 posts since 22 Mar, 2005 from a planet called u-he
Thanks a lot for doing the tests.
The Izmo skin is quite a bit more complex than the regular skin, and as such also a bit more demanding on the CPU.
We'll have to see if there are ways to improve this.
The Izmo skin is quite a bit more complex than the regular skin, and as such also a bit more demanding on the CPU.
We'll have to see if there are ways to improve this.
That QA guy from planet u-he.
- KVRAF
- 2034 posts since 30 Mar, 2008 from MN, USA
I would imagine that on a lower powered Mac, the differences in settings would be much easier to perceive.tasmaniandevil wrote: Thu Jan 21, 2021 5:02 pm Thanks a lot for doing the tests.
The Izmo skin is quite a bit more complex than the regular skin, and as such also a bit more demanding on the CPU.
We'll have to see if there are ways to improve this.
CLAP Software Database: https://clapdb.tech. KVR Discussion Topic.
-
- KVRist
- 76 posts since 7 Dec, 2020
I've been testing for an hour and my brain doesn't work anymore. I just went to the optometrist today, and I really needed the "1 ... or 2?" ease of switching, haha.
I'm on an M1 Mac Mini, Ableton Live, VST3, 1080p scaled to a 4k monitor.
My results were similar to teilo, in that I couldn't get the Izmo skin up to the same performance as the original skin. I could get it to a decent performance, but knob motion in particular always looked smoother on Original, while other differences were less noticeable. I did notice, though, that Izmo was coming in a couple of points lower on the CPU meter, consistently (as opposed to what you're saying, tas, about it being more demanding!).
ASync = YES, clear winner. Cache: LARGE and NONE both seemed good. Update: SMART and TIMER seemed better than AUTO.
I'm happy to repeat any experiments if you need me to doublecheck anything, etc.
I'm on an M1 Mac Mini, Ableton Live, VST3, 1080p scaled to a 4k monitor.
My results were similar to teilo, in that I couldn't get the Izmo skin up to the same performance as the original skin. I could get it to a decent performance, but knob motion in particular always looked smoother on Original, while other differences were less noticeable. I did notice, though, that Izmo was coming in a couple of points lower on the CPU meter, consistently (as opposed to what you're saying, tas, about it being more demanding!).
ASync = YES, clear winner. Cache: LARGE and NONE both seemed good. Update: SMART and TIMER seemed better than AUTO.
I'm happy to repeat any experiments if you need me to doublecheck anything, etc.
-
tasmaniandevil tasmaniandevil https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=62450
- KVRAF
- Topic Starter
- 2170 posts since 22 Mar, 2005 from a planet called u-he
-
- KVRAF
- 6780 posts since 17 Dec, 2009
AllViews:Cocoa Draw Async:YES feels like it makes the most difference here, other settings don't affect anything nearly as much. (M1 16gb)
I left it on 60FPS.
I have to check with CPU usage tho, gotta make a big project that will have enough load to gauge it properly
I left it on 60FPS.
I have to check with CPU usage tho, gotta make a big project that will have enough load to gauge it properly
Last edited by Ploki on Fri Jan 22, 2021 4:42 pm, edited 1 time in total.
-
compressedform compressedform https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=56731
- KVRist
- 355 posts since 2 Feb, 2005
MacBook Pro 16" 2019
MacOS 11.1
AMD Radeon Pro 5300M
Intel UHD Graphics 630
Bitwig 3.3.1
VST3
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa Draw Async: YES'
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa View Update Strategy: FORCED'
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa View Cache Bitmaps: NONE'
MacOS 11.1
AMD Radeon Pro 5300M
Intel UHD Graphics 630
Bitwig 3.3.1
VST3
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa Draw Async: YES'
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa View Update Strategy: FORCED'
V_PROPERTY name='Preference' id='0' value='AllViews:Cocoa View Cache Bitmaps: NONE'
-
- KVRAF
- 2623 posts since 20 Oct, 2014
I am doing a lot of tests now, but there is one first observation:
The scope view still seems to produce CPU spikes, so as soon as this view is opened, I get audio crackles. This seems to be happening pretty indepedentily of the drawing settings, even in ASYNC off / 30 frames. Only the spikes are more obvious in bitmap caching all. System is macos 10.13.6, mbp 2013 pro 15, core i7 intel iris, Renoise 3.3.
But I will post a detailed table with results later.
EDIT: OMG, I had accidentily switched to some other color profile in system settings. After switching back to standard srgb, all crackles are gone! Like a new computer. Will take the profile into account in my settings. Well, lot of variables already
The scope view still seems to produce CPU spikes, so as soon as this view is opened, I get audio crackles. This seems to be happening pretty indepedentily of the drawing settings, even in ASYNC off / 30 frames. Only the spikes are more obvious in bitmap caching all. System is macos 10.13.6, mbp 2013 pro 15, core i7 intel iris, Renoise 3.3.
But I will post a detailed table with results later.
EDIT: OMG, I had accidentily switched to some other color profile in system settings. After switching back to standard srgb, all crackles are gone! Like a new computer. Will take the profile into account in my settings. Well, lot of variables already
- u-he
- 30177 posts since 8 Aug, 2002 from Berlin
Colour profiles are a key component. One thing that can't be configured in Hive that we have changed for everyone is that we check which colour profile is active and convert all bitmap resources to that colour profile.
However, macOS is slower on some colour profiles than others. The "sRGB IEC6...-1" is usually the fastest as it has a reduced bit depth without any fancy gamma this or that, whereas profiles like "Display P3" come at quite a cost.
I would recommend using the colour profile that applies to your screen though rather than any of the generic ones.
However, macOS is slower on some colour profiles than others. The "sRGB IEC6...-1" is usually the fastest as it has a reduced bit depth without any fancy gamma this or that, whereas profiles like "Display P3" come at quite a cost.
I would recommend using the colour profile that applies to your screen though rather than any of the generic ones.
- u-he
- 30177 posts since 8 Aug, 2002 from Berlin
(also, the technically opposite test case than Hive's scope are Zebra's enlarged editors... on our machines, with our preferred settings, these run as smooth as you've never seen before - but these settings are often different from the ones best for Hive)
-
- KVRAF
- 2623 posts since 20 Oct, 2014
Here are some results, which settings work the best. Will edit this post later again to add more data.
I tested in Renoise and Bitwig. On a sidenote, Renoise always seem to make the framerate of any plugin a bit worse. So no plugin ever reaches a full, constant 60Hz refresh rate. I suspect the carbon parts still existing in Renoise or so. Bitwig on the other hand has no problems to display any plugin as the plugin vendor intended it, with a constant 60Hz.
Macbook Pro 15, late 2013, i7 4x, Intel iris 5200, macos 10.13.6
This computer only has that i7 onboard "gpu". I got quite a lot audio crackles while using the wrong color profile in the OS settings and having the Hive GUI opened. This changed after I corrected the color profile to that sRGB IEC profile (on 10.13.6 I think any 30bit color profile graphics is rendered thru CPU), no more crackles with any plugin settings.
The best settings for this machine/os version seems to be 60Hz, Async ON, update strategy AUTO, cache bitmaps SMALL. The cpu usage even seem to drop in comparison to async off and 30Hz.
The cache bitmap ALL option though seem to heavily raise cpu usage (telling from the loudness of the fan).
Hackintosh i7 4x, AMD RX 580 8GB, 10.13.6
The best settings for this machine/os version seems to be 60Hz, Async ON, update strategy AUTO, cache bitmaps ALL. I don't see any difference to cache bitmaps SMALL. Though maybe the gui controls have a bigger lag to the actual mouse movement with SMALL, and this gets better with ALL. Maybe just my imagination. The controls turn a bit to stuttering after I switch to update strategy SMART.
I tested in Renoise and Bitwig. On a sidenote, Renoise always seem to make the framerate of any plugin a bit worse. So no plugin ever reaches a full, constant 60Hz refresh rate. I suspect the carbon parts still existing in Renoise or so. Bitwig on the other hand has no problems to display any plugin as the plugin vendor intended it, with a constant 60Hz.
Macbook Pro 15, late 2013, i7 4x, Intel iris 5200, macos 10.13.6
This computer only has that i7 onboard "gpu". I got quite a lot audio crackles while using the wrong color profile in the OS settings and having the Hive GUI opened. This changed after I corrected the color profile to that sRGB IEC profile (on 10.13.6 I think any 30bit color profile graphics is rendered thru CPU), no more crackles with any plugin settings.
The best settings for this machine/os version seems to be 60Hz, Async ON, update strategy AUTO, cache bitmaps SMALL. The cpu usage even seem to drop in comparison to async off and 30Hz.
The cache bitmap ALL option though seem to heavily raise cpu usage (telling from the loudness of the fan).
Hackintosh i7 4x, AMD RX 580 8GB, 10.13.6
The best settings for this machine/os version seems to be 60Hz, Async ON, update strategy AUTO, cache bitmaps ALL. I don't see any difference to cache bitmaps SMALL. Though maybe the gui controls have a bigger lag to the actual mouse movement with SMALL, and this gets better with ALL. Maybe just my imagination. The controls turn a bit to stuttering after I switch to update strategy SMART.
Last edited by Hanz Meyzer on Sun Jan 24, 2021 6:56 pm, edited 1 time in total.

