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:
Direct Link
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
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.
first thing to do with this:
implement on godot!
someone please?
Last edited by elmapul on 24 February 2024 at 9:55 am UTC
Quoting: elmapul"a camera API"
first thing to do with this:
implement on godot!
someone please?
I don't think Godot uses SDL.
See more from me