AcademySoftwareFoundation / openfx

OpenFX effects API
Other
419 stars 122 forks source link

Windows ARM64 and ARM64EC support #160

Open garyo opened 6 months ago

garyo commented 6 months ago

Open Effects Proposal for Standard Change

Please read the contribution guidelines first.

Standard Change Workflow

Requirements for accepting a standard change:

Summary

OpenFX plugins are installed in standard locations, based on the ABI architecture. See https://openfx.readthedocs.io/en/main/Reference/ofxPackaging.html#installation-directory-hierarchy for the current list.

On Windows, the spec currently says:

On Windows with arm64, Win-arm64 should be used (vs. current Win32 and Win64 which are Intel-specific)

Windows 11 will soon be supporting two new architectures, arm64 and arm64ec. No machines currently support this, but such machines are expected in summer of 2024. According to Microsoft, arm64ec supports running Intel code in emulation, within an arm64 application on an arm64 CPU. This should allow Intel-based plugins to run in an arm64ec host. Native arm64 applications will presumably fail to load an Intel dll, so the spec should be specific about where plugins for each architecture are installed.

The doc above says:

We will need to confirm once machines and host apps are available, but I believe this will work:

Requested change:

Impact

This will impact all hosts and plugins which want to support Arm64 on Windows.

Documentation Impact

The only change to the doc (the spec) is to update the install dirs list, and add rationale as per the discussion in this issue.

garyo commented 6 months ago

I note that Microsoft specifically recommends that plugins should be built as Arm64X (similar to Mac fat or universal binaries).