Sam Lantinga
d25eff6505
Fixed bug 5429 - spinlock implements PAUSE_INSTRUCTION for PPC platforms
...
David Carlier
This form of 'or' provides a hint that performance
will probably be improved if shared resources dedicated
to the executing processor are released for use by other
processors
2021-01-02 10:06:22 -08:00
Sam Lantinga
f0b6c78733
Fixed Windows XP compatibility with recent hidapi commit
2021-01-02 09:58:08 -08:00
Sylvain Becker
3edf337d66
Simplify RenderGetViewportSize
2021-01-02 17:29:34 +01:00
Sylvain Becker
2af765da11
SDL_RenderGetViewportF: only need the size of viewport (see bug #5424 )
2021-01-02 17:18:13 +01:00
Sylvain Becker
41597249e8
SDL_RenderGetViewportF: remove debug messages
2021-01-02 16:15:22 +01:00
Sylvain Becker
8c48c4238a
Add SDL_RenderGetViewportF: fix lost of precision while scaling (see bug #5424 )
2021-01-02 16:12:30 +01:00
Sylvain Becker
c005267fb1
SDL_BlitScaled: better and safer fix clipping bug #2687
...
And re-use SDL_round(), since it's been re-added
(remove in https://hg.libsdl.org/SDL/rev/34043108b7e4 )
2021-01-02 09:38:19 +01:00
Sylvain Becker
2127ed2574
SDL_SoftStretch: add a check for input pixel format
...
and function re-naming
2021-01-02 09:28:16 +01:00
Sam Lantinga
ab55ec4850
Fix use-after-free SBH corruption due to overlapped ReadFile in hidapi not being canceled for all threads before device close
...
- hidapi already called CancelIo on hid_close but that only cancels pending IO for the current thread. Controller read/writes originate from multiple
threads (serialized, but on a different thread nonetheless) but device destruction was always done on the main device thread which left any
pending overlapped reads still running after hidapi's internal read buffer is deallocated leading to intermittent free list corruption.
2021-01-01 11:12:41 -08:00
Sam Lantinga
480c1f9fef
Make sure we're not starving report reads when there's lots of rumble
2021-01-01 11:12:36 -08:00
Sam Lantinga
223af86c62
Added SDL_RenderGetD3D11Device() to get access to the device associated with the D3D11 renderer
2021-01-01 11:12:30 -08:00
Sam Lantinga
5f0b2a7f54
Fixed resource leak with D3D11 NV12 textures
2021-01-01 11:12:22 -08:00
Manuel Alfayate Corchete
21003b7db2
[KMS/DRM] Small refactoring on the SwapWindow function.
2020-12-31 14:31:29 +01:00
Manuel Alfayate Corchete
e1fb969b76
[KMS/DRM] Correct comments about last bugfix.
2020-12-31 01:40:15 +01:00
Manuel Alfayate Corchete
e34caa9779
[KMS/DRM] Correct EGL/GL library loading on window creation, thus saving window re-creation.
2020-12-31 01:31:57 +01:00
Sylvain Becker
d81fe9239f
SDL_BlitScaled: remove un needed -1 +1 offset in calculation
2020-12-30 22:03:32 +01:00
Ozkan Sezer
8476df3e31
SDL_mixer.c: remove calls to non-existing m68k asm code.
2020-12-30 23:55:10 +03:00
Sylvain Becker
590a5469ed
Fixed bug 5424 - Renderer doesn't use entirely the viewport when scaling is used
...
Viewport/Clip dimensions are calculated usingg SDL_ceil whereas all renders use SDL_floor
2020-12-30 16:12:14 +01:00
Ozkan Sezer
8a32ee24db
removed MSVC strtok_s use from SDL_strtokr().
...
no other ??_s are used elsewhere in SDL_stdinc. besides, C11 has a
strtok_s with a different signature.
2020-12-30 01:00:24 +03:00
Sam Lantinga
0684572ccc
Added a hint to control whether the player LEDs should be lit to indicate which player is associated with a PS5 controller.
2020-12-29 12:13:10 -08:00
Sylvain Becker
80cf8a8b76
SDL_BlitScaled: also prevent crash if dest width or height is negative
2020-12-29 17:29:31 +01:00
Sylvain Becker
f08b9a5b6b
SDL_BlitScaled: prevent crash if dest width or height is 0
2020-12-29 16:02:52 +01:00
Manuel Alfayate Corchete
427c96ec11
[KMS/DRM] Rework some functions.
2020-12-29 14:24:38 +01:00
Sam Lantinga
67f0b9b86d
Fixed bug 5418 - Add system features detection for Elbrus (E2K)
...
Ivan Kuzmenko
MCST Elbrus 2000 (E2K, https://en.wikipedia.org/wiki/Elbrus_2000 ) is a russian processor architecture based on VLIW/EPIC instruction set (like Intel Itanium (IA-64) architecture). Architecture has half native / half software support of most Intel/AMD SIMD (e.g. MMX/SSE/SSE2/SSE3/SSSE3/SSE4.1/SSE4.2/AES/AVX/AVX2 & 3DNow!/SSE4a/XOP/FMA4).
It also has built-in x86/x86_64 <-> e2k binary translators (RTC, http://www.mcst.ru/rtc and Lintel, http://www.mcst.ru/lintel ) that can run code for x86/x86_64 architecture (Transmeta did something similiar with their Crusoe series) with SIMD extensions support.
Attached patch allows SDL2 to detect extensions supported by E2K like MMX, 3dNOW!, AVX etc. (test/testplatform log: https://termbin.com/7qs3 ).
2020-12-28 20:58:47 -08:00
Sam Lantinga
3cb0e840e6
Fixed bug 5422 - KMSDRM_LEGACY: Add OpenBSD support
...
wahil1976
This patch adds support for OpenBSD to KMSDRM_LEGACY. Note that the patch won't be ported to the atomic KMSDRM backend because OpenBSD does not support atomic KMS properly yet.
2020-12-28 11:47:53 -08:00
Joel Linn
8fc0baad98
Add SDL_cond implementation using Windows Condition Variables
...
Is automatically used when the SRW SDL_mutex implementation is active.
Otherwise falls back to the generic implementation.
v2: - Rebase onto master fa3ea1051a4b
2020-12-28 11:43:11 -08:00
Joel Linn
2443e51e0e
Add optional suffix _generic
to generic SDL_cond impl
...
Allows for runtime selectable implementation
2020-12-28 11:42:49 -08:00
Manuel Alfayate Corchete
7539ac8087
[KMS/DRM] Restore hacky code to point to TTY buffer on surface destruction b/c I lack alternatives.
2020-12-28 18:22:07 +01:00
Sylvain Becker
5dabc4d72f
Revert changeset 14590 544ac819e8b3 , does not fully fix
2020-12-28 18:17:25 +01:00
Sylvain Becker
9efdafd43d
SDL_RenderCopy: scale before doing intersection
...
this prevents drawing 1 pixel outside the screen, in letterbox mode
2020-12-28 18:07:03 +01:00
Manuel Alfayate Corchete
86b81abea6
[KMS/DRM_LEGACY] Prevent mouse cursor from staying onscreen after window destruction. Patch by Ozkan Sezer.
2020-12-28 16:19:19 +01:00
Manuel Alfayate Corchete
0feaf7d196
[KMS/DRM][Vulkan] Correct non-existing property. Remove hacky surface destruction code (TTY buffer isn't there after a Vulkan window is created).
2020-12-28 14:37:58 +01:00
Sylvain Becker
7186584b8d
fix indentation (bug 5313)
2020-12-28 10:41:37 +01:00
Sylvain Becker
c2735c0bb9
Better scaling fallbacks for the SW renderer (bug 5313)
2020-12-27 23:53:28 +01:00
Ozkan Sezer
a6beb2d264
SDL_PrivateLowerBlitScaled: remove unused local var 'a'
2020-12-28 01:10:02 +03:00
Sylvain Becker
30df2e4e36
Scaling fallbacks for the SW renderer (bug 5313)
2020-12-27 23:00:11 +01:00
Luca Weiss
040bd7a91b
Fix udev not detecting ID_INPUT_KEY devices when udev is not running
...
https://bugzilla.libsdl.org/show_bug.cgi?id=5308
The udev code labels devices that are found by this code with
ID_INPUT_KEY which in turn gets used by SDL to label the devices as
SDL_UDEV_DEVICE_KEYBOARD.
This was missing for the code path when udev is not running and as such
devices such as the power button of a phone was not detected as keyboard
input and no devices were emitted.
2020-12-28 00:55:28 +03:00
Sylvain Becker
f9b5f6cc0f
Forward scale mode to SW renderer (Bug 5313)
2020-12-27 20:28:24 +01:00
Manuel Alfayate Corchete
46d31d570d
[KMS/DRM][Vulkan] Fix segfault when changing fullscren mode and permanent cursor when changing between Vulkan and GL renderers in vkQuake3. Tidy up window destruction code.
2020-12-27 00:43:06 +01:00
Joel Linn
e7c479414b
Disable WaitOnAddress SDL_sem implementation on Windows Phone
...
Apps that use the required APIs do not pass certification.
2020-12-25 17:10:02 +03:00
Joel Linn
d6afc1c608
thread/windows: Statically link synchronization APIs on WINRT
...
GetModuleHandleW is not available on those platforms
---
.../WinPhone81_VS2013/SDL-WinPhone81.vcxproj | 8 ++++----
VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj | 12 ++++++------
src/thread/windows/SDL_sysmutex.c | 12 ++++++++++++
src/thread/windows/SDL_syssem.c | 11 +++++++++++
4 files changed, 33 insertions(+), 10 deletions(-)
2020-12-25 04:00:20 +03:00
Sam Lantinga
ff913a22f4
Fixed compile warnings on platforms without hidapi support
2020-12-23 16:16:55 -08:00
Sam Lantinga
047b20e3b6
Fixed compile warnings on platforms without hidapi support
2020-12-23 16:11:16 -08:00
Sam Lantinga
9838611a8b
Fixed compiler crash building for iOS with clang 11.0.3
2020-12-23 15:52:12 -08:00
Sylvain Becker
4aebad77bd
SDL_SoftStretchLowerLinear: try to make xcode buildbot compile (Bug 5313)
2020-12-23 22:50:50 +01:00
Sam Lantinga
93ccdee8c1
Fixed bug 5404 - stdlib: Added SDL_round, SDL_roundf, SDL_lround and SDL_lroundf
...
Cameron Cawley
stdlib: Added SDL_round, SDL_roundf, SDL_lround and SDL_lroundf
The default implementation is based on the one used in the Windows RT video driver.
2020-12-23 13:47:49 -08:00
Joel Linn
d0b8295c0d
Add SDL_sem implementation using Atomics and WaitOnAddress API.
...
Keep Semaphore Kernel Object impl for Windows 7 and older - choose at runtime
v2: - Fix mixed int/LONG types
- Reorder definitions
- Add missing include
v3: - Use `GetModuleHandle()` to load the API Set
2020-12-23 13:36:46 -08:00
Joel Linn
548cb90893
Add SDL_mutex implementation using Windows Slim Reader/Writer Locks Keep Critical Section impl for Windows XP/Vista - choose at runtime
...
v2: - Add SRW definitions as suggested by Ozkan Sezer
Allows building against older platform headers.
- Rename "hidden" function parameter `mutex_` to `_mutex`
v3: - Use GetModuleHandle instead of LoadLibrary
- Fix typo in comment
2020-12-23 13:33:36 -08:00
Sylvain Becker
8e20376f1a
SDL_SoftStretchLinear: use SDL_INLINE (bug 5313)
2020-12-23 22:09:01 +01:00
Sylvain Becker
7b8d5b7dc3
SDL_SoftStretchLinear: fix implicit conversion (bug 5313)
2020-12-23 22:02:28 +01:00
Ozkan Sezer
15fea33915
ran gendynapi.pl after addition of SDL_SoftStretchLinear
2020-12-23 23:47:10 +03:00
Sylvain Becker
ae8a270f61
Add SDL_SoftStretchLowerLinear() (Bug 5313)
2020-12-23 21:37:40 +01:00
Sylvain Becker
050ee9a410
Split SDL_SoftStretch in Lower and Uppler functions (Bug 5313)
2020-12-23 21:32:01 +01:00
Manuel Alfayate Corchete
09fcc9ed17
[KMS/DRM][Vulkan] Fix small warning, thanks to Ozkan Sezer for spotting it.
2020-12-23 16:45:23 +01:00
Manuel Alfayate Corchete
a6dc838d52
[KMS/DRM][Vulkan] Only try to create a display mode when no suitable mode is found.
2020-12-23 16:22:46 +01:00
Sam Lantinga
0ed4d92938
Fixed setting player LEDs for PS5 controllers over Bluetooth
2020-12-23 04:53:23 -08:00
Sam Lantinga
6341bb35a5
Fixed controller disconnect detection for PS4 and PS5 controllers over Bluetooth
2020-12-22 21:51:59 -08:00
Sam Lantinga
a30adae567
Make it possible to turn on PS4 rumble effects at runtime using the hint
2020-12-22 20:58:32 -08:00
Sam Lantinga
c93947a2cb
Make it possible to turn on PS5 rumble effects at runtime using the hint
2020-12-22 20:12:03 -08:00
Sam Lantinga
058a0ab47f
Set the pad lights on the PS5 controller corresponding to the player index
...
Also allow setting the player index from testgamecontroller using the number keys
2020-12-22 14:38:32 -08:00
Sam Lantinga
6a57072eef
Only add the touchpad and sensors to the PS5 controller if effects are enabled
2020-12-22 14:10:08 -08:00
Sam Lantinga
4ec776c334
Don't switch the PS5 controller out of DirectInput mode by default
2020-12-22 13:29:23 -08:00
Sam Lantinga
350f1b0d16
Updated SDL to version 2.0.15 for development
2020-12-22 10:36:15 -08:00
Ozkan Sezer
a19c008a7f
use GetModuleHandleW() to retrieve kernel32.dll handle (bug #5390.)
...
SDL_systhread.c and SDL_syslocale.c used to call LoadLibrary() without
calling FreeLibrary() later. GetModuleHandleW() should always succeed
because GetModuleHandleW() itself is imported from kernel32.dll and we
don't need to bother releasing it.
2020-12-22 17:10:02 +03:00
Manuel Alfayate Corchete
2fc987c28f
[Buildsystem] Add guards for not building with KMSDRM support if EGL is not available.
2020-12-22 14:15:33 +01:00
Sam Lantinga
4cd981609b
Fixed whitespace
2020-12-21 09:44:25 -08:00
Manuel Alfayate Corchete
8766d6040b
[Video/KMSDRM] Fix potetial access to freed structure and complete errorchecks.
2020-12-21 17:29:24 +01:00
Manuel Alfayate Corchete
b06ef3a18c
[Video/KMSDRM] Manually re-show the cursor on window creation, if needed.
2020-12-21 01:53:11 +01:00
Ozkan Sezer
4198f0e52c
fix uninitialized warnings in KMSDRM_CreateCursor()
2020-12-21 01:20:30 +03:00
Manuel Alfayate Corchete
a8dbcab132
[Video/KMSDRM] Don't copy the cursor bitmap to the cursor GBM BO until we're showing it.
2020-12-20 21:48:05 +01:00
Sam Lantinga
ee180efda7
Fixed bug 5406 - Upstreaming DragonFlyBSD changes from DeltaPorts (patch from David Carlier)
2020-12-20 12:08:49 -08:00
Manuel Alfayate Corchete
2756b0f337
[Video/KMSDRM] Init and deinit mouse stuff at the same time that GBM stuff.
2020-12-20 14:29:58 +01:00
Ozkan Sezer
e91153f278
fix non-ARM h/w on FreeBSD builds (bug #5405 , patch from David Carlier.)
2020-12-20 03:03:21 +03:00
Manuel Alfayate Corchete
cf71e01734
[Video/KMSDRM] Remove auxiliary AMDGPU compatibility workarounds not needed anymore.
2020-12-19 23:32:09 +01:00
Manuel Alfayate Corchete
af1f91cb36
[Video/KMSDRM] Correct typo.
2020-12-19 20:21:07 +01:00
Manuel Alfayate Corchete
cf48955680
[Video/KMSDRM] Honor the device index in Vulkan. Add notes about the display index.
2020-12-19 20:15:50 +01:00
Manuel Alfayate Corchete
ab3a390e26
[Video/KMSDRM] Better ATOMIC caps testing: patch by Oskan Sezer.
2020-12-19 17:35:04 +01:00
Manuel Alfayate Corchete
436499f3ec
[Video/KMSDRM] Comment out some debug info, adjust comments for future work.
2020-12-19 02:08:59 +01:00
Ozkan Sezer
6b81cac420
remove duplicated SDL_SetError after calling check_atomic_modesetting()
2020-12-19 01:25:50 +03:00
Manuel Alfayate Corchete
8952a61324
[Video/KMSDRM] Re-arrange display members setup.
2020-12-18 23:17:42 +01:00
Manuel Alfayate Corchete
f60f8d5d84
[Video/KMSDRM]: Add Vulkan support to the KMSDRM backend.
2020-12-18 22:53:51 +01:00
Sam Lantinga
cbe13d232d
Fixed controller hotplug detection when joystick thread is not enabled
2020-12-18 13:10:36 -08:00
Ozkan Sezer
6ac0b23d3a
SDL_DirectFB_video.c: DSPF_ABGR requires directfb >= 1.5.0 -- add guard.
2020-12-18 21:37:20 +03:00
Sam Lantinga
f0577bc9ea
ControllerList: setup the ps5 default deadzone to match PS4 instead of defaulting to same a XboxOne/Switch
2020-12-18 10:09:06 -08:00
Sam Lantinga
5f7cd1fa88
Added hints to control whether SDL updates joystick and sensor state in the main event loop
2020-12-18 10:08:59 -08:00
Ozkan Sezer
6c4ab48471
SDL_kmsdrmvideo.c: check atomic modesetting in check_modesetting()
...
.. so that KMSDRM_CreateDevice() can fail and SDL_VideoInit() would
move on to next bootstrap member which is kmsdrm_legacy. hopefully
fixes bug #5393 .
2020-12-18 17:50:02 +03:00
Sam Lantinga
6bd4c717a1
Fixed bug 5402 - ARM support little update proposal
...
David Carlier
No fix but mostly an update for ARM architecture.
2020-12-17 21:41:23 -08:00
Ozkan Sezer
10625f9d89
SDL_windowsmessagebox.c: go back to hg rev 14458 state.
...
encountering a NULL caption in AddDialogString() is intended, i.e.
AddDialogStaticIcon() sends it as NULL on purpose.
2020-12-17 23:50:00 +03:00
Ozkan Sezer
4d6eb30523
SDL_windowsmessagebox.c (AddDialogControl): add back NULL caption check.
...
because AddDialogStaticIcon() sends a NULL caption -- fixes bug #5401 .
2020-12-17 23:28:20 +03:00
Ozkan Sezer
90456670b5
more "'for' loop initial declarations are only allowed in C99 mode" fixes
2020-12-17 14:11:00 +03:00
Ozkan Sezer
ed4fcb2cfc
kmsdrm_legacy build fixes:
...
- add missing '_LEGACY' to symbol names
- perform missing 2.0.14 portage
- fix 'for' loop initial declarations are only allowed in C99 mode errors
2020-12-16 03:24:10 +03:00
Sam Lantinga
f484abbdc8
Added Android mapping for the Xbox One Series X controller over Bluetooth
2020-12-15 14:57:51 -08:00
Sam Lantinga
14f977348d
Fixed whitespace
2020-12-15 14:57:47 -08:00
Ozkan Sezer
9940e71088
Import two post-2.0.12 fixes to kmsdrm_legacy:
...
Fix build breakage without EGL:
https://hg.libsdl.org/SDL/rev/f2606fe53654e305ab9badb821d9d3afb7f92f49
Fix KMSDRM_CreateWindow segfault when starting L?VE2D engine (bug 5199)
https://hg.libsdl.org/SDL/rev/d2e69a78939463d9ff9448a5f4efd1e208bb97b0
2020-12-16 00:10:30 +03:00
Sam Lantinga
f8839289b0
Potential fix for bug 5393 - KMSDRM: using atomic mode setting breaks GPU compatibility
...
Substring
I was trying the KMSDRM video backend with some very simple programs that were working ok on 2.0.12. The same code won?t work on the current dev branch and I get:
DEBUG: check_modesetting: probing ?/dev/dri/card0?
DEBUG: /dev/dri/card0 connector, encoder and CRTC counts are: 4 5 6
DEBUG: check_modesetting: probing ?/dev/dri/card0?
DEBUG: /dev/dri/card0 connector, encoder and CRTC counts are: 4 5 6
DEBUG: KMSDRM_VideoInit()
DEBUG: Opening device /dev/dri/card0
DEBUG: Opened DRM FD (3)
DEBUG: no atomic modesetting support.
DEBUG: Video subsystem has not been initialized
INFO: Using SDL video driver: (null)
DEBUG: Video subsystem has not been initialized
After carefully checking, the radeon driver doesn?t support atomic modesetting. That?s not the only problem : the same happens with the amdgpu driver if we disable Display Core (kernel parameter amdgpu.dc=0, which is required to get analogue outputs working).
This is a major regression in the KMSDRM driver.
Using atomic mode setting is great, but having no fallback to the "standard KMS" is bad.
2020-12-15 12:22:48 -08:00
Ozkan Sezer
637d425e3e
whitespace.
2020-12-15 00:11:10 +03:00
Ethan Lee
f1c7cc710b
winrt: Buildfix for older UWP SDKs
2020-12-14 12:36:04 -05:00
Sam Lantinga
e65e4fd3ef
Fixed detecting the guide button on Xbox One S controllers over Bluetooth on Linux
2020-12-14 09:48:51 -08:00
Ethan Lee
169cfe5a7c
winrt: EffectiveLocation still needs an ifdef, IsApiContractPresent is for runtime
2020-12-14 11:52:09 -05:00
Sam Lantinga
bfffa275ef
Fixed bug 5397 - Fcitx input is truncated
...
sowfelicity
Split the long text input event into multiple shorten text input event.
2020-12-14 09:23:53 -08:00