Commit Graph

21686 Commits

Author SHA1 Message Date
Cameron Gutman c2d0b59f29 kmsdrm: Fix double-free of GBM surface buffer in atomic mode
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
2026-04-10 00:05:31 -05:00
Sam Lantinga 57f3d2ea0a Don't send any commands to the GPU while hidden
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
Previously we weren't doing drawing, but we were enqueuing viewport commands and so forth, which were causing GPU permission errors on iOS. We really don't want to be sending any work to the GPU when we're in the background.
2026-04-08 10:08:11 -07:00
Sam Lantinga 5c430f8715 Fixed SDL_GlobDirectory() on asset paths on Android
Make sure we pass the original path back to the directory enumeration callback.
2026-04-08 09:09:29 -07:00
Sam Lantinga 51aeebd889 testcolorspace: fixed color check when output is linear colorspace with 8-bit precision
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
2026-04-07 14:05:51 -07:00
Sam Lantinga cf71571c96 testcolorspace: use the SDL main callbacks 2026-04-07 14:05:51 -07:00
Sam Lantinga 7f23f09ee8 Fixed crash if SDL_SYS_CreateThread() fails (thanks @capehill!)
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
Fixes https://github.com/libsdl-org/SDL/issues/15340
2026-04-07 12:23:07 -07:00
Ozkan Sezer f61a22e10f SDL_hidapi_zuiki.c: silence bogus -Warray-bounds warnings from gcc-4.9
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
2026-04-07 06:45:10 +03:00
Frank Praznik b8e8caf7c5 dbus: Better handle local URI paths
Decode file URIs before trying to open them, and properly handle non-URI local paths.
2026-04-06 19:43:45 -04:00
Anonymous Maarten 928cfef4b7 ci: bump workflows 2026-04-07 01:27:33 +02:00
Anonymous Maarten d1977bbf5e cmake: emscripten/clang does not support -Wformat* (anymore) 2026-04-07 00:53:56 +02:00
cosmonaut f8b7e22d7d GPU: Fix Vulkan backend segfault 2026-04-06 14:46:33 -07:00
cosmonaut aeb4309c0e GPU: Fix memory leak in Vulkan command buffer
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
2026-04-06 10:39:46 -07:00
Frank Praznik 0a54fdb862 dbus: Use OpenFile for opening local 'file://' URIs
Per the spec, OpenURI can't open local paths, so OpenFile needs to be used instead.
2026-04-06 11:43:27 -04:00
Sascha Reuter c98b36ff03 GPU Vulkan: handle VK_ERROR_SURFACE_LOST_KHR in acquire path
On Android, backgrounding and foregrounding an app causes the Vulkan
surface to be destroyed. vkAcquireNextImageKHR returns
VK_ERROR_SURFACE_LOST_KHR, but the acquire while(true) loop only calls
RecreateSwapchain which doesn't recreate the surface, resulting in an
infinite retry loop and a black screen.

Handle VK_ERROR_SURFACE_LOST_KHR by setting both needsSurfaceRecreate
and needsSwapchainRecreate, then returning to let the existing
recreation path handle it on the next call.

