It would be weird to have a Wine specific interface, I think if channel mapping is unsupported in WASAPI that is supposed to be done in users. But it feels like some parts of the picture are yet missing to come up with the final solution for all the usages. A few notes: - it looks like at least stereo format is advertised on 5 or 7 channel systems (while 5 or 7 channels vs other channel counts are not tested); - the tests only use IAudioClient. It might happen that IAudioClient3 has some differences, we already have a special case for initializing a stream from it.
Also, see https://learn.microsoft.com/en-us/windows/win32/coreaudio/audclnt-streamflag..., AUDCLNT_STREAMFLAGS_AUTOCONVERTPCM flag description mentions "channel matrixer". Maybe there are actually some ways to control channel translation at least on newer audio client interfaces?
Honestly, it seems like the original change which enforced format check requires a lot of work throughout, if there is no way to force the old behaviour in a Windows-compatible way at least (but yet underexplored parts leave a big room for regressions in the wild). Maybe the best way forward would be to remove the check for render client for now (as far as I understand the initial trigger for the change only depends on that check for capture)? It is probably easier to fix the capture uses of WASAPI, because there is less of those and it might be less multivariant than render. And then once maybe the potentially missing and helpful parts (between the lines of those flags maybe) are implemented and the internal usages rely on that instead of old behaviour the extra checks may be added back.