directaudio-v1.2.2
DirectAudio v1.2.2 — native Wine → Android AAudio (winedirectaudio.drv). Wine 11 only.
⚠️ The default changed
| v1.2.1 | v1.2.2 | |
|---|---|---|
| buffer | 62.5 ms | 12 ms |
| total latency | 83 ms | 33 ms |
| growth ceiling | 250 ms | 100 ms |
Latency figures are totals — the driver's buffer plus Android's fixed ~21 ms mixer/HAL cost,
which no application on the platform can go under. A "12 ms buffer" is 33 ms to the ear.
This affects hosts that bundle the driver and set no environment — they get the new value
directly. A host that writes its own buffer (Bannerlator's audio presets do) is unaffected.
The buffer can come back down
Adaptive growth used to be one-way: a single loading screen taxed latency for the rest of the
session. After 10 s with no underrun the engine now hands a burst back. Two guards stop the
shrink → underrun → grow oscillation that makes Oboe's LatencyTuner refuse to shrink at all:
- the floor is the size the stream opened at — decay only ever undoes growth, never undercuts
what was asked for; - an underrun within 5 s of a step down marks that level unsustainable for the title, pins it,
and doubles the patience (capped ~5 min). A game that needs headroom settles after a probe or two.
BANNER_AUDIO_DIRECT_DECAY=0 restores grow-only.
Latency in milliseconds
BANNER_AUDIO_DIRECT_MS / _MAXMS replace counting frames, and win over _BF/_MBF — a host
writes those from its own preset every launch, so a hand-typed frame count could never stick.
The value is rounded up to a burst multiple after the stream opens, since only then is the
device's burst known.
Nine values that were compiled in are now tunable
_PERIOD_MS / _MINPERIOD_MS (the device period reported to the guest — the guest half of
latency, previously a fixed 10 ms), _EXCLUSIVE, _WATCHDOG / _STALL_MS, _DECAY_QUIET_MS /
_DECAY_PUNISH_MS / _DECAY_MAXBACKOFF, and _LOG.
_LOG=1 gives heartbeats plus growth and decay steps on a release build (logcat -s DirectAudio) — a field report no longer needs a separate diagnostics binary. Every stream open
logs the buffer, burst, capacity, and the performance and sharing modes actually granted.
Two titles that ALSA can't run
FNAF Security Breach and DRAGON QUEST VII Reimagined are reported to crash or fail to boot
on ALSA. Both run on DirectAudio — at 25 ms and 29 ms respectively.
Fixes
- startup underruns were blamed on a decay step that had never happened, pinning the floor within
3 s of launch and silently disabling decay for the session - a stream no longer current still did the mixer's bookkeeping, resizing itself while the log
reported the live stream's size
Downloads
directaudio-arm64ec-sdk28.zip— 4KB-page devicesdirectaudio-arm64ec-sdk35.zip— 16KB-page devices
Each contains winedirectaudio.drv for lib/wine/aarch64-windows/ and winedirectaudio.so for
lib/wine/aarch64-unix/ of a Proton 11.0 layer.
Device-proven on Adreno 750 / Android 14 / Proton 11.0-5-arm64ec-5, across DiRT 3, FNAF Security
Breach and DRAGON QUEST VII Reimagined. Tested on one device; Mali untested. Wine 11 only —
the mmdevapi unixlib vtable differs on Wine 10, so one build cannot span Proton 10 and 11.