Fixes #15322
2026-04-06 07:19:06 -07:00
Frank Praznik 682da4ee98 misc: Use the OpenURI D-Bus portal for opening URLs
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
This works inside of containers, and supports passing an activation token with the request, which is needed on Wayland to transfer focus to the browser.
2026-04-05 16:31:50 -04:00
SDL Wiki Bot f8feccfa46 Sync SDL3 wiki -> header
[ci skip]
2026-04-05 18:33:22 +00:00
Jesse Chounard 6f7fb0a3dc Add text input properties for on-screen keyboard customization 2026-04-05 11:31:56 -07:00
Ryan C. Gordon 1442c5a4a0 emscripten: Added more variables to PreseedEmscriptenCache.cmake.
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
2026-04-05 01:12:08 -04:00
Ryan C. Gordon 8b00b57468 filesystem: Rename a variable named "append" that is actually prepending.
(Strictly speaking, this was probably meant to be an "append" to the home/base
directory before the org/app name are appended to _that_, but it's definitely
added to the absolute start of the string on Emscripten, so might as well make
all of these match.

Reference PR #15262.
2026-04-05 01:08:07 -04:00
Sam Lantinga 19f70284ad Document that you can pass -1 to SDL_WaitEventTimeout() to wait indefinitely
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
2026-04-04 11:36:44 -07:00
Nintorch c857861815 Add support for Oklick W-2 racing wheel controller
This PR adds the proper mapping for this racing wheel controller to comply with XInput documentation (mostly to treat the pedals as the trigger axes).
2026-04-04 10:30:57 -07:00
Peter Kokot 25aa1c643f CMake: Replace CMAKE_COMPILER_IS_GNUCC with CMAKE_C_COMPILER_ID
CMAKE_COMPILER_IS_GNUCC is obsolete variable and can be replaced with
CMAKE_C_COMPILER_ID (also available since early CMake versions).

In the past CMake versions also LCC and QCC compilers had this varible
set to boolean true but these aren't relevant here.
2026-04-04 10:28:43 -07:00
Sam Lantinga fc2f4fcc22 Send SDL_EVENT_SCREEN_KEYBOARD_HIDDEN when the keyboard is hidden on Android 2026-04-04 10:07:58 -07:00
Sam Lantinga 173adc1bf6 Enable npot texture wrapping if GL_OES_texture_npot is available 2026-04-04 08:12:51 -07:00
Sam Lantinga 41c3a91079 Use the correct index for PS2 controllers
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
Closes https://github.com/libsdl-org/SDL/pull/15294
2026-04-03 16:08:36 -07:00
SDL Wiki Bot 5c8714cc95 Sync SDL3 wiki -> header
[ci skip]
2026-04-03 23:03:43 +00:00
Sanjay Govind 7f86f9107d Add support for GIP guitars via gameinput (#15301) 2026-04-03 16:02:14 -07:00
foxtacles 59602fb473 (emscripten) Add null checks for gamepad in vendor/product/xinput helpers (#15313)
navigator.getGamepads() can return null for a slot if the gamepad
disconnects between the gamepadconnected event and the proxied
MAIN_THREAD_EM_ASM_INT call. This causes a TypeError when accessing
gamepad.id. Add null guards matching the pattern already used in
EMSCRIPTEN_JoystickOpen and EMSCRIPTEN_JoystickRumble.
2026-04-03 15:07:50 -07:00
Frank Praznik 045a127572 Add CHECK_PARAM as a conditional macro in clang-format
Otherwise, it won't be treated as a conditional expression, and clang-format will automatically move the opening brace to the line below it.
2026-04-03 11:47:41 -04:00
Sam Lantinga 5ae1308e5b Use the correct source rectangle when doing scaled blits
Fixes https://github.com/libsdl-org/SDL/issues/15309
2026-04-03 01:32:09 -07:00
nilFinx f3a3b4b95a haiku: Always assume that the URL is encoded (required on nightly) (#15305) 2026-04-03 00:01:21 -07:00
Cameron Gutman 1674a04b01 kmsdrm: Add missing KMSDRM_FBFromBO() failure check 2026-04-02 22:02:18 -05:00
Christian Semmler be8643f739 emscripten: Fix navigator.getGamepads crash in worker threads
The three EM_JS functions (SDL_GetEmscriptenJoystickVendor,
SDL_GetEmscriptenJoystickProduct, SDL_IsEmscriptenJoystickXInput)
call navigator.getGamepads() which is only available on the main
browser thread. With PROXY_TO_PTHREAD, the joystick callbacks are
dispatched to a worker where the Gamepad API is not available,
causing a TypeError.

Convert these from EM_JS to static functions using
MAIN_THREAD_EM_ASM_INT, which proxies the JavaScript execution to
the main browser thread. This matches the pattern already used by
other navigator.getGamepads() calls in the same file.
2026-04-02 19:36:01 -07:00
Cameron Gutman 3c11b43e59 kmsdrm: Initialize kms_in_fence_fd to -1
Prior to this fix, we closed stdin on the first call to drm_atomic_commit().
2026-04-02 20:46:53 -05:00
Ryan C. Gordon f423a2ae34 kmsdrm: Disable atomic mouse code for now.
The rest of the atomic codepath is still enabled and usable.

This fixes missing and weird mouse cursors. We'll debug this code later on.

Reference Issue #15242.
2026-04-02 20:41:26 -04:00
Sanjay Govind c58a61fdd4 Update to GameInput V3 (#15302) 2026-04-02 17:10:42 -07:00
Sam Lantinga e21f7d77f3 Fixed unaligned 16-bit memory access
The previous code technically works on platforms with SSE2, but this fixes an ubsan warning.
2026-04-02 14:08:20 -07:00
Anonymous Maarten 03f74f3ad3 testyuv: make test params static const 2026-04-02 21:25:41 +02:00
Anonymous Maarten b77fdcc638 Disable UB sanitizer in signed shift test 2026-04-02 21:25:41 +02:00
Anonymous Maarten f7661ff016 Avoid unaligned memory access while testing SSE4.2 CRC intrinsics 2026-04-02 21:25:41 +02:00
Anonymous Maarten df72e3f59d Shifting a number into the sign bit of a signed integer is UB
Shift as a unsigned number instead.
2026-04-02 21:25:41 +02:00
Anonymous Maarten 48e80c8f26 memcpy with a NULL src/dst argument is UB
malloc of UBSAN returns NULL when allocating 0 bytes, causing a call to memcpy(NULL, xxx, 0);
2026-04-02 21:25:41 +02:00
Sam Lantinga 501ee05129 Don't strip the alpha channel when scaling surfaces if it will be needed
Fixes https://github.com/libsdl-org/SDL/issues/15297
2026-04-02 11:00:17 -07:00
Sam Lantinga 156187bf58 Added a hint "SDL_SURFACE_MALLOC" to disable aligned surface allocation
This is needed for sdl12-compat, where all surfaces were not aligned.
2026-04-02 10:30:32 -07:00
Janne Virtala b5ef75249f SDL_PrivateJoystickForceRecentering(): fix infinite loop 2026-04-02 09:27:18 -07:00
Ryan C. Gordon 32ef82caaf pipewire: Don't mark a device disconnected if pw_stream_dequeue_buffer fails.
Apparently this _can_ happen under load, or maybe some other weird condition.

Hopefully this will encourage PipeWire to fire output_callback again, and
we'll just try again later.

Reference Issue #14916.
2026-04-02 11:48:35 -04:00
Ryan C. Gordon 4d17b99d0a aaudio: Respect SDL_HINT_AUDIO_DEVICE_STREAM_ROLE hint.
Fixes #15299.
2026-04-01 22:17:23 -04:00
Sam Lantinga 6466c10ae4 Added documentation to fix building on macOS with Xcode 12.2 (thanks @buhman!)
Fixes https://github.com/libsdl-org/SDL/issues/15167
2026-04-01 16:37:14 -07:00
Sam Lantinga 8e1bdbaa92 Updated support for the GameSir Pro 8K
The latest firmware (v1.97) corrects the report frequency, and no longer reports the mute button.
2026-03-31 11:18:03 -07:00
Petar Popovic d6129d063f SDL_GlobDirectory(): Don't descend into sub-directories, if not requested by pattern 2026-03-30 16:38:39 -04:00