Description
Open Effects Proposal for Standard Change
Please read the contribution guidelines first.
Standard Change Workflow
- Create proposal as issue (you're doing this now!)
- Tag this issue with
standard change
tag - Identify subcommittee: at least one plug-in vendor, and at least one host
- Discuss the idea in this issue
- Write new or updated code and doc
- Publish updates as a pull request (ideally on a
feature/PROPOSAL-NAME
branch)- Make sure that PR references this issue number to keep them in sync
- Discuss and review code in the PR
- Meet all requirements below for accepting PR
- When subcommittee signs off and other members don't have any further review comments,
maintainer merges PR to master which closes PR and issue
Requirements for accepting a standard change:
- Header files updated
- Documentation updated
- Release notes added
- Compatibility review completed
- Working code demonstrated with at least one host and one plugin
- At least two members sign off
- No further changes requested from membership
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. currentWin32
andWin64
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:
- Arm64EC apps can load Intel DLLs and Arm64EC DLLs, but not Arm64 DLLs.
- Arm64 apps can only load Arm64 DLLs.
- Intel apps cannot load Arm64 nor Arm64EC, naturally.
- There is also an Arm64X "fat" binary PE format which contains both Intel/Arm64EC and Arm64 binaries. See Microsoft doc.
We will need to confirm once machines and host apps are available, but I believe this will work:
- An Arm64EC host should attempt to load plugins from
Win-arm64x
, thenWin-arm64ec
, and then fromWin64
. - An Arm64 native host should load plugins from
Win-arm64x
, thenWin-arm64
. - An Arm64X host will be running either its Intel/Arm64EC branch, or its Arm64 branch, so should load plugins according to the above depending on the current mode.
Requested change:
- Add
Win-arm64ec
,Win-arm64
, andWin-arm64x
install folders to the spec along with the notes above.
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.
Metadata
Metadata
Assignees
Type
Projects
Status