HDR, haptic on SDL3 Win+Linux
Posted: Tue Jan 06, 2026 7:25 pm
I was curious about the state of HDR and haptic feedback on Linux and it turns out it is now possible with SDL3. The good news is that SDL3 already works with Oolite via compatibility layers.
"For HDR to work properly, you'll need:
A Wayland compositor with color management protocol support (KDE Plasma 6+, GNOME 48+, or Sway with proper configuration)
An HDR-capable display
Recent Mesa drivers (25.1+) or appropriate GPU drivers
SDL 3.2.6 or newer"
"haptic feedback is possible in Linux using SDL3! SDL3 has a full haptic subsystem that supports force feedback on Linux."
On Linux, SDL3 can already be used with Oolite albeit using compatibility layers that go from 1.2 -> 2 and from 2 -> 3. In fact, this is the default setup on Flatpak, Fedora and Arch (while Ubuntu uses SDL2 via 1.2 -> 2).
Windows uses a custom build of SDL1.2. As far as I can tell, the features added to SDL1.2 for Windows are some video changes presumably for HDR and haptic feedback for joysticks. These would need to be reimplemented in SDL3. Have I missed any other features added to SDL1.2?
The upgrade path to SDL3 could be simplified by taking calls to SDL3 via compatibility layers and porting them to go direct to SDL3. This could be done a few calls at a time maintaining a working build (ie. some calls go through compatibility layer, some direct with Oolite still running correctly). When the appropriate calls have been ported, HDR and haptic feedback could be added such that they work on both Windows and Linux (and in future MacOS). Thoughts?
"For HDR to work properly, you'll need:
A Wayland compositor with color management protocol support (KDE Plasma 6+, GNOME 48+, or Sway with proper configuration)
An HDR-capable display
Recent Mesa drivers (25.1+) or appropriate GPU drivers
SDL 3.2.6 or newer"
"haptic feedback is possible in Linux using SDL3! SDL3 has a full haptic subsystem that supports force feedback on Linux."
On Linux, SDL3 can already be used with Oolite albeit using compatibility layers that go from 1.2 -> 2 and from 2 -> 3. In fact, this is the default setup on Flatpak, Fedora and Arch (while Ubuntu uses SDL2 via 1.2 -> 2).
Windows uses a custom build of SDL1.2. As far as I can tell, the features added to SDL1.2 for Windows are some video changes presumably for HDR and haptic feedback for joysticks. These would need to be reimplemented in SDL3. Have I missed any other features added to SDL1.2?
The upgrade path to SDL3 could be simplified by taking calls to SDL3 via compatibility layers and porting them to go direct to SDL3. This could be done a few calls at a time maintaining a working build (ie. some calls go through compatibility layer, some direct with Oolite still running correctly). When the appropriate calls have been ported, HDR and haptic feedback could be added such that they work on both Windows and Linux (and in future MacOS). Thoughts?
