The Shape of Everything
A website mostly about Mac stuff, written by Gus Mueller
» Acorn
» Retrobatch
» Twitter
» Micro.blog
» Mastodon
» Instagram
» Github
» Maybe Pizza?
» Archives
» Feed
» Micro feed
April 29, 2021

Update (May 25): Security Update 2021-003 Catalina was released by Apple, and has the required fixes in it to enable Acorn to work correctly again.

Update (May 2nd): Acorn 6.6.5 and Retrobatch 1.4.4 are out for anyone who has downloaded or purchased the apps directly from Flying Meat.

These releases fix most of the problems introduced by the security update, but Flood Fill, Instant Alpha, and the Magic Wand tools are still broken in Acorn. The App Store version of Acorn has not been updated because there's no way to have a new version distributed once it's been removed from sale (even if it is put back on sale, because I tried that and it's not working). Retrobatch was never in the App Store, so it was super easy to get an update out to everyone.

Acorn and Retrobatch are not the only apps impacted by this problem, and I'm hopeful that Apple will be releasing a patch which fixes this in the near future. It could still be a matter of weeks though, so please sit tight until then. The right people inside Apple are aware of the problem, so I'm sure it will be a temporary (though very very unfortunate) issue.

A few days ago on April 26, 2021, Apple released Security Update 2021-002 Catalina for anyone running MacOS 10.15.7.

This security update unexpectedly breaks OpenCL, which is a framework from Apple used for processing images. Other Apple frameworks such as Core Image use OpenCL in some situations. In those cases Core Image no longer works correctly.

The latest release of Acorn, version 7, no longer uses OpenCL by default for processing images. So if you've upgraded to Acorn 7 you're safe.

The Apple security update has broken Acorn versions 6 and lower. Any files saved in these versions of Acorn will end up empty. The update also breaks adding new layers, painting, just about anything to do with processing pixels in previous versions of Acorn.

Retrobatch is also impacted if you use any nodes that process images through Core Image.

While I'd love for everyone to take this opportunity to update to Acorn 7 as a fix, I realize that's not always the best solution and in some cases, not possible.

I'm currently investigating a fix for this, and I have a beta for anyone who is impacted by this to try out.

Acorn 6.6.5 beta: http://flyingmeat.com/download/latest/Acorn6Preview.zip
Retrobatch 1.4.4 beta: http://flyingmeat.com/download/latest/Retrobatch1Preview.zip

I don’t have any updates for Acorn 4 or 5. Unfortunately, those products are too old to be updated further. My hope is that Apple will revert their breaking change, so that Acorn 4 and 5 can once again work as expected on MacOS 10.15.7. However, if you don’t wish to wait, upgrading to version 7 is the way to go.

Here's the technical version of things as I understand it at this time.

The "Security Update 2021-002 Catalina" has broken Apple's OpenCL framework. Core Image, another framework by Apple and one that Acorn relies on heavily, uses OpenCL to process images when its renderer is set to "software" mode (the other mode is to use the GPU). Core Image tries to use OpenCL and then fails, so all images come out empty.

The quick fix is to tell Core Image not use the software renderer, and then Core Image will move everything to the GPU for processing and use Apple's Metal framework instead of OpenCL — for most cases. I think there is still hardware out there that can't use Metal, so it might fall back to OpenCL in that case.

The Acorn and Retrobatch betas above force Core Image operations to run on the GPU instead of the CPU if it detects you're running on 10.15.7. This will have an impact in various areas such as performance and possibly rendering. I've not done extensive testing so I'm not sure what the fallout from this change will be (though I know it will be there).

It's easy enough for me to pass out a beta and eventually a final release to anyone who purchased Acorn 6 directly from Flying Meat. However Apple's App Store has no mechanism for updating an app that's no longer for sale, and I don't know how to get this fix out to them. (Side note: Acorn 6 is actually marked as available for sale from my end in App Store Connect …but it's nowhere to be seen in the actual App Store. I've never been able to figure out why, and it's been this way since I released version 7.)

It's a big mess.

So why isn't Acorn 7 impacted by the security update? I spent a bunch of time last year getting Acorn 7 to run on the GPU. Targeting Core Image to use OpenCL was deprecated by Apple and it was a good time to stop using it. I was also able to do this because I dropped support for older versions of MacOS where Metal and OpenGL weren't quite accurate enough for Acorn.

Acorn 7 does have the ability to target the software renderer if you mess with the right preferences, but that's not the default setup for Acorn, and I haven't had any reports of people running into the issue (yet).

Nothing in the release notes for the security update mentions OpenCL. I'm baffled and completely in the dark as to what the changes were or why they were done. I've filed a bug report with Apple (FB9091798) and pinged some folks on the inside, but I don't know anything more than that.