Cameron Gutman
57418475ce
kmsdrm: Keep fd around if we can drop master
...
Modern kernels (v5.8+) allow non-root usage of drmDropMaster(), so
we can hold on to our fd after dropping master on it. This fixes
populating drm_fd in the KMSDRM SysWMinfo when using Vulkan.
Also add a missing error check for open() while we're here
2024-09-24 12:55:02 +03:00
Cameron Gutman
13f88df190
kmsdrm: Fix KMSDRM_Vulkan_CreateSurface() return value
2024-09-23 23:33:15 -05:00
Cameron Gutman
8f55f48337
kmsdrm: Move property initialization a bit further down
...
KMSDRM_GBMInit() must be called first to set drm_fd and gbm_dev.
2024-09-23 23:00:14 -05:00
Petar Popovic
004ac40226
Fix warning: no function prototype
2024-09-23 10:03:18 -07:00
Ethan Lee
4a3faf20ac
gpu: Replace high-level logs with SetError
2024-09-23 10:57:10 -04:00
mausimus
0685b96469
GPU: fix build when SDL_GPU_DISABLED is set
2024-09-23 08:09:17 -04:00
Caleb Cornett
97d1056e16
GPU: MSAA fixes ( #10917 )
2024-09-21 17:38:10 -05:00
Evan Hemsley
89c6bc5f50
Prefer Vulkan even on Windows ( #10912 )
2024-09-20 13:42:15 -07:00
Evan Hemsley
980b4ff6db
GPU: Vulkan descriptor management rewrite ( #10910 )
2024-09-20 12:55:39 -07:00
Frank Praznik
fcb8a2c016
wayland: Fix animated cursor timing
...
Adjust the frame timing so it will still advance if the frame callback fires faster than the frame duration.
2024-09-20 14:19:28 -04:00
Sam Lantinga
ea2e2e451d
Better fix for initializing Android environment variables
2024-09-20 11:09:48 -07:00
Sam Lantinga
095fb5f522
Fixed infinite recursion at startup on Android
2024-09-20 10:56:02 -07:00
T3hD0gg
594edb6bd2
Add Thrustmaster TMX VID & PID to wheel device list.
2024-09-18 22:19:54 -07:00
Sam Lantinga
34c6011360
Fixed Windows build
2024-09-18 14:55:51 -07:00
Sam Lantinga
d29a0e3f31
Fixed warning: no previous prototype for function
2024-09-18 14:34:14 -07:00
Sam Lantinga
398dff7c25
Added support for the HORI licensed Steam Controller
2024-09-18 14:08:32 -07:00
Sam Lantinga
481203c074
Fixed Xcode warnings
2024-09-18 13:20:53 -07:00
Sam Lantinga
95c3ee77c1
Removed testing code
2024-09-18 11:12:06 -07:00
Simon McVittie
23f855a970
render: Integrate fix-shaders.sh into build-shaders.sh
...
By writing the fxc and dxc output to a temporary file and then
converting that temporary file to the desired filename, we avoid
the incompatible semantics of sed -i on GNU systems (sed -i does not
create a backup filename, and does not take an argument unless it is
"bundled") and macOS (sed -i requires an argument, possibly empty).
Resolves: https://github.com/libsdl-org/SDL/issues/10878
Signed-off-by: Simon McVittie <smcv@debian.org>
2024-09-18 10:38:59 -07:00
Sam Lantinga
d658ef6627
Don't guess about the size of an int, assert it!
2024-09-18 10:37:11 -07:00
Sam Lantinga
a90ad3b0e2
Removed SDL_bool in favor of plain bool
...
We require stdbool.h in the build environment, so we might as well use the plain bool type.
If your environment doesn't have stdbool.h, this simple replacement will suffice:
typedef signed char bool;
2024-09-18 08:32:30 -07:00
Sam Lantinga
407ccadfd7
Added copyright header to edid.h
2024-09-18 08:18:26 -07:00
Sam Lantinga
bd04459cde
Fix typos (thanks @qndel!)
...
Fix typos in comments and in one case in a returned error ("insuffient -> insufficient" fb273eb )
codespell src/ *.cpp *.h *.hpp --ignore-words-list unknwn,thid,algebric,statics,pixelX,pEvents,caf,ptd,parms,pEvent,parm,TextureRS,TE,HDA,LOD,datas,UE,xwindows,IIF
cd src; git checkout \
events/imKStoUCS.* \
hidapi \
joystick/controller_type.c \
joystick/controller_type.h \
joystick/hidapi/steam/controller_constants.h \
joystick/hidapi/steam/controller_structs.h \
libm \
stdlib/SDL_malloc.c \
stdlib/SDL_qsort.c \
stdlib/SDL_strtokr.c \
video/khronos \
video/x11/edid.h \
video/x11/edid-parse.c \
video/x11/xsettings-client.* \
video/yuv2rgb
2024-09-18 08:18:26 -07:00
Sam Lantinga
03ae792df3
Fixed the recording field in audio device events
...
Fixes https://github.com/libsdl-org/SDL/issues/10885
2024-09-17 11:36:55 -07:00
Sam Lantinga
c68e9e157c
Fixed typo
2024-09-17 10:59:28 -07:00
Sam Lantinga
bc9780299c
Don't define backends if SDL_GPU_DISABLED is set
2024-09-17 09:40:29 -07:00
Sam Lantinga
807b8a9d4d
Allow initializing hints and properties from any thread
2024-09-17 08:53:27 -07:00
Sam Lantinga
d0edf68774
Added Uint32 versions of the atomic functions
2024-09-17 08:53:27 -07:00
Sam Lantinga
8d223b3037
Renamed atomic functions to match SDL 3.0 naming convention
...
This will also allow us to cleanly add atomic operations for other types in the future.
2024-09-17 08:53:27 -07:00
Sam Lantinga
f3e419596b
Removed SDL_INIT_TIMER
...
This is no longer necessary before calling SDL_AddTimer()
2024-09-17 08:53:27 -07:00
Sam Lantinga
9275c533ca
Added thread-safe initialization/cleanup support
...
Also went through and removed inappropriate uses of spinlocks.
Fixes https://github.com/libsdl-org/SDL/issues/10872
2024-09-17 08:53:27 -07:00
Sam Lantinga
7edd43c276
Don't define render_drivers if SDL_RENDER_DISABLED is set
...
Fixes https://github.com/libsdl-org/SDL/issues/10861
2024-09-17 08:46:05 -07:00
Sam Lantinga
98cd8b34a7
Close the other file descriptors after redirection has taken place
...
Fixes https://github.com/libsdl-org/SDL/issues/10868
2024-09-17 07:46:48 -07:00
Simon McVittie
4b3058d58d
render: Don't try to rebuild D3D11, D3D12, Metal shaders without spirv-cross
...
Signed-off-by: Simon McVittie <smcv@debian.org>
2024-09-17 07:43:37 -07:00
Simon McVittie
13500bbf50
render: Fix detection of fxc, dxc in build-shaders.sh
...
We want `$USE_FXC` to default to the result of evaluating the variable
`$HAVE_FXC`, not the literal string `HAVE_FXC`, and the same for dxc.
Signed-off-by: Simon McVittie <smcv@debian.org>
2024-09-17 07:43:37 -07:00
Green Sky
11129761e7
v4l2: return success if the device is ready
2024-09-17 07:41:43 -07:00
Simon McVittie
ab9c68d9ff
pipewire: Always destroy hotplug loop during deinitialization
...
We always need to destroy the hotplug loop and its associated resources
(if created) before we can deinitialize and unload the Pipewire library.
In the happy path where everything worked correctly, this means we will
call hotplug_loop_destroy() twice (once from PIPEWIRE_DeinitializeStart()
and a second time from PIPEWIRE_Deinitialize()), but that's OK, because
it's idempotent and so will do nothing the second time.
In error-handling code paths, this avoids needing to remember to call
hotplug_loop_destroy() explicitly, which should make it easier to avoid
bugs like #10787 .
Signed-off-by: Simon McVittie <smcv@collabora.com>
2024-09-17 07:35:42 -07:00
Sam Lantinga
231ea07617
Added SDL_LogTrace()
2024-09-17 02:04:54 -07:00
Sam Lantinga
6180da00e1
Skip a lock/unlock when logging known categories
2024-09-17 02:04:54 -07:00
Caleb Cornett
c499f79fe9
GPU: Fix multisample texture usage validation
2024-09-16 17:55:27 -05:00
Sam Lantinga
1bbc897e48
Updated documentation for bool return type
...
Also updated the test CRC functions to return bool.
2024-09-16 13:12:15 -07:00
Sam Lantinga
dc639956ba
Improve logging performance and make log priorities thread-safe
...
Fixes https://github.com/libsdl-org/SDL/issues/9679
2024-09-16 13:09:17 -07:00
Caleb Cornett
9416917353
GPU: Rework MSAA ( #10859 )
2024-09-16 12:19:09 -05:00
Sam Lantinga
0f85fdefc8
Fixed warning: "SDL_VIDEO_RENDER_D3D12" is not defined, evaluates to 0
2024-09-16 07:40:00 -07:00
Caleb Cornett
4f722d372a
GPU: Metal vertex buffer indices should grow upward ( #10837 )
2024-09-15 20:17:43 -05:00
Sam Lantinga
5b5b1a8926
Fixed cleaning up dependent subsystems if initialization fails
2024-09-15 11:40:31 -07:00
Sam Lantinga
97d40b9218
Removed SDL_CleanupEnvironment()
2024-09-15 10:00:21 -07:00
Sam Lantinga
28b94c4758
Re-added SDL_getenv() as a thread-safe getenv() implementation
2024-09-15 09:37:04 -07:00
Sam Lantinga
718845a33d
Fixed warning C4701: potentially uninitialized local variable 'startup_info' used
2024-09-15 09:21:04 -07:00
Sam Lantinga
19243092c6
Renamed SDL_GpuGraphicsPipelineTargetInfo to SDL_GPUGraphicsPipelineTargetInfo
...
Fixes https://github.com/libsdl-org/SDL/issues/10855
2024-09-15 07:46:26 -07:00
Sam Lantinga
604d0c519e
If posix_spawn() is available, so is sigaction
2024-09-14 22:54:18 -07:00
Sam Lantinga
ec5d280c90
Make sure we ignore SIGPIPE so we don't crash if we write when the pipe is closed
2024-09-14 22:15:18 -07:00
Sam Lantinga
34b2f4ffca
Use non-blocking pipes for process I/O on Windows
...
Fixes https://github.com/libsdl-org/SDL/issues/10846
2024-09-14 21:16:35 -07:00
Anonymous Maarten
dd07cc8991
SDL_Process: WAIT_TIMEOUT means the process has not exited yet
2024-09-14 21:16:29 -07:00
Carl Åstholm
1f3fd65c4c
cpuinfo: Rename SDL_GetCPUCount to SDL_GetNumLogicalCPUCores
...
This was the only API that broke the "GetNumThings" convention
used elsewhere, so renaming it helps with consistency.
Adding "logical cores" to the name also makes it a bit
more immediately obvious what the count actually represents.
2024-09-14 19:33:30 -07:00
Sam Lantinga
dcb2a8c2fe
Use CreateProcessW() to handle non-ASCII file paths and arguments
2024-09-14 12:27:22 -07:00
Sam Lantinga
e97f636590
SDL_PROP_PROCESS_CREATE_ENVIRONMENT_POINTER is an SDL_Environment pointer
2024-09-14 12:27:22 -07:00
Sam Lantinga
56fc4b790c
Reduce strcmp() calls in hashtable lookup
2024-09-14 11:46:40 -07:00
Sam Lantinga
e673479449
Removed SDL_WriteProcess()
...
This had the unfortunate side-effect of blocking if you tried to write too much. Instead you can use SDL_GetProcessInput() and handle SDL_IO_STATUS_NOT_READY as needed.
Fixes https://github.com/libsdl-org/SDL/issues/10834
2024-09-14 11:15:50 -07:00
Ozkan Sezer
a833ee2e63
SDL_gpu.c: fixed build when SDL_GPU_DISABLED is defined.
2024-09-14 20:40:56 +03:00
ritalat
f6f49de134
Add convenience functions to get process IOStreams
2024-09-14 10:33:29 -07:00
Sam Lantinga
7ff015ceae
Close file descriptors not used by the child process
2024-09-14 10:29:02 -07:00
Sam Lantinga
fed0149172
Switched wayland messageboxes to use the new process API
2024-09-14 10:29:02 -07:00
Sam Lantinga
aa7357a14d
SDL_CreateEnvironment() fills the environment with a non-zero parameter
2024-09-14 10:29:02 -07:00
Sam Lantinga
76c469910e
Added SDL_PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN
2024-09-14 10:29:02 -07:00
Sam Lantinga
44c6cfda05
Switched zenity dialogs to use the new process API
2024-09-14 10:29:02 -07:00
Semphriss
27862907c6
Update src/process/windows/SDL_windowsprocess.c
...
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
2024-09-13 22:15:56 -07:00
Semphriss
82b33a7d3f
Update src/process/windows/SDL_windowsprocess.c
...
Co-authored-by: Anonymous Maarten <madebr@users.noreply.github.com>
2024-09-13 22:15:56 -07:00
Semphris
3cf54675bb
Windows process: escape backslashes before quotes
2024-09-13 22:15:56 -07:00
Sam Lantinga
90e01040c5
Added thread-safe environment functions
...
Also marked the existing functions as unsafe, as they can cause crashes if used in multi-threaded applications.
As a bonus, since the new functions are hashtable based, hint environment lookups are much faster.
2024-09-13 22:14:54 -07:00
Ethan Lee
16ff7503b7
gpu: Update GPU support queries to better match naming conventions
2024-09-13 23:08:44 -04:00
Semphris
9eea8234e6
Add SDL_Process subsystem
2024-09-13 15:19:32 -07:00
Sam Lantinga
6c83491116
Added SDL_FlushIO()
...
Also added SDL_PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER and refactored the internal API to be able to create SDL_IOStream objects from native file handles.
2024-09-13 15:19:32 -07:00
Carl Åstholm
eb199176e6
stdlib: Conditionally undef some SDL_strtox tests
...
Some test cases have implementation-defined results,
so we should only test these when we know SDL's own
implementations of the functions are used.
2024-09-13 12:30:58 -07:00
Carl Åstholm
59ec034412
stdlib: Use macros to define SDL_strtox tests
2024-09-13 12:30:58 -07:00
Carl Åstholm
8092e35287
stdlib: Improve SDL_strtod
...
- Handle leading whitespace
- Handle positive sign
- Parse integer part as unsigned long long
- Handle signed zero (this also applies to printf)
2024-09-13 12:30:58 -07:00
Carl Åstholm
56a48763cd
stdlib: Bring SDL_wcstol in line with SDL_strtol
2024-09-13 12:30:58 -07:00
Carl Åstholm
61bc856b04
stdlib: Use new parser for scanf %p specifier
2024-09-13 12:30:58 -07:00
Carl Åstholm
e109aa09aa
stdlib: Rewrite SDL_strto(ll?|ul) impl
2024-09-13 12:30:58 -07:00
Carl Åstholm
fb82772fb3
stdlib: Rewrite SDL_strtoull impl
2024-09-13 12:30:58 -07:00
Carl Åstholm
88d3cb4f90
Remove unnecessary include from SDL_pen_c.h
2024-09-13 12:30:58 -07:00
Carl Åstholm
fd53b3e112
stdlib: Rewrite SDL_wcstol impl
...
SDL_wcstol should now fully adhere to the libc spec.
2024-09-13 12:30:58 -07:00
Anonymous Maarten
ee65176eec
SDL_test: add SDLTest_LogEscapedString
2024-09-13 20:52:32 +02:00
Anonymous Maarten
6a305e1532
SDL_test: fix SDLTest_CommonQuit with NULL state
2024-09-13 20:52:32 +02: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
Frank Praznik
6d92de5d3a
wayland: Ensure that a NULL internal structure isn't dereferenced when destroying a window
...
In some cases, such as when recreating a window during renderer initialization, a failure can leave the window in a state where the internal structure has already been freed, but the higher level window object needs to be destroyed separately. Check that the internal handle is valid before attempting to access any data during destruction.
Allows for graceful failure instead of a crash during cleanup if renderer creation fails.
2024-09-13 11:38:48 -04:00
Frank Praznik
9d9721cd4c
wayland: Fix some incorrect buffer scale calculations
...
Use doubles and apply an offset to account for rounding errors due to Wayland scale increments being in units of 1/120. This fixes the backbuffer size calculations with certain combinations of size/scale values, and future-proofs the Wayland backend, as 32-bit floats become increasingly error-prone with larger dimensions and/or scale factors.
The conversion formula is now point->pixel->point round trip safe as well.
2024-09-13 11:18:12 -04:00
Caleb Cornett
94436a938d
GPU: Remove unused and incorrect D16 format checks from Vulkan driver
2024-09-13 10:16:02 -05:00
Caleb Cornett
5771b502f8
GPU: Fix D3D11/D3D12 vertex strides for multiple vertex buffers ( #10818 )
2024-09-13 09:57:55 -05:00
Ethan Lee
371cfaf8fe
gpu: Implement support for SDL_GPU_DISABLED
2024-09-13 10:32:12 -04:00
Caleb Cornett
a45a2caf49
GPU: Rename VertexBinding to VertexBufferDescription ( #10811 )
2024-09-12 18:02:39 -05:00
poleonek
446ee3e7c5
Fix bug with SDL_ShowMessageBox not working with wayland ( #10810 )
2024-09-12 15:12:17 -07:00
Ryan C. Gordon
b7dc30ca24
pulseaudio: Hotplug thread fixes.
...
This used a tiny stack, which apparently upsets Blender for various
technical reasons. Instead, just use the default stack size, which should
give it plenty of space to work.
If the thread failed to create, we would then wait on a semaphore that would
never trigger, so don't do that anymore!
Fixes #10806 .
2024-09-12 17:44:14 -04:00
Ethan Lee
c36982d45c
vulkan: Avoid redundant commands for dynamic states
2024-09-12 16:51:32 -04:00
Evan Hemsley
66489f91bb
GPU: Cube Arrays ( #10800 )
...
---------
Co-authored-by: Caleb Cornett <caleb.cornett@outlook.com>
2024-09-12 13:41:46 -07:00
Ethan Lee
9ea0a837ae
vulkan: Use a spinlock instead of a mutex for descriptor pools
2024-09-12 15:23:37 -04:00
Caleb Cornett
ddd5723e2e
GPU: Remove pitch parameters from indirect draw calls ( #10803 )
2024-09-11 23:30:14 -07:00
hwsmm
3d7e8c9bb7
Add missing SDL_WPRINTF_VARARG_FUNCV in gendynapi.py
2024-09-11 21:12:26 -07:00
Petar Popovic
d03c7cdf17
Removing extra semicolons
2024-09-11 19:45:22 -07:00