Featured image of post PipeASIO: ASIO bridge for PipeWire released in version 1.7.0, now with ARM64 support

PipeASIO: ASIO bridge for PipeWire released in version 1.7.0, now with ARM64 support

PipeASIO, an ASIO bridge for PipeWire on Linux (primarily for Wine), has been released in version v1.7.0.

The headline change is ARM64 support: there are now native ARM64 Windows front ends (aarch64-windows and arm64ec-windows) for ARM64 hosts as well as x86_64 hosts running Wine with FEX. To make this possible, the 64-bit driver was reworked into a PE front end plus unixlib structure that matches Wine’s own module layout, replacing the previous single-ELF build. Important: anyone upgrading from v1.6.0 or older must run pipeasio-register again in every Wine prefix - old stubs otherwise fail to load with error code c0000135.

Added

  • ARM64 front ends (#23): aarch64-windows/pipeasio64.dll for native ARM64 Windows hosts and arm64ec-windows/pipeasio64.dll for x86_64 hosts under Wine with FEX, over the one aarch64 unixlib. BUILD_ARM64 (default on) builds each when clang, lld and Wine’s <arch>-windows import libraries are present. Untested against a real audio host on ARM64 hardware.

Changed

  • The 64-bit driver is built as a PE front end plus a unixlib, the layout Wine uses for its own modules and the only one aarch64 and arm64ec Wine load (#23). Until now it was a single winegcc ELF (pipeasio64.dll.so) behind a fake PE stub. Measured against the single-ELF build at 128 frames: same round trip, same xrun count.
  • The PE half is linked by winegcc the way Wine links its own modules. Building needs a cross compiler: the MinGW gcc and g++ for x86 targets, or clang with lld for any target. The Wine library root is probed rather than assumed.
  • Upgrading from 1.6.0 or older: run pipeasio-register again in every prefix. Those installs staged a 2 KB stub into system32 that looks for the .dll.so, which the new install no longer ships; until re-registered the driver fails to load with c0000135.
  • The unixlib ABI is at version 4: the host’s callback buffer pointer is carried as a 64-bit value so the x86_64 front end fits the same unixlib as the i386 one.

Install

Prebuilt for Arch Linux / CachyOS (x86_64). User-local: tar -xzf pipeasio-v1.7.0-archlinux-x86_64.tar.gz -C "$HOME/.local", then run pipeasio-register. Proton / Faugus: extract to $HOME/.local and set WINEDLLPATH=$HOME/.local/lib/wine.

PipeASIO Panel Settings

Source: GitHub

PlayingTux – Playing Games on Linux - since 1995.