SDL Introducing Async I/O APIs - Backed By IO_uring On Linux
([Linux Gaming] 6 Hours Ago
SDL3 Async I/O)
- Reference: 0001510158
- News link: https://www.phoronix.com/news/SDL3-Async-IO-APIs
- Source link:
Longtime Linux game porter Ryan Gordon has introduced initial asynchronous I/O APIs for the in-development SDL3 library. On Linux these async I/O APIs allow making use of the modern kernel [1]IO_uring functionality.
The Simple DirectMedia Library provides for many hardware/software abstractions across platforms and primarily used by cross-platform games as well as by other software. The newest addition to SDL is having a universal async I/O API. Ryan Gordon explained in the [2]pull request to upstream SDL:
"This is still in-progress, but I've been heads-down on this for awhile, so I'm putting it in a draft PR.
This implements an async i/o API, and a "generic" backend that implements it with a pool of SDL threads that can block on synchronous SDL_IOStreams. This is likely "good enough" for most things, and it's usable on everything but single-threaded Emscripten builds."
Aside from the common interface and a generic back-end implementation, for Linux there is IO_uring support underneath and on Microsoft Windows IoRing support.
See more details via the [3]discussion over introducing async I/O APIs for SDL.
[1] https://www.phoronix.com/search/IO_uring
[2] https://github.com/libsdl-org/SDL/pull/10605
[3] https://github.com/libsdl-org/SDL/pull/10605
The Simple DirectMedia Library provides for many hardware/software abstractions across platforms and primarily used by cross-platform games as well as by other software. The newest addition to SDL is having a universal async I/O API. Ryan Gordon explained in the [2]pull request to upstream SDL:
"This is still in-progress, but I've been heads-down on this for awhile, so I'm putting it in a draft PR.
This implements an async i/o API, and a "generic" backend that implements it with a pool of SDL threads that can block on synchronous SDL_IOStreams. This is likely "good enough" for most things, and it's usable on everything but single-threaded Emscripten builds."
Aside from the common interface and a generic back-end implementation, for Linux there is IO_uring support underneath and on Microsoft Windows IoRing support.
See more details via the [3]discussion over introducing async I/O APIs for SDL.
[1] https://www.phoronix.com/search/IO_uring
[2] https://github.com/libsdl-org/SDL/pull/10605
[3] https://github.com/libsdl-org/SDL/pull/10605
phoronix