Ethan Lee
96b5c92780
render: D3D12 Xbox does not have COMPARISON_FUNC_NONE yet
2025-12-06 16:10:35 -05:00
Ethan Lee
b74ba6298c
Xbox buildfix for IsWindowsBuildVersionAtLeast
2025-12-06 15:34:17 -05:00
Ethan Lee
dedab7b72c
cocoa: Add SDL_HINT_MAC_PRESS_AND_HOLD hint
2025-12-02 10:24:39 -05:00
Ethan Lee
54ef731534
video: Explicitly call DestroyWindowTexture when destroying a window.
...
This prevents some recursion issues with hashtables, as described in #14499 .
2025-11-24 01:25:19 -05:00
Ethan Lee
9dbde4542c
gpu: Windows 11 guarantees a D3D12 minimum, skip checks accordingly
2025-11-12 16:22:35 -05:00
Ethan Lee
702a1adf4a
windows: Add WIN_IsWindows11OrGreater, using a dwBuildNumber helper function
2025-11-12 16:22:35 -05:00
Ethan Lee
04a62cba1f
gpu: Set up D3D12 device checks to avoid unnecessary queries
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
2025-11-12 11:19:07 -05:00
Ethan Lee
b2585ac236
gpu: Vulkan feature/extension lists do not need to be stored in the renderer
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
2025-11-11 21:24:45 -05:00
Ethan Lee
536507101d
gpu: De-duplicate property enumeration for Vulkan features
2025-11-11 20:58:14 -05:00
Ethan Lee
b5624e14ff
gpu: Add SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION property
2025-11-10 20:20:05 -05:00
Ethan Lee
0b2073d143
gpu: Remove dead code in the Vulkan device ranking system.
...
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
This block was a sloppy way of trying to avoid prioritizing lavapipe over another device, but truthfully the only way to guarantee avoiding CPU drivers is to add a property to allow apps to require hardware acceleration.
2025-11-10 18:16:54 -05:00
Ethan Lee
1b79ba9ab6
gpu: Separate device suitability from device rank when enumerating Vulkan devices.
...
This makes it a bit clearer what the "minimum" is vs. the "best", which should be two separate queries.
2025-11-10 18:16:54 -05:00
Ethan Lee
6976b57988
gpu: Move device ranking to the bottom of IsDeviceSuitable.
...
This prevents devices without presentation/graphics support from getting ranked.
2025-11-10 18:16:54 -05:00
Ethan Lee
799c6aa629
gpu: Move device ranking to a standalone function.
...
This allows us to treat Dozen as an "other" driver, rather than blacklisting it outright.
2025-11-10 18:16:54 -05:00
Ethan Lee
0cc2b026e7
gpu: Check for MSFT_layered_driver, skip layered drivers during enumeration
2025-11-10 18:16:54 -05:00
Ethan Lee
2135ecdfcc
gpu: Vulkan on private platforms cannot make use of oldSwapchain, destroy the full swapchain on resize
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
2025-10-16 15:18:07 -04:00
Ethan Lee
4ee79e6493
filesystem: GetCurrentDirectory now falls back to GetBasePath when unsupported
2025-09-18 14:49:03 -04:00
Ethan Lee
c5749f0ae7
video: Xbox buildfix for DeclareDPIAwareSystem
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
2025-09-09 16:35:18 -04:00
Ethan Lee
5591d4b1a8
gpu: Note hardware supported by Tier 1 Resource Binding
2025-09-08 11:19:20 -07:00
Ethan Lee
cbe4970946
gpu: Add D3D12_ALLOW_FEWER_RESOURCE_SLOTS_BOOLEAN property
2025-09-08 11:19:20 -07:00
Ethan Lee
689049f8ec
gpu: VK_KHR_get_physical_device_properties2 can be optional
2025-09-02 09:53:01 -07:00
Ethan Lee
a798da2ec7
hidapi: Add support for NSO GameCube controller via libusb.
...
Thanks to Nohzockt for the initial libusb init and hidapi polling work!
2025-08-28 09:10:47 -07:00
Ethan Lee
efea62ed61
hidapi: Add a stub driver for Switch 2.
...
Thanks to kiddkaffeine for the Xcode updates!
2025-08-28 09:10:47 -07:00
Ethan Lee
0fcaf47658
gpu: D3D12 only requires feature level 11_0 with Resource Binding Tier 2.
...
Build (All) / Create test plan (push) Has been cancelled
Build (All) / level1 (push) Has been cancelled
Build (All) / level2 (push) Has been cancelled
We previously thought this wasn't possible because constant buffer offsets and
partial updates were unavailable, but we were reading the wrong table - this is
only the case for D3D11...
https://learn.microsoft.com/en-us/windows/win32/direct3d11/overviews-direct3d-11-devices-downlevel-intro
... while 12 doesn't list this feature at all:
https://learn.microsoft.com/en-us/windows/win32/direct3d12/hardware-feature-levels
We double checked and Jesse Natalie confirmed that this feature is required for
D3D12 even for 11_0 drivers. (Thanks Jesse!)
Additionally, D3D12 requires that UAVs are accessible from all shader stages,
meaning Tier 2 is enough to support the number of UAVs we need. Tier 1 could be
a property to lower the requirements, but that can be done later.
2025-08-22 15:46:05 -04:00
Ethan Lee
d86fb8a83a
gdk: Ignore focus loss events caused by text input showing the OSK
2025-06-04 09:40:33 -04:00
Ethan Lee
db972604a8
gpu: Xbox buildfix
2025-05-27 12:41:27 -04:00
Ethan Lee
510126ee63
gpu: Check shader format support in PrepareDriver
2025-05-19 08:20:33 -07:00
Ethan Lee
ad55597715
ci: Update Steam Linux Runtime tasks.
...
- Use "3.0" instead of "Sniper"
- Use "steamrt3" instead of "slrsniper"
- Use latest instead of beta for x86_64
2025-05-08 10:24:35 -07:00
Ethan Lee
36c3a7a5e2
ci: Add slrsniper-arm64 task
2025-05-08 10:24:35 -07:00
Ethan Lee
5283f73748
storage: Declare a private bootstrap for NDA user storage
2025-03-18 22:12:21 -04:00
Ethan Lee
db817a37f4
gpu: Fix forward declaration and inclusion of PrivateGPUDriver
2025-02-24 15:46:39 -05:00
Ethan Lee
326ce9bb8d
gpu: D3D12 buildfix for Xbox
2025-01-16 12:19:59 -05:00
Ethan Lee
c95b842b30
video: Xbox does not use CreateIconFromSurface
2025-01-16 12:19:46 -05:00
Ethan Lee
3df0767e34
gpu: Initialize Metal stencil format even if stencil test is disabled
2025-01-12 13:05:27 -08:00
Ethan Lee
90aff306c1
gpu: Show a debug error when pipelines are not given the right shader stages
2025-01-09 20:17:21 -05:00
Ethan Lee
6cdde10edb
gpu: Metal depth write should behave like Vulkan/D3D12
2025-01-09 15:28:26 -05:00
Ethan Lee
7acf78ba92
storage: Trim the title storage root from enumerated paths
2025-01-09 13:50:52 -05:00
Ethan Lee
65e0fed5b3
gpu: Document why VertexID/InstanceID builtins are unreliable
2024-12-31 17:56:02 -05:00
Ethan Lee
3cd3c9317e
storage: Add error messages when ReadIO/WriteIO lengths mismatch
2024-12-31 12:34:12 -05:00
Ethan Lee
cd1bd0ac2e
storage: Remove an outdated FIXME.
...
Woops ended up doing GPU stuff instead, maybe after 3.2!
2024-12-31 10:46:42 -05:00
Ethan Lee
7e8576fd19
gpu: Xbox fixes for swapchain presentation
2024-12-20 14:56:33 -05:00
Ethan Lee
f7580374a1
include: Always declare SDL_GDKSuspendComplete.
...
This is always defined in the symbol table and the function safely does nothing
on non-GDK targets, so treat it like any other SDL_system function.
2024-12-20 13:14:55 -05:00
Ethan Lee
a0864799f2
GDK: Fix compile_shaders_xbox.bat build events
2024-12-20 00:57:25 -05:00
Ethan Lee
5d9ccb6296
gpu: Add explicit casts to D3D12 staging descriptor changes
2024-12-20 00:56:48 -05:00
Ethan Lee
e992522cb2
Xbox buildfixes for WarpCursor jitter fix, dark mode
2024-12-20 00:55:54 -05:00
Ethan Lee
9628549c7c
Xbox buildfixes
2024-12-13 11:34:39 -05:00
Ethan Lee
5c5235fb51
ci: Add Steam Linux Runtime (Sniper) task
2024-10-28 17:07:31 -04:00
Ethan Lee
a0de6c4abf
Add properties to SDL_IOStreams returned by IOFromMem
2024-10-02 22:09:09 -07:00
Ethan Lee
0852307b58
gpu: Check Vulkan device features for IsDeviceSuitable
2024-09-27 19:58:30 -04:00
Ethan Lee
4a3faf20ac
gpu: Replace high-level logs with SetError
2024-09-23 10:57:10 -04:00
Ethan Lee
16ff7503b7
gpu: Update GPU support queries to better match naming conventions
2024-09-13 23:08:44 -04:00
Ethan Lee
0160e9eac6
gpu: Add SDL_QueryGPUSupport
2024-09-13 13:42:07 -04:00
Ethan Lee
96e147b2b9
gpu: Rework driver name queries, add GetGPUShaderFormats
2024-09-13 12:29:40 -04:00
Ethan Lee
371cfaf8fe
gpu: Implement support for SDL_GPU_DISABLED
2024-09-13 10:32:12 -04:00
Ethan Lee
c36982d45c
vulkan: Avoid redundant commands for dynamic states
2024-09-12 16:51:32 -04:00
Ethan Lee
9ea0a837ae
vulkan: Use a spinlock instead of a mutex for descriptor pools
2024-09-12 15:23:37 -04:00
Ethan Lee
9ab140fad8
offscreen: Fix bogus surface pointer assignment
2024-08-28 21:31:24 -04:00
Ethan Lee
15bfef57cd
d3d12: Generate Xbox C macros, adjust SDL_Render files accordingly
2024-08-06 16:05:10 -04:00
Ethan Lee
4bea89e945
Xbox buildfixes
2024-08-04 15:54:22 -04:00
Ethan Lee
efefc4a1f3
d3d12: Move platform-specific includes/defines to SDL_d3d12.h
2024-07-31 23:34:31 -07:00
Ethan Lee
55e9a8ca45
d3d12: Import DirectX-Headers, use local d3d12.h in SDL_render.
...
This avoids lots of build issues with the various D3D12 headers out there (MinGW, old Windows SDKs, etc) and also opens the door for WSL2 libd3d12.so support.
Note that the build system has not been changed; technically _all_ platforms now have d3d12.h but we should only enable the backend when it's actually expected to work.
2024-07-31 18:41:17 -07:00
Ethan Lee
180b4d7e74
x11: Fix a bogus return in Vulkan_GetPresentationSupport
2024-07-11 21:50:37 -04:00
Ethan Lee
8d24bb8dfc
video: Added parameter checks to SDL_Vulkan_GetPresentationSupport
2024-07-11 15:00:59 -04:00
Ethan Lee
5d506a53a6
testvulkan: Add call to SDL_Vulkan_GetPresentationSupport
2024-07-11 15:00:59 -04:00
Ethan Lee
1993ef664e
Add SDL_Vulkan_GetPresentationSupport
2024-07-11 15:00:59 -04:00
Ethan Lee
7327fd734c
macOS: Do not use the system iconv by default.
...
macOS 14 changes the iconv implementation which causes things to break, so we may as well match macOS with all the other platforms now.
2024-05-02 17:42:36 -07:00
Ethan Lee
26b71d14e9
storage: Static analysis fix
2024-04-25 19:40:07 -04:00
Ethan Lee
744227e6ab
Add SDL_storage
2024-03-16 07:19:50 -07:00
Ethan Lee
6f8a6a31ca
gdk: GetBasePath should be a UTF8 version of Win32 GetBasePath
2023-08-25 10:47:16 -04:00
Ethan Lee
c0cd8c8142
gdk: Add SDL_GDKGetDefaultUser, SDL_GetPrefPath implementation
2023-08-25 10:40:16 -04:00
Ethan Lee
181d5d285a
hidapi: Enable libusb support by default.
...
Now that we have a whitelisting system for libusb devices, it should be safe to support it whenever it's available.
2023-08-13 14:16:11 -07:00
Ethan Lee
f0f15e365d
hidapi: Use a whitelist for libusb when other backends are available
2023-08-13 14:16:11 -07:00
Ethan Lee and Frank Praznik
3ac48053bc
wayland: Minor whitespace cleanup
...
Co-authored-by: Frank Praznik <frank.praznik@gmail.com >
2023-04-05 08:58:12 -04:00
Ethan Lee
f9f7db4e08
video: Prefer Wayland over X11 (take 2!)
2022-11-29 16:35:36 -05:00
Ethan Lee
ecc4b8773c
wasapi: Removed WinRT PrivateAudioData members
2022-11-22 17:12:56 -05:00
Ethan Lee
57458588ee
wasapi: Merge wasapi_win32.c into wasapi.c
2022-11-22 16:46:12 -05:00
Ethan Lee
f3cc99fb93
x11: Minor style fixes for recent OSK changes
2022-11-15 13:56:44 -05:00
Ethan Lee
c4b9f62164
x11: Add support for the Steam Deck on-screen keyboard
2022-11-13 11:02:27 -08:00
Ethan Lee and David Edmundson
571ff1a3a9
wayland: Prepare cursor implementation for reconnect support
...
Co-authored-by: David Edmundson <kde@davidedmundson.co.uk >
2022-10-30 00:19:09 -04:00
Ethan Lee and David Edmundson
9c8b1fd8b6
wayland: Cleanup work to aid reconnect support
...
Co-authored-by: David Edmundson <kde@davidedmundson.co.uk >
2022-10-29 22:41:42 -04:00
Ethan Lee
be2cb00066
wayland: Check for the input handle before checking the keyboard handle
2022-10-11 11:16:52 -04:00
Ethan Lee
0d6c4ff622
testaudioinfo: Initialize deviceName unconditionally
2022-09-29 11:36:07 -04:00
Ethan Lee
1ea1a90edb
testaudioinfo: Also test SDL_GetAudioDeviceSpec
2022-09-29 10:41:40 -04:00
Ethan Lee
a28f426acb
render: Only update size/scale/viewport when moving to a new display, rather than all window movement.
...
We really only care about DPI changes here, so this both reduces work and also avoids weird cases where viewport state can be corrupted by trivial window events. This doesn't _completely_ get rid of the issue but this is somewhat intentional, since apps will definitely want to do a full reset when changing displays anyhow (otherwise DPI/adapter changes will screw things up, and that's out of our control as long as both window size and drawable size are exposed at the same time.
Note that OpenGL still captures window events because of weird platform-specific issues like macOS and viewport stretching!
Fixes #5949
2022-08-12 16:13:24 -04:00
Ethan Lee
a33b5449ff
WhatsNew.txt: Added audio channel support changes
2022-07-20 19:11:42 -04:00
Ethan Lee
f3008e4aab
audio: 3- and 5-channel formats are now supported
2022-07-20 19:08:31 -04:00
Ethan Lee
90b86b132a
audio: Handle non-power-of-two spec.samples when unsupported
...
Fixes #3685
2022-07-17 10:36:15 -04:00
Ethan Lee
cdf9010a19
Added new audio features to WhatsNew.txt
2022-07-16 12:39:30 -04:00
Ethan Lee
a09d62e4d8
directsound: Remove redundant SubFormat copy
2022-07-15 23:45:56 -04:00
Ethan Lee
c5e408ae98
directsound: For channel counts > 2, generate a dwChannelMask for CreateSoundBuffer
2022-07-15 13:59:46 -04:00
Ethan Lee
fff34f6304
windows: SDL_IMMDevice needed more deinit code from the Win32 path.
...
Fixes #5919
2022-07-15 09:49:29 -04:00
Ethan Lee
ecfbdce64b
pipewire: Require version 0.3.24 or newer at runtime
2022-07-11 13:34:35 -04:00
Ethan Lee and Frank Praznik
2f0816adb7
Add SDL_GetDefaultAudioInfo.
...
This API is supported on pipewire, pulseaudio, wasapi, and directsound.
Co-authored-by: Frank Praznik <frank.praznik@gmail.com >
2022-07-11 13:34:35 -04:00
Ethan Lee
15d0618083
SDL_IMMDevice: Fix a WASAPI-specific leak, clean up Add()
2022-07-11 12:54:34 -04:00
Ethan Lee
ae105ae1c7
windows: Move IMMDevice work to common file, implement DirectSound enumeration support
2022-07-11 12:54:34 -04:00
Ethan Lee
964e979d06
hidapi: Allow disabling libusb support at runtime
2022-05-30 13:45:24 -07:00
Ethan Lee
e4bb3c8649
wayland: Fix build for configs without libdecor
2022-05-11 18:13:44 -04:00
Ethan Lee
6222bd3143
wayland: Don't create a new libdecor context if one already exists
2022-05-11 16:26:43 -04:00
Ethan Lee
6f88cbe4c9
wayland: Support xdg_decoration requesting client-side decorations.
...
Don't be fooled by the diff size - this ended up being a big refactor of the
shell surface management, masked only by some helper macros I wrote for the
popup support.
This change makes it so when xdg_decoration is supported, but CSD is requested,
the system bails on xdg support entirely and resets all the windows to use
libdecor instead. This transition isn't pretty, but once it's done it will be
smooth if decorations are an OS toggle since libdecor will take things from
there.
In hindsight, we really should have designed libdecor to be passed a toplevel,
having it manage that for us keeps causing major refactors for _every_ change.
2022-05-11 13:13:59 -07:00
Ethan Lee
c37090f9a4
wayland: Add support for TOOLTIP/POPUP_MENU
2022-04-18 12:31:02 -04:00