> Create a standard, ask Unity and Unreal Engine to support it
It's called Vulkan, I believe. Or, you know, OpenGL even. Doesn't change the fact that it's the developer who will have to support it. Also doesn't change the fact that the developers _won't_ support it because of the same reasons that they don't now: it's not commercially viable. DirectX is not the problem.
Graphics is not the primary problem. The DirectX family of APIs also supports audio, input, networking, and other useful things that are in many ways far more difficult to make work across all platforms, at least historically.
So in some sense, DirectX's existence changes the economic equation, which does make it part of the problem.
Yes and no, there are new APIs to support the same use cases, and none are standard/cross platform. Whether they are part of DirectX formally or not is not important.
While XAudio2 is a key library, it is not DirectX one, as we were talking about DirectX umbrella project. It is not as low-level library as other DirectX projects were anymore, it doesn't talk to the hardware directly. It is really just a user space library with convenient functions, made by Microsoft. It also has competition, there's OpenAL, which is similar - even if it doesn't have as nice API, it is cross-platform.
Yeah, I understand, that is why I said it is not DirectX, but being in DirectX or not is just marketing.
The reason is that XAudio2 (and lower level ones and other non-audio ones) is developed, distributed and recommended by Microsoft, and it is used by many major games and audio engines.
So I don't understand who cares about whether it is formally part of DirectX or not.
I didn't claim there aren't alternatives like OpenAL or Wine's XAudio2 implementation. I simply said the original XAudio2 is not portable on its own, which means you cannot simply use it in Linux, for instance.
It's called Vulkan, I believe. Or, you know, OpenGL even. Doesn't change the fact that it's the developer who will have to support it. Also doesn't change the fact that the developers _won't_ support it because of the same reasons that they don't now: it's not commercially viable. DirectX is not the problem.