dolphin
dolphin copied to clipboard
Externals: Update SDL to 2.30.4
Attempting to fix 3rd party switch pro gyro issues reported on the forums. Also a bunch of other fixes, notably one being Steam Deck SDL support for the extra buttons. SLD claimed that 2.28 was their last release, but they made some changes since then, so instead of pulling the tagged release I pulled the latest sdl2 branch updates
Note that since SDL 2.26.5, macOS minimum target is raised to 10.11. https://github.com/libsdl-org/SDL/releases/tag/release-2.26.5
libsdl-org/SDL@f032e8c19165aeee6f9b47e82fb56809d4aeae1e isn't a tagged release (as you say). Although it's probably OK to update to it, especially if the update doesn't require dolphin changes so linux package maintainers can use an older version that they already have packaged, it's probably not a good idea to refer to it as 2.29.0; instead I'd refer to it as a 2.29 development version. That way when an actual 2.29.0 releases it's more clear that we were using something else. (Unless SDL exclusively uses odd-numbered versions for development versions, which might be the case looking at their releases page; I'm not super familiar with it.)
@SuperSamus Dolphin's minimum macOS target is 10.15, so it should be fine? Looks like the osx buildbot failed because there's a version check that's hardcoded. I'll look into that real quick
@Pokechu22 According to their pull request: https://github.com/libsdl-org/SDL/commit/ceece918e4ebe7adfe80ee35a0a4a928c0018252, they're calling it 2.29.0 for development. I could rename this to point out this is a snapshot before the official 2.29 release, but since they're in maintenance mode now since 2.28.0, this is more of a stopgap before Dolphin moves to SDL3 (or uses sdl2-compat)
Ah, looking at how they handle things, 2.28.0 RC1 is actually prerelease-2.27.1 and there is no build tagged 2.27.0. So based on that calling it 2.29.0 is probably fine.
Reminder that SDL 2.28 is still being updated. 2.28.5 is the latest release.
Looking for some input on what to do. Should I go down to 2.28.5 point release, bump up to the latest 2.29.0 release, or wait until the 2.30.0 milestone is completed?
Option 1 might not fix all the joycon/Steam Deck issues I was trying to fix with this pull request, would need to investigate. Options 1 and 2 will run into the LTEK dance pad issue until it's fixed in the rolling release leading up to 2.30.0. Option 2 might run into an issue with the GC adapters in PC mode. Would need to look into it based on https://github.com/libsdl-org/SDL/issues/8617 Option 3 will mean waiting until who knows when, they're already past the deadline
@khg8m3r The LTEK issue (which probably affects other devices as well) might* be resolved in SDL commit cc20d01 per: https://github.com/libsdl-org/SDL/issues/8662#issuecomment-1868572566
I think it would be worth testing this commit in this branch (or another), and if they backport it to 2.28.x, then I don't see an issue with going with that. I would prefer not to lose device support.
That said, since Dolphin has other options besides SDL its not like its impossible to use the devices affected anyway, so its not necessarily a full blocker.
Update: The SDL commit cc20d01 is confirmed to fix the issue for PCSX2. It currently lives in the SDL2 branch, not sure if its strictly planned for 2.30 or will be backported yet.
SDL member came back with
2.30.0 is the next SDL release, and we're wrapping things up for a release next month.
I would prefer we wait for 2.30, but again its not a total blocker if there's a critical feature you want in sooner than Jan 30.
SDL member came back with
2.30.0 is the next SDL release, and we're wrapping things up for a release next month.
I would prefer we wait for 2.30, but again its not a total blocker if there's a critical feature you want in sooner than Jan 30.
Well this PR has already waited this long, might as well wait for the 2.30.0 release so that it can be synced up to a point release instead of an arbitrary SDL commit.
It's good to know the LTEK issue is fixed, I'd like to not have any regressions
https://github.com/libsdl-org/SDL/releases/tag/release-2.30.0
2.30.0 is indeed out now. Once this is integrated in this branch I'll verify LTEK
https://github.com/libsdl-org/SDL/releases/tag/release-2.30.1
Looks like 2.30.1 fixes a crash for controllers on macOS, so I'll probably pull to that release, thanks to @SuperSamus for pointing that out.
Been absolutely slammed with work and some personal stuff, should finally have some time this week to get this updated and pushed for review.
https://github.com/libsdl-org/SDL/releases/tag/release-2.30.2
Any chance this can be worked on soon? I have a planned feature dependent on it
Also, 2.30.3 just came out.
If you are too busy with other obligations I wouldn't mind taking it over as well.
@dreamsyntax I've been on a bunch of back-to-back work trips but I get back tomorrow. I'll get this updated and pushed tomorrow night or Saturday morning 👍
This still fails to build on most of our builders...
@AdmiralCurtiss yeah, I was poking this the other day with @dreamsyntax, gotta do some deeper debugging on why the default SDL 2.30.3 release commit doesn't want to build. Might need to do either a patch in Dolphin or see if the SDL repo has the fixes but they haven't pushed to a point release yet.
A release has since been tagged: https://github.com/libsdl-org/SDL/releases/tag/release-2.30.5
Is this going to be addressed? I understand schedules and all that, but its been a year... If you don't have time it may be better to just close and let someone else grab it.
@dreamsyntax from our discord discussion, I think everything is pushed now to solve the compiler problems I was seeing on Windows and Linux. If we can figure out he buildbot issues I think this should be done
Not to be annoying but there's another release since https://github.com/libsdl-org/SDL/releases/tag/release-2.30.6
Oh no! I'll get that added since it fixes a controller crash
Not sure what to do about the builder situation other than 'whatever' power through it. At this point all the different builders do pass. It's just a matter of the cache.
Planning to test this still, just a bit busy.
- Steam Controller
- Dual Sense
- Logitech F310
- LTEK Dance Pad
- Xbox (One/Series HWID)
I can test the Google Stadia.
Tested on Windows 11, 23H2, verifying all buttons, axis, vibration, gyro/other sensor functions: Steam Controller ❌ (also does not work in master, so not a blocker) Dual Sense ✅ Logitech F310 ✅ L-TEK Dance Pad PRO ✅ Xbox (One/Series HWID) ✅
Tested on Windows 10 2022h2 19045.4651 with the google stadia controller, all axes, triggers, buttons, rumble function correctly.
Tested on Android 14 Dual Sense ✅ Logitech F310 ✅
As Device "Android/1/(name)" I stopped here as I don't think SDL has any relation to Android version, but verified the two worked above as expected anyway.