-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
SDL3: Make metal the default renderer on Apple platforms #11150
Comments
What about all the other platforms? Is this just a feature request to make using SDL_Render on another (single) thread a supported situation? |
I don't know if renderers that support threaded rendering are available on other plaforms or how the gpu renderer behaves on other platforms. Therefore I opened this issue only for Apple platforms. But of course there should be a thread-safe renderer default on any platform if available. |
What is the specific issue with the GPU backend? Is it just the Present operation has to happen on the main thread? For the Metal GPU backend we can dispatch that to main. |
It's this call that needs to be made on the main thread: SDL/src/render/gpu/SDL_render_gpu.c Line 1278 in 9c32238
|
These functions are called from the secondary thread:
|
Hot take: SDL_Render is absolutely not a "2024" API. If you want to live in 2024, use the GPU API directly. It has great support for multi-threading. |
Because the gpu renderer has multiple issues when used in threaded applications (#11048, #9698) I think metal should be the default renderer on all Apple platforms. The metal renderer does not suffer from these limitations. Multi-threading should work out of the box in 2024.
The text was updated successfully, but these errors were encountered: