Skip to content

ProMatte 1.0.1 — Intel Mac support

Choose a tag to compare

@scornik scornik released this 08 Sep 14:33
· 6 commits to main since this release

Warning

The macOS package in this release does not load. OBS reports "the following
OBS plugins failed to load: promatte" on both Apple Silicon and Intel. Two
faults in the bundle's link-time metadata caused it: the module had no rpath
that could reach libobs inside OBS.app, and the vendored ONNX Runtime was
written under a filename the binary never asks for. Both are fixed in
1.0.2 — use that
instead. Windows and Linux in this release are unaffected.

macOS now ships as a universal binary, so ProMatte runs on Intel Macs as well as
Apple Silicon, and a use-after-free found while making that work has been fixed.

Changes since 1.0.0

macOS supports Intel. The bundle is a universal binary carrying both an
x86_64 and an arm64 slice, so one download works on every supported Mac.
CI asserts with lipo that both slices are present in the module and in the
vendored ONNX Runtime, because a package that quietly lost one would still
install and then fail to load on the other kind of Mac. macOS pins ONNX Runtime
1.23.0, the last release with a universal2 build; 1.24 is Apple Silicon only.
Windows and Linux stay on 1.24.4.

Fixed a use-after-free reading model input shapes.
TypeInfo::GetTensorTypeAndShapeInfo() returns a non-owning view, and it was
being called on a temporary that died at the end of the statement. On ONNX
Runtime 1.24 the dangling read happened to return plausible values, so it went
unnoticed and 1.0.0 shipped with it. On 1.23 the garbage dimension count made
every model fail to load. It is undefined behaviour either way and is now fixed,
verified against both runtimes.

If you are on Windows or Linux, 1.0.0 works and this is a correctness fix rather
than a behaviour change you will notice. If you are on an Intel Mac, this is the
first release you can use at all.

Downloads

Platform File
Windows 10/11 x64 ProMatte-Setup-1.0.1.exe
Linux x86_64 (Debian/Ubuntu) promatte_1.0.1_amd64.deb
Linux x86_64 (other) promatte_1.0.1_linux-x86_64.tar.gz
macOS 11+, Intel and Apple Silicon ProMatte-1.0.1-macos-universal.zip
macOS (alternative) ProMatte-1.0.1-macos-universal.tar.gz

SHA256SUMS.txt covers every file. Requires OBS Studio 30.0 or newer.

On macOS, move promatte.plugin into
~/Library/Application Support/obs-studio/plugins, then clear the quarantine
flag with xattr -dr com.apple.quarantine on it, since the bundle is unsigned.

What is actually verified

Platform Builds Unit tests Package installs Runs in OBS with a camera
Windows x64 yes 36/36 yes yes, fully
Linux x86_64 yes 36/36 yes, module loads and all libraries resolve no
macOS universal yes, in CI 36/36 in CI, arm64 slice only bundle inspected, not installed no

Windows is the only platform exercised end to end against a real webcam. Linux
builds, passes its tests and produces a package whose module loads, but has
never run inside OBS. macOS is built, tested and packaged by CI and has never
been loaded in OBS on a Mac; the x86_64 slice in particular is verified
structurally with lipo, not executed, because the runner is Apple Silicon.

Full measurements and the complete limitations list are in
docs/final-verification.md.
Third-party attribution is in
THIRD_PARTY_LICENSES.md.

ProMatte is GPL-2.0-or-later.