NanoVG issues in Logic Pro X on High Sierra

A customer just sent me two crash logs showing my plugin crashes Logic 10.4.8 on High Sierra (please see attached links). Crash logs show the problem is with “nvgCreateImage”. This is a very simple iPlug2 plugin with only 1 background bitmap and two buttons.–BPp21Pdb1EEIwx/view?usp=sharing

I have tested the plugin thoroughly on Mojave thru Big Sur and it works perfectly in Logic 10.5.1 and 10.6.1. Only thought I have is that High Sierra and/or his hardware doesn’t support NanoVG?

Many of my customers (and probably many of yours as well) have older Mac systems (High Sierra is very common in established studios). Is NanoVG and/or Metal causing known issues on older Macs? If so, what is the solution in iPlug2?

You are probably right about the hardware not supporting metal.

One solution is to use software rendering with skia. Another is to use NanoVG with OpenGL. Switching the graphics backend is described here but you will also have to build your own skia static library which doesn’t link to the Metal framework if you want to support systems where Metal isn’t available. We might start to provide two versions of the skia prebuilt libraries. We might also allow switching graphics backend at runtime, but that is more work.

1 Like

Then that’s a big compatibility problem. Not everyone out there is running the latest and greatest Mac.

NanoVG is what is failing in this case. Are you saying it can be changed to run OpenGL instead of whatever its default is - or are you suggesting NanoVG over Metal?

All I know is whatever I put out there has to work for the masses and not just those with the latest and greatest hardware.

What did iPlug1 use? It works on High Sierra.

Apple are quite good at forcing this upon us. It is simply impossible to support all permutations of systems, and IPlug2 is about future-proofing not past-proofing.

as explained in many videos i have done it used LICE, cockos software only bitmap engine, which is extremely limited.

SKIA CPU is probably the best option for you if you want to avoid this issue of machines that don’t support metal.

That should probably be the iPlug2 default then instead of Metal. It doesn’t do any good to have fancy graphics if the plugin doesn’t load/work. This isn’t about me it’s about the users.

that’s enough please :slight_smile:

I think it’s explained on the link above but basically skia is a heavyweight dependency, That cannot be the default because it’s hard for people to build

We could change it so that people have to download the static libraries before they can build anything with Iplug2, But then again we have the problem of linking the metal framework with the static libraries it becomes quite complicated

I would ask myself: How many users out there do still use a Mac which does not support Metal? Are users who cannot afford a new computer (or graphcis card respectively) since more than 10 years your main target group? Are they actually paying for plug-ins? Is it worth providing two versions of your plug-ins (one high performance version, and one that is backwards compatible)? Just as food for thought. I would consider measuring these quantities, because 99% of your users might be fine with it and it is just the one remaining percent that complains all the time.

I am getting complaints from users on both ends - older Macs and the latest Macs.

My currently released plugins were all built in iPlug1 and work on older Macs (OS 10.7) all the up through Big Sur on M1 with Rosetta. The only complaints I received regarding those builds was that they don’t have resizable/scalable GUIs and were “way too small” on high resolution video monitors.

So I took the plunge and spent a month learning and re-writing some of my plugins in iPlug2. Now come to find out they don’t work on older Macs and are also failing on M1 with Rosetta 2. Painfully disappointing.


So I took the plunge and spent a month learning and re-writing some of my plugins in iPlug2. Now come to find out they don’t work on older Macs and are also failing on M1 with Rosetta 2. Painfully disappointing.

Please stop it. I’ve asked you many times but you never change. Your attitude on this forum is destroying my morale and draining my energy on a daily basis. This project can’t exist without those things. You seem to go out of your way to make negative remarks, or give unsolicited, often ill-informed advice, and post on the forum before trying to figure stuff out yourself. For some reason I continue to help you out, although I wonder why I do it.

Here are some facts, that you don’t seem to be considering:

  • iPlug2 is not finished and clearly labelled as such.
  • Apple M1 is very new. There are lots of compatibility problems with all sorts of software and Logic X itself has some bugs.
  • Apple relentlessly deprecate things and make it hard for developers and users not to use the latest hardware/software.
  • iPlug2 is the hard work of mainly two people who have day jobs. It is not a commercial project.

Keeping your customers happy is your responsibility. iPlug2 is open source with a liberal licence, you can fork it / customise it, and I’ve made several suggestions that would let you get the compatibility you want, with a little bit of work on your part. The problem is you seem to think everything should work automagically for you without you doing any work. With a project like this you have to take the attitude of “roll your sleeves up and fix things” not moan about it on the forum every day. This is the attitude I have had since ~2008, without which there would have been no WDL-OL/iPlug1 or iPlug2 which you have used to make your products.

Making cross platform, multi-format plug-ins that work well is really hard work, even with the help of something like iPlug2 or JUCE. It’s frustrating at times, but there is no need to write what you do on the forum, it doesn’t help anyone.



I have only been on this forum a few weeks and have already helped fix an issue you confirmed and posted to GitHub just a few days ago. I was also very active contributing to iPlug1 fixes over on the WDL forum for several years. Nothing was “automagical” about it. I put a lot of time into it.

Before anyone can fix an issue they must first be made aware of the issue - which often arises as a “complaint” - and complaints are often accompanied by emotion. I don’t always have the ability to fix these issues myself which is why I came to this forum for help (the only associates for many of us).

You get paid donations for effort - I get paid for finished products. And yes, it is 100% my responsibility that they work properly.

BTW - I fixed the issue I posted in this thread by de-commenting $(IGRAPHICS_LNK_FLAGS) and changing IGRAPHICS_METAL to IGRAPHICS_GL2 in the pluginname-mac.xcconfig file. I don’t know if it’s technically correct - and I know it’s not optimum - but it solved the backwards compatibility problem and still works on Mojave and Big Sur (Intel). Still does not work on M1 via Rosetta.

I’m sorry but I don’t want to spend any more of my time or energy dealing with this. This is not the place for complaints or the kind of emotion you add to them.