Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Platform review #6570

Closed
15 tasks done
slouken opened this issue Nov 22, 2022 · 71 comments
Closed
15 tasks done

Platform review #6570

slouken opened this issue Nov 22, 2022 · 71 comments
Milestone

Comments

@slouken
Copy link
Collaborator

slouken commented Nov 22, 2022

Review the set of supported platforms. Are there any that we should remove due to lack of active maintainer?

Platforms:

  • NaCl
  • OS/2
  • Pandora
  • QNX

Audio subsystems:

Video subsystems:

  • directfb

Misc:

  • visualtest

@libsdl-org/a-team

@slouken slouken added this to the 3.2.0 milestone Nov 22, 2022
@sezero
Copy link
Contributor

sezero commented Nov 22, 2022

os/2 can go. that pandora config and makefile can go. several audio backends such as esd, nas, arts can go.

@flibitijibibo
Copy link
Collaborator

flibitijibibo commented Nov 22, 2022

For Windows audio we can technically remove every backend that isn't WASAPI, but at the same time I feel like we're going to be fighting OS bugs in WASAPI until the end of time... would be good to figure out if there's something we can do at the API level to finally fix it for good.

@sezero
Copy link
Contributor

sezero commented Nov 22, 2022

That visualtest thing can go too: no one maintained it, ever..

@slouken
Copy link
Collaborator Author

slouken commented Nov 22, 2022

I'm adding things to the checklist above, feel free to say something if you disagree.

@sezero, once everyone has a chance to chime in, feel free to nuke each one as a separate commit.

@icculus
Copy link
Collaborator

icculus commented Nov 22, 2022

os/2 can go

Literally did not expect Ozkan to say this. :)

For Windows audio we can technically remove every backend that isn't WASAPI

Winmm can be retired for sure, but having DirectSound as a foil has been useful, even if it's just to demonstrate something is wrong with our WASAPI code.

But, legit question: we're dropping WinXP support, right?
And Vista...?
...And 7 and 8...? :)

Where should we cut on this?

@icculus
Copy link
Collaborator

icculus commented Nov 22, 2022

arts, esd and nas can all go.

Also fusionsound, nacl, paudio, qsa, possibly sndio if OpenBSD isn't still using it, possibly sunaudio if Solaris isn't still using it (or if no one is using Solaris).

QNX support can go; we don't have any way to maintain it and it has a proprietary SDK we no longer have a license for. If it becomes a going concern or someone steps forward to maintain it, we can resurrect it from revision control.

@icculus
Copy link
Collaborator

icculus commented Nov 22, 2022

(Sorry for all the spam here)

If dsp can go along with all the other legacy Unix backends, we can remove the higher level code for manage Unix /dev/dsp devices that is in src/audio itself.

If all the network sound servers and all the random device name backends are going, we can remove the idea that there might be arbitrarily-named audio devices in SDL3.

(and even if not, we should just make forcing an arbitrary device name/server address a hint that affects the outcome of opening the default SDL device).

@icculus
Copy link
Collaborator

icculus commented Nov 22, 2022

Also, this might be too aggressive, but I'd consider deleting PSP, Vita, PS2, and Nintendo 3DS support up front, and let them live in SDL2, and add them back to SDL3 if they want to maintain them once we've ripped everything up.

Obviously the Stadia fork is not migrating to SDL3. The other private forks will, I assume.

Do we need "android", "aaudio" and "opensles" audio targets? What is Android using at this point?

Can "jack" audio go away now that pipewire is the new hotness?

Did NetBSD ever pick up ALSA or PulseAudio, or do they really still need a bespoke /dev interface?

@flibitijibibo
Copy link
Collaborator

We're probably stuck with jack but only for the same reasons as pulse, both could probably be deprecated by the time 3.0 is done and be removed toward the end of 3.x's lifecycle.

@icculus
Copy link
Collaborator

icculus commented Nov 22, 2022

The "raspberry" video driver can go (modern Raspberry Pi OS supports kmsdrm on at least the Pi 3 and Pi 4, if not others).

I think we delete the DirectFB code, which I am not convinced ever worked in SDL2.

What is "vivante"? Is this still used? How about riscos?

In joysticks, if "iphoneos" is still used, let's rename that to ios.

