Windows: Win32, Vulkan, DirectX 8-12, d3dcompiler, dinput, xinput, windows.gaming.input, mmdevapi, mshtml, media foundation, quartz, nvapi, crypt32, ...
Linux: Vulkan, OpenGL, futexes, eventfd, hid, evdev, X11, PulseAudio, GNUTLS, gstreamer, SDL, ...
Some of those APIs are implemented on the Windows side using other already implemented APIs. The rest has to cross the Windows<->Linux boundary.
I'll explain what is implemented on top of what and how we cross the boundary when necessary, focusing on APIs used by games.
Session author's bio
I'm maintaining Proton since 2021. I'm working with CodeWeavers which hires many of the upstream Wine developers. I'm also on the Board of Directors of the X.Org Foundation.
|Level of Difficulty||Intermediate|