dolphin icon indicating copy to clipboard operation
dolphin copied to clipboard

Externals: Update SDL to 2.30.4

Open khg8m3r opened this issue 2 years ago • 20 comments

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

khg8m3r avatar Aug 27 '23 21:08 khg8m3r

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

SuperSamus avatar Aug 27 '23 21:08 SuperSamus

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.)

Pokechu22 avatar Aug 27 '23 22:08 Pokechu22

@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

khg8m3r avatar Aug 27 '23 22:08 khg8m3r

@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)

khg8m3r avatar Aug 27 '23 22:08 khg8m3r

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.

Pokechu22 avatar Aug 27 '23 22:08 Pokechu22

Reminder that SDL 2.28 is still being updated. 2.28.5 is the latest release.

SuperSamus avatar Nov 08 '23 10:11 SuperSamus

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 avatar Dec 11 '23 14:12 khg8m3r

@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.

dreamsyntax avatar Dec 26 '23 02:12 dreamsyntax

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.

dreamsyntax avatar Dec 26 '23 21:12 dreamsyntax

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.

dreamsyntax avatar Dec 26 '23 22:12 dreamsyntax

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

khg8m3r avatar Dec 27 '23 01:12 khg8m3r

https://github.com/libsdl-org/SDL/releases/tag/release-2.30.0

SuperSamus avatar Feb 05 '24 12:02 SuperSamus

2.30.0 is indeed out now. Once this is integrated in this branch I'll verify LTEK

dreamsyntax avatar Feb 05 '24 21:02 dreamsyntax

https://github.com/libsdl-org/SDL/releases/tag/release-2.30.1

SuperSamus avatar Mar 09 '24 22:03 SuperSamus

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.

khg8m3r avatar Mar 12 '24 01:03 khg8m3r

https://github.com/libsdl-org/SDL/releases/tag/release-2.30.2

SuperSamus avatar Apr 02 '24 10:04 SuperSamus

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 avatar May 01 '24 17:05 dreamsyntax

@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 👍

khg8m3r avatar May 02 '24 12:05 khg8m3r

This still fails to build on most of our builders...

AdmiralCurtiss avatar May 21 '24 20:05 AdmiralCurtiss

@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.

khg8m3r avatar May 22 '24 20:05 khg8m3r

A release has since been tagged: https://github.com/libsdl-org/SDL/releases/tag/release-2.30.5

Peter0x44 avatar Jul 18 '24 15:07 Peter0x44

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 avatar Jul 27 '24 20:07 dreamsyntax

@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

khg8m3r avatar Jul 30 '24 23:07 khg8m3r

Not to be annoying but there's another release since https://github.com/libsdl-org/SDL/releases/tag/release-2.30.6

Peter0x44 avatar Aug 03 '24 22:08 Peter0x44

Oh no! I'll get that added since it fixes a controller crash

khg8m3r avatar Aug 03 '24 23:08 khg8m3r

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)

dreamsyntax avatar Aug 08 '24 20:08 dreamsyntax

I can test the Google Stadia.

Peter0x44 avatar Aug 08 '24 21:08 Peter0x44

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) ✅

dreamsyntax avatar Aug 11 '24 23:08 dreamsyntax

Tested on Windows 10 2022h2 19045.4651 with the google stadia controller, all axes, triggers, buttons, rumble function correctly.

Peter0x44 avatar Aug 11 '24 23:08 Peter0x44

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.

dreamsyntax avatar Aug 12 '24 00:08 dreamsyntax