In render, can we dump Direct3D 9? OpenGLES 1? (Direct3D 12 and Metal should be obsoleted by the GPU work eventually, GLES2 might need to hand around for what qualifies as a lower-end device in current times).

@slouken
Copy link
Collaborator Author

slouken commented Nov 22, 2022

But, legit question: we're dropping WinXP support, right? And Vista...? ...And 7 and 8...? :)

Where should we cut on this?

In my opinion we can drop WinXP and Vista, but we should keep 7 and 8. Together they are a little more than 4% of the October 2022 Steam hardware survey, and 4% of millions of players is quite a few. :)

@slouken
Copy link
Collaborator Author

slouken commented Nov 22, 2022

If all the network sound servers and all the random device name backends are going, we can remove the idea that there might be arbitrarily-named audio devices in SDL3.

There will always be arbitrarily named audio devices. :)

@slouken
Copy link
Collaborator Author

slouken commented Nov 22, 2022

The "raspberry" video driver can go (modern Raspberry Pi OS supports kmsdrm on at least the Pi 3 and Pi 4, if not others).

kmsdrm still doesn't perform as well as the vc code in older Raspberry Pi OSes, and the Steam Link app still needs to support it, as they are still the best direct replacement for Steam Link hardware.

I think we delete the DirectFB code, which I am not convinced ever worked in SDL2.

We still have random folks working on embedded systems that use DirectFB - it was their only alternative once we removed fbcon support. I think most embedded systems now have capable GLES2 stacks, so our dummy driver with offscreen GLES may be a viable replacement these days.

What is "vivante"? Is this still used?

Yes, Steam Link hardware, still supported by Valve. ;)

How about riscos?

We've gotten some recent commits for this, we should reach out to the author and get their opinion.

In joysticks, if "iphoneos" is still used, let's rename that to ios.

Not only is it still used, it's the recommended path going forward for macOS. It definitely needs to be renamed though.

In render, can we dump Direct3D 9? OpenGLES 1? (Direct3D 12 and Metal should be obsoleted by the GPU work eventually, GLES2 might need to hand around for what qualifies as a lower-end device in current times).

OpenGLES 1 can go.

Direct3D 9 is still the best video decode path on a lot of video cards, so Steam Remote Play defaults to using that.

@slouken
Copy link
Collaborator Author

slouken commented Nov 22, 2022

What about Haiku?

@flibitijibibo
Copy link
Collaborator

WinRT can be cut, all our use cases should now fall under GDK. The Xbox Creator Program is UWP's last exclusive customer and ID@Xbox is far preferable for shipping software on Xbox.

@icculus
Copy link
Collaborator

icculus commented Nov 22, 2022

Haiku is still in active development, I'm inclined to keep it for now.

@icculus
Copy link
Collaborator

icculus commented Nov 22, 2022

We still have random folks working on embedded systems that use DirectFB - it was their only alternative once we removed fbcon support.

Honestly I'd sort of like to replace it with an fbcon target that can only handle a window framebuffer, or if it's feasible, add a window framebuffer that doesn't require OpenGL to the kmsdrm target.

Just really want to find a way to eject the creaky old dependency here that'll work for these embedded people.

@slouken
Copy link
Collaborator Author

slouken commented Nov 22, 2022

Honestly I'd sort of like to replace it with an fbcon target that can only handle a window framebuffer, or if it's feasible, add a window framebuffer that doesn't require OpenGL to the kmsdrm target.

This seems like a good option, and there's already a request for it in #6561

@sezero
Copy link
Contributor

sezero commented Nov 22, 2022

os/2 can go

Literally did not expect Ozkan to say this. :)

Well, why not. Obviously I'm not experienced enough to keep supporting and
maintaining it. And since sdl3 is supposed to be more gpu-centric, there will be
no point in keeping it.

@sezero
Copy link
Contributor

sezero commented Nov 22, 2022

Can "jack" audio go away now that pipewire is the new hotness?

Seconded

@sezero
Copy link
Contributor

sezero commented Nov 22, 2022

If dsp can go along with all the other legacy Unix backends,

It might be wise to still keeping it, at least for some time? Isn't that still the
default for freebsd guys?

@sulix
Copy link
Contributor

sulix commented Nov 22, 2022

For Windows audio we can technically remove every backend that isn't WASAPI

