Skip to content

Fix ARM64 abci.dll incorrectly included in non-ARM64 builds#632

Open
LeoUnity wants to merge 2 commits into
mainfrom
fix-arm64-abci-any-platform
Open

Fix ARM64 abci.dll incorrectly included in non-ARM64 builds#632
LeoUnity wants to merge 2 commits into
mainfrom
fix-arm64-abci-any-platform

Conversation

@LeoUnity

Copy link
Copy Markdown
Contributor

Problem

Runtime/Plugins/ARM64/abci.dll.meta had "Any Platform" enabled. With Any Platform on, Unity includes the plugin in every platform not explicitly listed in the : Any Exclude set, and the per-platform enabled flags (including the intended Standalone: Win64 → CPU: ARM64 restriction) are ignored.

As a result the ARM64 binary was bundled into non-ARM64 builds (e.g. GameCore x64, Win64 x64, Linux64, OSXUniversal). In GameCore (x64) builds it then failed to load:

the ARM64 dll fails to load with expected x64 architecture, but was ARM64

Reported by a user against 2.4.5.

Root cause

Introduced in #573 (ARM64 support, ABC-436). The .meta was added with Any: enabled: 1 and has never been modified since, so every release shipping ARM64 support is affected — it is not a 2.4.5-specific regression.

Fix

Disable "Any Platform" and restrict the plugin to Win64 / ARM64 only, matching how the other native libs (x86_64/abci.dll, abci.bundle, abci.so) are configured:

Setting Before After
Any Platform enabled: 1 enabled: 0
Editor CPU: AnyCPU, OS Windows CPU: ARM64, OS Windows
Standalone Linux64 enabled: 1 enabled: 0
Standalone OSXUniversal enabled: 1 enabled: 0
Standalone Win64 enabled: 1, CPU: ARM64 (unchanged)

The Editor entry is scoped to CPU: ARM64 / OS: Windows (matching the OS/CPU-scoping pattern of the other native libs) so an ARM64 Windows editor loads this dll while the x64 editor continues to use x86_64/abci.dll.

Verification

  • Opened the AlembicHDRP test project (2021.3.45f1) in batch mode: the importer accepts the .meta unchanged (no rewrite/normalization) and reports no plugin import errors.
  • Note: verified on Apple-Silicon macOS, so the Windows-ARM64/GameCore platform resolution itself is left to CI's Windows build/validation jobs.

🤖 Generated with Claude Code

LeoUnity and others added 2 commits June 18, 2026 12:44
The ARM64 abci.dll plugin had "Any Platform" enabled, which caused Unity
to include the ARM64 binary in any platform not explicitly excluded
(GameCore, Win64 x64, Linux64, OSXUniversal, ...). In GameCore (x64)
builds the ARM64 dll then failed to load with "expected x64 architecture,
but was ARM64".

Disable "Any Platform" and restrict the plugin to Win64/ARM64 only,
matching how the other native libraries (x86_64 abci.dll, abci.bundle,
abci.so) are configured. The Editor entry is scoped to CPU: ARM64 / OS:
Windows so an ARM64 Windows editor loads this dll while the x64 editor
continues to use x86_64/abci.dll.

Misconfiguration originally introduced in #573 (ARM64 support, ABC-436).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@LeoUnity LeoUnity requested a review from a team as a code owner June 18, 2026 10:49

@u-pr u-pr Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Perfect

A focused fix for the platform targeting issue in the ARM64 plugin metadata.

🤖 Helpful? 👍/👎

@LeoUnity LeoUnity requested a review from windxu88 June 18, 2026 18:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant