Summary of current Apple Silicon support? Any performance issues remaining?

Support for Apple Silicon has come along way over the years, is it possible to summarize where things stand now? Specifically which features still run over Rosetta? Back when M1 first came out I found Rosetta caused some delays and generally poor performance for my VDMX project, but how is it now? Are there any areas where performance is still better native on Intel Macs?

Is it the case that shaders are still always converted from GLSL to Metal MSL at first display time - so there’s a little stutter?

Thanks.

Would also love to know. Hopefully someone sees this

This came from David Lublin:

“Support for Apple Silicon has come along way over the years, is it possible to summarize where things stand now? Specifically which features still run over Rosetta?”
There are only a handful of things in VDMX that require using Rosetta, most notably,

  • Waveclock BPM detection (as we license this from a 3rd party, we were hoping to get an updated library from them, but it looks like we are going to have to develop our own replacement here)
  • Third party QC plugins, most notably vade’s Rutt Etra and glitch plugins
    “Back when M1 first came out I found Rosetta caused some delays and generally poor performance for my VDMX project, but how is it now? Are there any areas where performance is still better native on Intel Macs?”

As VDMX is fairly open ended, and makes heavy use of both the CPU and GPU under different circumstances, and certain things perform differently based on the hardware. This was the case even before Intel vs ARM, eg while typically much more powerful, there was a period where dedicated GPUs on Intel desktop machines typically didn’t have built-in h.264 decoders / encoders found on laptops. There are also other pros and cons to consider, such as how the ARM machines have shared CPU and GPU memory, which can make some things faster, but there’s also typically a lot less of it to go around compared to a beefy Intel machine.

All that said, initial reporting on Rosetta2 was that even under emulation the M1 would typically outperform an Intel machine. Dug up this old post,
https://mjtsai.com/blog/2020/11/16/performance-of-rosetta-2-on-apple-m1/

“Is it the case that shaders are still always converted from GLSL to Metal MSL at first display time - so there’s a little stutter?”
Follow up question for you here, can you be more specific about “a little stutter” here?
Three notes here:

  • VDMX5 is still entirely OpenGL based.
  • Though deprecated, OpenGL is still supported on macOS.
  • That said, behind the scenes the macOS is doing some conversion between Metal and OpenGL for some stuff.
  • But, any little stutter you are noticing is probably is not related to shaders being converted from GLSL to Metal.

Beyond that, in VDMX6 (to be released later this year), everything will be entirely Metal based, except in the few places where we need to interact with legacy OpenGL SDKs (for as long as they are supported anyway…), and as you’d expect, where possible / applicable (eg ISF based GLSL shaders) we attempt to pre-translate / pre-compile for Metal in advance.

9 Likes

That’s very helpful, and encouraging!

1 Like

Yay, wow it seems a long time with VDMX5 and I remember the huge change switching from the fixed layout of VDMX2 to the modular approach of VDMX5. Looking forward to playing with the new release!

4 Likes

thank you for this update.