Winmm can be retired for sure, but having DirectSound as a foil has been useful, even if it's just to demonstrate something is wrong with our WASAPI code.

I'd definitely want something other than WASAPI to be around for a bit longer — WASAPI has been broken too often recently in "interesting" setups (weird sample rates / running under wine / etc). So having either winmm or DirectSound would be worth keeping.

Also, I'm still shipping a few things which need Windows XP support, though they easily can stay on SDL2. (Not to say it wouldn't be nice to avoid going out of our way to break support for older OSes where it doesn't gain us anything.)

More generally, do we need to work out what a "minimum hardware spec" for different parts of the API are?
e.g., SDL_Surface-style software rendering only needs a framebuffer. The new GPU API will need a ~Vulkan era GPU. SDL_Renderer will need something in-between (if we're dropping GLES 1 support, do we require shader support? or do we continue supporting everything via the software renderer).

@iryont
Copy link

iryont commented Nov 22, 2022

Also, this might be too aggressive, but I'd consider deleting PSP, Vita, PS2, and Nintendo 3DS support up front, and let them live in SDL2, and add them back to SDL3 if they want to maintain them once we've ripped everything up.

Obviously the Stadia fork is not migrating to SDL3. The other private forks will, I assume.

Do we need "android", "aaudio" and "opensles" audio targets? What is Android using at this point?

Can "jack" audio go away now that pipewire is the new hotness?

Did NetBSD ever pick up ALSA or PulseAudio, or do they really still need a bespoke /dev interface?

Agreed, about time to focus mainly on shader capable renderers. PSP, Vita, PS2 and Nintendo 3DS can live inside SDL2 branch.

@ccawley2011
Copy link
Contributor

How about riscos?

We've gotten some recent commits for this, we should reach out to the author and get their opinion.

I'm still interested in maintaining this, and would be keen to see it continue to be supported in SDL3.

If dsp can go along with all the other legacy Unix backends,

It might be wise to still keeping it, at least for some time? Isn't that still the default for freebsd guys?

If we're keeping RISC OS support, then we'll need to keep this as well.

Well, why not. Obviously I'm not experienced enough to keep supporting and
maintaining it. And since sdl3 is supposed to be more gpu-centric, there will be
no point in keeping it.

I was under the impression that the plan was to continue to support at least the Render API alongside the new GPU API, so SDL3 would in theory still be at capable of supporting the same platforms that SDL2 does. Is there anything planned that would require a major rework of the audio or video drivers?

@icculus
Copy link
Collaborator

icculus commented Nov 22, 2022

I was under the impression that the plan was to continue to support at least the Render API alongside the new GPU API, so > SDL3 would in theory still be at capable of supporting the same platforms that SDL2 does. Is there anything planned that would require a major rework of the audio or video drivers?

We're not talking about dropping things because the tech is moving on, we're talking about dropping things no one is using.

We don't have specific plans yet, but both the audio and video internal interfaces had dramatic changes between 1.2 and 2.0...basically all the existing targets got rewritten to support this. It might not be as dramatic for SDL3, but we don't know yet.

Also, major releases are a good time to trim out abandoned platforms. We did this for SDL2, as well, as things like MacOS Classic and Windows CE got ripped out. And, over time, some drifted in, like OS/2...it mostly matters if someone shows up to do the work. For example, if you like RISC OS and are willing to make sure it works occasionally, I don't mind if it stays.

@slouken
Copy link
Collaborator Author

slouken commented Nov 22, 2022

Yes, we plan to continue 2D platform support - for example we're talking about adding a software KMSDRM path. It obviously won't support the new GPU API, but that's not a requirement for SDL support, it's an optional feature for modern hardware.

The goal is to make sure that SDL 3 has a cleaned up API, and is supporting what people are actually using.

@Kontrabant
Copy link
Contributor

Kontrabant commented Nov 22, 2022

SysWM can drop support for Mir, as it's long since been abandoned/defunct and the backend video driver for it was deleted years ago.

@sezero
Copy link
Contributor

sezero commented Nov 22, 2022

SysWM can drop support for Mir, as it's long since been abandoned/defunct and the backend video driver for it was deleted years ago.

Done.

@flibitijibibo
Copy link
Collaborator

Probably worth doing a cleanup pass of the Wayland stuff for the same reason - off the top of my head we can probably clean up a ton of stuff in SysWM (i.e. old wl_shell junk) and there's probably more we can trim or clean up from the implementation as well.

@slouken
Copy link
Collaborator Author

slouken commented Nov 22, 2022

Can "jack" audio go away now that pipewire is the new hotness?

I'd say it's too early for jack to go, not every distro has even switched to PipeWire yet and Pulse+JACK setups still remain popular for pro-audio purposes. jack should eventually be removed together with pulseaudio, not earlier.

@sezero, can you put jack back?

@sezero
Copy link
Contributor

sezero commented Nov 23, 2022

Can "jack" audio go away now that pipewire is the new hotness?

I'd say it's too early for jack to go, not every distro has even switched to PipeWire yet and Pulse+JACK setups still remain popular for pro-audio purposes. jack should eventually be removed together with pulseaudio, not earlier.

@sezero, can you put jack back?

Done.

Should we make it default to disabled, or still keep it enabled?

@sezero
Copy link
Contributor

sezero commented Nov 23, 2022

Is -Wl,-framework,OpenGLES linkage needed?

I'm surprised this was ever needed, but I assume it's 100% not needed now.

Removed now.

@ccawley2011
Copy link
Contributor

Removed opengles with commit 30b1ab2:

It would be good to keep the ability for applications to create OpenGL ES 1 contexts using SDL3, even if it's not used by the Render API.

Alternatively, it might be worth splitting the opengl renderer into two renderers, one for shader-based rendering (+ GLES 2), and one for fixed-function rendering (+ GLES 1). That way, it would both be easier to continue supporting all OpenGL versions, and would avoid the need to duplicate code when adding new shader-based functionality.

@slouken
Copy link
Collaborator Author

slouken commented Nov 23, 2022

@sezero, can you put jack back?

Done.

Should we make it default to disabled, or still keep it enabled?

Let's leave it enabled.

@slouken
Copy link
Collaborator Author

slouken commented Nov 23, 2022

Removed opengles with commit 30b1ab2:

It would be good to keep the ability for applications to create OpenGL ES 1 contexts using SDL3, even if it's not used by the Render API.

Alternatively, it might be worth splitting the opengl renderer into two renderers, one for shader-based rendering (+ GLES 2), and one for fixed-function rendering (+ GLES 1). That way, it would both be easier to continue supporting all OpenGL versions, and would avoid the need to duplicate code when adding new shader-based functionality.

I don't think there's any plan to remove OpenGL ES 1 context support from the video code, but it's getting hard to verify that we haven't broken anything when looking at fixed function OpenGL vs core OpenGL with EGL vs GLX/GLW.

Splitting the renderers is what we had already done with the separate opengl, opengles, opengles2 render backends, and we just deleted opengles (1.0).

Are you talking conceptually here, or do you have specific use cases that you can use to verify functionality?

@slouken
Copy link
Collaborator Author

slouken commented Nov 23, 2022

@sezero, the intent was just to remove the opengles 2D renderer, not completely remove GLES 1 support. And thinking about it, let's hold off on removing the renderer too, for the moment. Can you back out your opengles changes?

Thanks!

@sezero
Copy link
Contributor

sezero commented Nov 23, 2022

Reverted opengles removal now.

@slouken
Copy link
Collaborator Author

slouken commented Nov 23, 2022

Reverted opengles removal now.

Thanks!

@slouken
Copy link
Collaborator Author

slouken commented Nov 23, 2022

We need to do a little more research before we pull the trigger on WinRT removal, so I added it back temporarily in a635a48.

@sezero
Copy link
Contributor

sezero commented Nov 23, 2022

We need to do a little more research before we pull the trigger on WinRT removal, so I added it back temporarily in a635a48.

#5842 stayed open for about 4 months and no one was even polite enough to say 'f... off'. Doesn't that give an implication as to how much use our WinRT code has?

@flibitijibibo
Copy link
Collaborator

Yeah, as far as I could tell FNA was the last user of UWP, and we've made it pretty clear that it's unsupported:

https://github.com/FNA-XNA/FNA/wiki/Appendix-F:-Upcoming-Support-Changes#uwp-support

@slouken
Copy link
Collaborator Author

slouken commented Nov 23, 2022

It's being used for Hololens development, apparently. I'm not permanently bringing it back, I just wanted to make sure that nobody needs it before it gets nuked, while it was still easy to revert.

@past-due
Copy link
Contributor

past-due commented Nov 23, 2022

We need to do a little more research before we pull the trigger on WinRT removal, so I added it back temporarily in a635a48.

To follow-up on this (and something that was said earlier):

While it's true that the "Windows Store no longer requires UWP", it does not mean that "you can use GDK on PC" in all of the same circumstances. The base license terms for the GDK may be incompatible with certain situations (or other licenses) that are used with apps using UWP today.

Additionally:

Additional licensing is required to obtain the Xbox Extensions to build games optimized for Xbox consoles or publish games to the Microsoft catalog for any platform.

(Source: https://github.com/microsoft/GDK/blob/Main/README.MD)

So from that standpoint, there can exist applications that may currently be able to use UWP, but that may not be able to use the GDK (due to licensing constraints / conflicts).

@sezero
Copy link
Contributor

sezero commented Nov 23, 2022

So from that standpoint, there can exist applications that may currently be able to use UWP, but that may not be able to use the GDK (due to licensing constraints / conflicts).

And they can always use SDL2, can they not?

@past-due
Copy link
Contributor

past-due commented Nov 23, 2022

And they can always use SDL2, can they not?

Certainly - I just bring it up as a data-point. (Given past headaches due to projects stuck on SDL1, not able to benefit from the numerous improvements and fixes in SDL2.)

To clarify: I'm not commenting on whether it's worth keeping the UWP platform support, given the (apparent) deprecation status and likely lack of maintainers on this end.

Just that it's not always a drop-in UWP -> GDK replacement. (At least, currently. GDK licensing could theoretically change again in the future.)

@sezero
Copy link
Contributor

sezero commented Nov 23, 2022

Just that it's not always a drop-in UWP -> GDK replacement. (At least, currently. GDK licensing could theoretically change again in the future.)

In any case, a platform support should have at least one active maintainer, where, with the WinRT case, no one seems to have volunteered. (see e.g. #5842.)

@Cacodemon345
Copy link
Contributor

Cacodemon345 commented Nov 26, 2022

To clarify: I'm not commenting on whether it's worth keeping the UWP platform support, given the (apparent) deprecation status and likely lack of maintainers on this end.They haven't really clarified the policies regarding UWP games that much to my understanding. And they still mention Xbox Live Creators Program in their System Requirements page as well as their own official site. They mentioned UWP as one of the ways to create Windows apps this year.

RetroArch is still riding the UWP horse, and so is the few UWP emulators that still exist. It's pretty clear that we will be dealing with UWP as long as it still exists as a game and emulator development platform and as long as they don't officially shut down the program or actually give us another viable method to develop games for Xbox without the chance of running into troubles with NDAs and license conflicts.

@slouken
Copy link
Collaborator Author

slouken commented Nov 30, 2022

I am able to build and test UWP code here, so in a pinch I can look at UWP issues on Windows. Given that people are actively developing and publishing with it, let's leave it as a viable SDL3 platform.

@slouken
Copy link
Collaborator Author

slouken commented Nov 30, 2022

The OpenGL ES 1.0 2D renderer has been removed.

@isage
Copy link
Contributor

isage commented Dec 2, 2022

Also, this might be too aggressive, but I'd consider deleting PSP, Vita, PS2, and Nintendo 3DS support up front, and let them live in SDL2, and add them back to SDL3 if they want to maintain them once we've ripped everything up.
Obviously the Stadia fork is not migrating to SDL3. The other private forks will, I assume.
Do we need "android", "aaudio" and "opensles" audio targets? What is Android using at this point?
Can "jack" audio go away now that pipewire is the new hotness?
Did NetBSD ever pick up ALSA or PulseAudio, or do they really still need a bespoke /dev interface?

Agreed, about time to focus mainly on shader capable renderers. PSP, Vita, PS2 and Nintendo 3DS can live inside SDL2 branch.

Vita renderer is shader-capable (you actually can't render anything at all without shaders)

@Wohlstand
Copy link
Contributor

About WinMM: there is a case at my buddies where they had ASUS Xonar sound cards and running Windows 10, the WASAPI just sucks (inconsistent volume levels, etc. That happens at their machine only, doesn't happen at others), and using DirectSound while works, it has another bug: when ANY DirectSound application client gets crashed or killed, last played audio buffer chunk will remain sound permanently and no way to get it rid without the whole reboot of the computer. So, WinMM is a saviour from that freaking bug. Also, certain users reported to me that DirectSound doesn't work at all on their machines (I don't remind which OS, possibly Windows 8 or 8.1), but WinMM worked just fine. So, I vote we should keep WinMM too as a fallback, even for modern Windows.

@elahav
Copy link

elahav commented Dec 22, 2022

I was about to submit a small fix for the QNX audio plugin when I noticed that support was removed. Can it be brought back? Last time I made a fix QNX contributed a licence to the SDL project so it can at least be built. If the licence expired I'm sure we can get a new one.

@JohnnyonFlame
Copy link
Contributor

JohnnyonFlame commented Dec 23, 2022

kmsdrm without EGL/GBM (using dumb buffers)

Doable. I have began experimenting with this as a peer requested such functionality, but went with a different route afterwards. You can find said proof of concept here. I also developed a drm+dumbbuffer backend for SDL1.2 with the folks at the OpenDingux distro which is a whole lot more mature and feature complete.

Don't treat this as a PR proposal, only posting it for reference. The code is known to have problems such as:

  • modesetting routine sucks. (It won't attempt to pick a good fourcc for the requested mode, defaulting to ARGB8888 always).
  • surface->buffer blit routine is the simplest it can be, and needs to be completely reworked.
  • A lot of ifdef's would need to be refactored.
  • maybe SDL needs a hint to prefer SW v.s. accelerated rendering on systems where we can have direct scanout?

If this is interesting to anyone, it should be fairly straightforward to pick it up from here. In such case, feel free to ping me at the SDL discord if necessary.

EDIT::
Interesting to note here too is that it's not an incredibly useful way to handle things on embedded since you have no way to point the renderer directly to the dumb buffers, having to instead rely on a shadow buffer (created by CreateWindowFramebuffer), in contrast with SDL1.2 which gave you a direct pointer to these buffers.

Maybe this is something a future version of SDL could provide?

@icculus
Copy link
Collaborator

icculus commented Jan 5, 2023

I was about to submit a small fix for the QNX audio plugin when I noticed that support was removed. Can it be brought back? Last time I made a fix QNX contributed a licence to the SDL project so it can at least be built. If the licence expired I'm sure we can get a new one.

We removed it because no one was available to maintain it (and we likely can't add it to GitHub Actions without publishing a private license key, even if we still had one that worked).

That being said, I'm 100% okay with putting QNX back in if someone checks in on the code from time to time.

@icculus
Copy link
Collaborator

icculus commented Jan 5, 2023

So there's still some desire for the GLES1 renderer...the concern isn't so much older hardware, but that it happens to work across a lot of platforms (and, in rtrussell's case, he wants to call GLES1's glLogicOp() directly, which was dropped in GLES2).

This is in regards to this thread:

https://discourse.libsdl.org/t/with-the-new-sdl3-will-be-sdl2-abandoned/41322

I'm not against finding some way to supply this that doesn't include having it in SDL3, like we did with the gesture stuff...in this specific case, they're using the SDL2 renderer API but require it to use GLES1 under the hood, so it's not a question of API compatibility, which is to say if there's a reasonable way to split it out, it doesn't really matter that they would lose access to Direct3D, Metal, GLES2, etc, because they wanted to avoid those anyhow. At least, that's my understanding.

I don't have a plan at the moment, and the easiest thing to do is just re-add the GLES1 renderer and be done with it, but I'd like to solve this for rtrussell in some form or another.

@elahav
Copy link

elahav commented Jan 5, 2023

I can certainly volunteer to maintain the QNX port, as I use SDL extensively to test the sanity of kernel changes. I was about to post a pull request to bring back the QNX code, but then noticed the change from autotools to cmake, which is going to require some work. I can't promise when I'll have something ready, but it's good to know the project is open to accepting the code.

@slouken
Copy link
Collaborator Author

slouken commented Jan 10, 2023

I'll go ahead and close this. It seems like, except for QNX support which may come back, this is a good list of platforms to clean up for SDL3.

@slouken slouken closed this as completed Jan 10, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests