We do often include affiliate links to earn us some pennies. See more here.

With development work ongoing for SDL3, some recent exciting improvements include a Vulkan Render backend and a camera API.

What is SDL? Simple DirectMedia Layer is an open source cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, graphics hardware and more. It's popular and used by quite a lot of games, even Valve use it. See more on the official site.

SDL3 is going to be a pretty big release and just recently Valve developer Dan Ginsburg had their Vulkan Renderer merged into the project. From the pull request:

This pull request adds an implementation of a Vulkan Render backend to SDL. I have so far tested this primarily on Windows, but also smoke tested on Linux and macOS (MoltenVK). I have not tried it yet on Android, but it should be usable there as well (sans any bugs I missed). This began as a port of the SDL Direct3D12 Renderer, which is the closest thing to Vulkan as existed in the SDL codebase. The shaders are more or less identical (with the only differences being in descriptor bindings vs root descriptors). The shaders are built using the HLSL frontend of glslang.

Everything in the code is pure Vulkan 1.0 (no extensions), with the exception of HDR support which requires the Vulkan instance extension VK_EXT_swapchain_colorspace. The code could have been simplified considerably if I used dynamic rendering, push descriptors, extended dynamic state, and other modern Vulkan-isms, but I felt it was more important to make the code as vanilla Vulkan as possible so that it would run on any Vulkan implementation.

On top of that developer Ryan Gordon also posted on Patreon about the new camera API, which enables SDL3 to access cameras across many platforms and a quick rough video was shown of it in action on Linux below:

YouTube Thumbnail
YouTube videos require cookies, you must accept their cookies to view. View cookie preferences.
Accept Cookies & Show   Direct Link
Article taken from GamingOnLinux.com.
26 Likes
About the author -
author picture
I am the owner of GamingOnLinux. After discovering Linux back in the days of Mandrake in 2003, I constantly checked on the progress of Linux until Ubuntu appeared on the scene and it helped me to really love it. You can reach me easily by emailing GamingOnLinux directly.
See more from me
6 comments

Pyretic Feb 23
This is really cool! I keep forgetting about SDL3 because it seems like everyone is really happy with SDL2 right now. May I ask what the big developments with SDL3 are right now?
Shmerl Feb 23
Can someone explain please what does rendering backend mean for SDL? SDL has some abstraction over graphics API?

I thought it's primarily useful for abstracting stuff like WSL / windowing integration and input and such.


Last edited by Shmerl on 23 February 2024 at 5:37 pm UTC
nlborlcl Feb 23
View PC info
  • Supporter Plus
Quoting: ShmerlCan someone explain please what does rendering backend mean for SDL? SDL has some abstraction over graphics API?

I thought it's primarily useful for abstracting stuff like WSL / windowing integration and input and such.

SDL has had the ability to talk to Vulkan since 2.0.6, five years ago, https://discourse.libsdl.org/t/sdl-2-0-6-released/23109 . I believe this means when you say to SDL, "hey go draw this" (not through OpenGL or Vulkan directly), it can use Vulkan if it wants. Usually those rendering APIs that come in the windowing APIs are... on the simple side. https://wiki.libsdl.org/SDL2/SDL_Renderer , so I can't them having the hundreds and hundreds of possible commands of OpenGL or Vulkan.
elmapul Feb 24
"a camera API"
first thing to do with this:
implement on godot!
someone please?


Last edited by elmapul on 24 February 2024 at 9:55 am UTC
Pyretic Feb 24
Quoting: elmapul"a camera API"
first thing to do with this:
implement on godot!
someone please?

I don't think Godot uses SDL.
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.