Ethan Lee
fe8b68db60
gpu: Rank dzn above lavapipe, for WSL Vulkan support
2026-01-31 08:34:47 -05:00
Aaron Benjamin
9a91d7236a
GPU: OpenXR integration ( #14837 )
...
Based on Beyley's initial draft in #11601 .
Co-authored-by: Beyley Cardellio <ep1cm1n10n123@gmail.com >
Co-authored-by: Ethan Lee <flibitijibibo@gmail.com >
2026-01-30 17:18:51 -05:00
Ethan Lee
db9676875e
gpu: MSVC buildfix for Vulkan device property struct initialization
2026-01-30 09:40:24 -05:00
Ethan Lee
ad70aac0db
gpu: Check for Vulkan conformance while checking the device rank.
...
This should behave largely the same, except now Dozen is given a pass for WSL.
This is a better fix for #14915 .
2026-01-30 09:20:26 -05:00
Sam Lantinga
696c12826f
Reference count window claim calls for a given GPU device
...
Fixes https://github.com/libsdl-org/SDL/issues/14918
2026-01-29 14:05:00 -08:00
Ethan Lee
a4fa04f2d4
gpu: Vulkan should fail if the best device is non-conformant
2026-01-29 14:41:34 -05:00
Madeline Whitmore
97b177c92f
SDL GPU: Fix features not being enabled with Vulkan 1.1 ( #14885 )
...
Use pre-Vulkan 1.2 structs to request features from a Vulkan 1.1 instance.
2026-01-25 08:18:57 -08:00
Eddy Jansson
83fb7b6636
Prefer SDL_zero()/SDL_zerop()
...
Replace uses of 'SDL_memset(E, 0, sizeof(E))' and similar
with the SDL_zero()/SDL_zerop() macros.
2026-01-23 11:23:27 -08:00
Lucas Murray
cced3ce8b9
GPU: Add error message to Vulkan buffer creation error path
2026-01-04 15:17:53 -08:00
Sam Lantinga
5f086e7623
Updated copyright for 2026
2026-01-01 09:40:08 -08:00
Frank Praznik
cb4f33b644
gpu: Use the window event watcher list for Vulkan and D3D12
...
Events won't be delivered to the regular event watcher list callbacks if a client event filter discards events. Use the special window event watcher list to watch for resizes in the GPU renderers, as events are delivered to this list before a client can potentially discard them.
2025-12-30 22:18:19 -05:00
999pingGG
5a257202d2
GPU: Better detection of surface destruction
2025-12-21 17:16:34 -08:00
999pingGG
190b902fac
GPU: Fix Android surface and swapchain recreation on app resume ( #14676 )
2025-12-19 09:54:08 -08:00
Nuno Silva
d94cd1efad
GPU: Ensure Vulkan doesn't pass unsupported feature structures for requested vulkan version ( #14662 )
2025-12-15 17:57:49 -08:00
Evan Hemsley
1260c10aab
GPU Vulkan: Only modify surface on window claim or release ( #14659 )
2025-12-15 12:54:16 -08:00
Arnoldo Adonaí Barón Robles
e5731f9bac
GPU: Fix crash on Android upon returning from the background
2025-12-10 20:58:19 -05:00
cosmonaut
aae2f74ae6
GPU: Remove erroneous buffer usage flag from defrag process
2025-12-03 15:03:25 -08:00
Sam Lantinga
1fc093491a
vulkan gpu: set the sample count for depth prepass
...
Fixes https://github.com/libsdl-org/SDL/issues/14500
2025-11-22 07:53:16 -08:00
Ethan Lee
b2585ac236
gpu: Vulkan feature/extension lists do not need to be stored in the renderer
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
TheSniperFan
ac0f77b7e6
Allow SDL GPU to opt into additional Vulkan features ( #14204 )
2025-11-11 15:53:06 -08:00
Maia
5ec6147acb
Add missing type suffix to SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION prop
2025-11-11 10:37:27 -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.
...
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
Katelyn Gadd
9479ac039c
If VULKAN_Submit fails during VULKAN_INTERNAL_CreateTexture, destroy the texture and return NULL
2025-10-20 16:24:20 -07:00
Eddy Jansson
aaee09d6ed
Don't do NULL-checks before SDL_free()
...
Replaces the pattern
if (ptr) {
SDL_free(ptr);
}
with
SDL_free(ptr);
2025-10-20 00:13:09 -07:00
TheSniperFan
cbcb145eb4
Fix debug mode being set too late
...
-Early error messages were always being skipped
2025-10-18 08:04:11 -07:00
Ethan Lee
2135ecdfcc
gpu: Vulkan on private platforms cannot make use of oldSwapchain, destroy the full swapchain on resize
2025-10-16 15:18:07 -04:00
Sam Lantinga
2a92a3c9c5
Recreate the Vulkan GPU swap chain when resuming on Android
...
Fixes https://github.com/libsdl-org/SDL/issues/12957
2025-10-08 21:06:17 -07:00
Sam Lantinga
00ffddece8
Ignore VK_SUBOPTIMAL_KHR on the Android platform
...
This is returned whenever the device has been rotated, and can be safely ignored.
Fixes https://github.com/libsdl-org/SDL/issues/12950
2025-10-08 20:02:31 -07:00
HTuanPhong
2638537f92
Fix vulkan gpu resize lag on windows
2025-10-04 15:22:28 -07:00
Mathieu Eyraud
86da08b0be
Zero-initialize SDL_GPUDevice
2025-10-01 07:22:17 -07:00
Sam Lantinga
f61e271e11
Generalize and validate optional GPU feature properties
...
Fixes https://github.com/libsdl-org/SDL/issues/13139
Fixes https://github.com/libsdl-org/SDL/issues/13138
2025-09-29 12:42:47 -07:00
Sam Lantinga
595f7b7ed9
Revert "Fixed Vulkan validation error"
...
This reverts commit b82b1f416f .
The renderer should not be enabling depth clamping.
2025-09-29 06:08:27 -07:00
Sam Lantinga
b82b1f416f
Fixed Vulkan validation error
...
VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782(ERROR / SPEC): msgNum: -316906200 - Validation Error: [ VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782 ] | MessageID = 0xed1c6528 | vkCreateGraphicsPipelines(): pCreateInfos[0].pRasterizationState->depthClampEnable is VK_TRUE, but the depthClamp feature was not enabled. The Vulkan spec states: If the depthClamp feature is not enabled, depthClampEnable must be VK_FALSE (https://vulkan.lunarg.com/doc/view/1.3.268.0/windows/1.3-extensions/vkspec.html#VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782 )
2025-09-28 22:10:06 -07:00
ManifoldFR
8bc4e029bd
gpu/vulkan : fix clear value indexing
2025-09-16 08:45:35 -07:00
cosmonaut
9603360b7e
GPU: Allow rendering into depth texture layers and levels
2025-09-13 07:11:43 -07:00
Luis Caceres
03d0c2ad74
gpu/vulkan: Move dereference after null check
2025-09-08 12:19:53 -04:00
Ethan Lee
689049f8ec
gpu: VK_KHR_get_physical_device_properties2 can be optional
2025-09-02 09:53:01 -07:00
Jordan Saunders
265236d952
Fix two uninitialized variables
...
Found when running in valgrind looking at another issue.
- RenderPass' depth_stencil_target
Tripped in SDL_BindGPUFragmentSamplers when not binding a DS target
- VulkanCommandBuffer's swapchainRequested
Tripped in VULKAN_Submit for the end transition barrier when
creating an image. The field is only reset when reused, not on first
use
2025-08-30 06:05:22 -07:00
Jaan Soulier
0bbdd86b86
Fix device suitability checks in Vulkan GPU backend to always adhere to priority arrays
2025-08-27 05:15:24 -07:00
Wilson Jallet
03b14f5211
GPU: Fix Vulkan indexing error for resolve attachment refs ( #13768 )
2025-08-19 12:10:55 -07:00
suleyth
bad7075de8
Only add VRAM to deviceRank if asking for a high performance device, and if the device already meets all the requirements.
2025-08-17 23:17:37 -04:00
suleyth
618f85fafe
Make deviceRank an Uint64 to avoid potential overflow issues in case of future GPUs with huge VRAM
2025-08-17 23:17:37 -04:00
suleyth
c5b79e5f1b
Pick dedicated GPU with highest VRAM
2025-08-17 23:17:37 -04:00
Beyley Cardellio
e699f3dca1
GPU: Hold submit lock before waiting for device idle
2025-08-10 07:21:55 -07:00