I'm locally using a modified version of Moonworks' Audio codebase and I get crashes at exit sometimes after Releasing the FAudio device. This seems to go away if I call StopEngine on the device before releasing it. When I test with breakpoints inside of a FAPO filter in one of my effect chains, it seems like the mixer (and thus callbacks) keep running even after you Release an FAudio device, so it's not safe to i.e. destroy streaming ogg buffers or things like that which the mixer might still be touching.
This may be specific to SDL3? The crashes happen inside of SDL3's mixer thread when it's calling into FAudio.
So my suggestion would be for Moonworks to call StopEngine before calling Release.
I'm locally using a modified version of Moonworks' Audio codebase and I get crashes at exit sometimes after Releasing the FAudio device. This seems to go away if I call StopEngine on the device before releasing it. When I test with breakpoints inside of a FAPO filter in one of my effect chains, it seems like the mixer (and thus callbacks) keep running even after you Release an FAudio device, so it's not safe to i.e. destroy streaming ogg buffers or things like that which the mixer might still be touching.
This may be specific to SDL3? The crashes happen inside of SDL3's mixer thread when it's calling into FAudio.
So my suggestion would be for Moonworks to call StopEngine before calling Release.