Thanks to the one crazy guy valve contracts making proton… It’s crazy how his work basically made gaming on Linux a thing. But yeah the other major thing, which you mentioned, is games/game engines using directX9, directX10 and directX11 (the windows 3d graphics libraries) have their API/rendering calls mapped directly to Vulkan. Those APIs were easier to use but from my understanding (I’m no graphics expert) didn’t have the ability to use the full potential of the hardware, and basically had a single channel/thread to the GPU. DirectX12 and Vulkan are much more difficult to use, and some games have used them horribly such that DX11 performs better than DX12, but a good implementation can take advantage of multichannel/multithreaded communication to the GPU allowing much faster and efficient data transfer. They allow the engine programmer to have much more control of the hardware. So vkd3d/proton gives that massive performance impact by mapping the graphics calls from an older API to a newer one. I have not looked into how it’s implemented but it’s basically magic. This was the main reason why wine kinda sucked for gaming before proton.
The Windows scheduler is actually pretty decent, it’s been a few years since I looked into it but I think Windows soft-real time scheduling was better than the one Linux used, though idk if games even use that.
The thing holding Linux back, mostly just for online games with anticheat, is anticheat developers reluctance to port to Linux. I believe do to the differences between users pace and kernel space on Windows VS Linux makes bypassing the anticheat on Linux much easier, or the anticheat can use the same tricks that it does on windows.
Only because the publisher or developer specifically don’t want their games played on Linux. And it’s mostly because of anticheat