Skip to content

PipeASIO v1.4.3

Latest

Choose a tag to compare

@github-actions github-actions released this 06 Aug 12:47
v1.4.3
f0a8958

Fixed

  • Round-trip latency was one buffer period higher than it needed to be
    (#21). pw_filter_connect()
    without PW_FILTER_FLAG_RT_PROCESS sets both node.loop.class=main and
    node.async=true. The driver needs the first, which keeps the graph
    scheduling process() on the Wine-bridged loop so the host's COM
    bufferSwitch runs on a thread that has a TEB, but it was also paying for
    the second, which makes every link to the driver carry an extra graph
    quantum. The driver now clears node.async right after connecting, while no
    link exists yet, because PipeWire latches a link's async mode when the link
    is created. Measured round trip in asio_loopback drops from 2.00 to 1.00
    buffer periods at every size and rate, 42.7 ms to 21.3 ms at the shipped
    1024 / 48000 default, and the analyzer now asserts exactly one buffer period
    so a regression fails the suite. follow_device_clock keeps asynchronous
    scheduling on purpose, so a device-driven quantum cannot stall the graph.
    Connecting with PW_FILTER_FLAG_RT_PROCESS instead, as proposed in the
    issue, also drops node.loop.class=main, which moves process() onto a
    PipeWire pool data-loop thread with no Wine TEB and segfaults in ntdll
    during teardown.

Install

Prebuilt for Arch Linux / CachyOS (x86_64). The exact build toolchain (Wine, glibc, PipeWire, MinGW) is recorded in BUILD-INFO.txt inside the tarball.

  • User-local: tar -xzf pipeasio-v1.4.3-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.

Compatibility

A Wine builtin DLL is coupled to the Wine version and glibc it was built against. A different Wine or an older glibc may fail to load (regsvr32 c0000135). In that case build from source (README) or use the AUR package. Source tarballs are attached automatically below.