"Big sur" here we are again...

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

EvilDragon wrote: Wed Sep 09, 2020 10:37 am Also note if you call any dialogs from the DAW process that's not allowed any longer either. Kontakt and Battery have problems with this now.
What do you mean? Plugins can no longer show popups??
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

Not when loading DAW chunk and before plugin UI is open (for example, samples missing dialogs), is my understanding.

Post

Aaaah, well, that may be interesting. Especially for plugins with iLoks :D .
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

Ha, great point. Let's see. :D

Post

EvilDragon wrote: Wed Sep 09, 2020 11:05 am Not when loading DAW chunk and before plugin UI is open (for example, samples missing dialogs), is my understanding.
Is this something AU / Logic specific? I don't see how the OS could affect that in general.

Post

Yeah it's AU specific.

Post

Urs wrote: Wed Sep 09, 2020 9:46 am Yes, until recently we supported pre-10.9 installations. With the Catalina changes we dropped support for those, but we simply forgot to remove the dependency on the Component Manager. Bummer.
As far as I can tell, you can still support pre-10.9 component manager APIs, as long as both the new entry points and the plist are here.

Post

MeldaProduction wrote: Tue Sep 08, 2020 4:18 pm
RugerioDelStereo wrote: Tue Sep 08, 2020 4:02 pmI think the whole process is a PITA for developers, I can understand indie/small-time outfits not jumping on this until demand for ARM-compatible plugins reaches a critical point :-)
That's very accurate. But that's classic Apple...
Anyways I wonder about the ARMs. I still cannot imagine they would be anywhere close to intel/amd stuff performance wise (and I mean real performance, not some hacked benchmarks made by Apple). Apple probably doesn't care, since most of their users just browse web, but for us it is quite relevant.
In Geekbench 5, the A12Z (latest iPads) performance is similar to the 10th-gen Intel CPU in both single core and multi-core. + Passive cooling and long battery life. Apple chip will be better for sure. I made some crude tests I would say newer ARMs outperform Intel especially in SIMD computation (ARM Neon).

Lets try.. Zeeon synth audio unit for iPad. 4x oversampling, 8 voices polyphony, nonlinear filters (5 nonlinearities, Newton Rhapson). You can run quite a lot of them, on your iPhone :) and we are talking about a new chip.
giq

Post

I suppose we'll see eventually ;) . I'll keep myself some healthy skepticism for now :D
Vojtech
MeldaProduction MSoundFactory MDrummer MCompleteBundle The best plugins in the world :D

Post

I don't understand how that benchmark (gb5) can give this result, we have different results for the moment even using only vdsp/accelerate (for example very slow fft). I don't want to come to conclusions now, it's too early to do that and this is not the final chip to understand how things are.
On code written by us the results are for single processor in the same range as Intel. In some cases, the rosetta2 translation of Intel ipp goes faster than vDsp native or third-party libraries compiled arm, but at the same time slower than the traslated Intel case and waay slower than Intel processors with similar gb5 ! So now I have mixed feelings, as I was saying maybe it's early.

Changing the subject: has anyone managed to run a plugin on Logic beta? For example we can validate Arm64 with auval, but Logic says that we refer to Arm64e which is not valid, but the "file" commands on each of our executables and frameworks have no trace of Arm64e anywhere. The Arm64e architecture for the moment is reserved for Apple so I do not understand the error message (and yes, their parent frameworks are based on Arm64e). Logic is instead mixed Arm64/x86_64.
I wanted to see if someone had the same experience before opening a ticket in their feedback.
I know you can enable Arm64e but it is not clear if we should do it or not, for the moment I did not have the courage to disable SIP to verify it. I have not even understood if the Arm64 architecture is the definitive one, or we will have to include Arm64e in the future.
Has anyone understood anything about it?

Post

You need to be very careful benchmarking your code on the DTK, since the A12Z has 4 high power cores and 4 lower power cores. Rosetta 2 code always runs on the high power core, but ARM code runs on the lower power core until utilization gets high enough to switch to a high power core.

I recompile my plugin for ARM and was surprised to see the Intel Rosetta version outperforming the ARM version by a factor of 2 or 3. How can interpreted be faster than native? It can't -- I just wasn't comparing code running on the same cores.

All my plugins are JUCE based, so just recompile and they run on Logic ARM no issues.

Post

Interesting
And you created a universal binary or forced a pure arm64 version? I see logic arm can load a Rosetta 2 plugin, this increases quite a lot confusion. If the plugin is translated once it just will be loaded in the future, this is the reason why I'm avoiding universal binaries for now.
Are you using the latest logic beta?
And which beta version of big Sur?

In my case a juce plugin is loading an other arm bundle, and this one is loading other system Frameworks and arm dylibs, so I don't see how my case could be different from your one (apart this multiple loading, but auval is validating it, so the plugin runs).
Last edited by Zaphod (giancarlo) on Thu Sep 17, 2020 4:43 am, edited 1 time in total.

Post

Quick performance test with pre-release Tracktion Waveform and reFX Nexus running native on the arm mac, I can run 74 tracks before the CPU meter goes into the red. On my 2019 Mac Pro, same preset I can run 247 tracks. That's a 12 core Xeon vs 4 big core / 4 small core arm.

Post

I've create both arm and universal binaries. Latest Logic and Big Sur. I did have issues where Logic wouldn't load my synth if it had midi out enabled. And even after I changed that, Logic wouldn't load it. I had to change plugin ID for Logic to clear it's cache, then I could change it back.

Post

My one is midi enabled and listed as midi enabled in logic manager and the error reported by plugin manager is "unknown Arm64e architecture". But "file" command reports "Arm64" only.

But if an old plugin is translated by Rosetta logic arm loads this one perfectly even if it is not arm at all. I checked it was not a mistake removing the x86 architecture from logic using lipo command. So I'm sure logic arm64 loads a rosetta2 component perfectly (and it runs!).
Auval validates both of them (both arm and the old x86 plugin). Btw auval is universal binary x86/arm64e (please note the "e"), Logic is x86/Arm64 (without "e") and my plugin is Arm64 (without "e", created using xcode12 beta6)
I'm using big Sur beta0 on dtk.
Thank you for the tips

Post Reply

Return to “DSP and Plugin Development”