Log

Author Commit Date CI Message
Ryan C. Gordon 3c6004fe 2020-09-10T15:07:23 kmsdrm: Choose how to swap buffers based on EGL extension availability.
Ryan C. Gordon c7e761f8 2020-09-10T15:05:55 kmsdrm: Patched to compile if EGL headers lack EGL_ANDROID_native_fence_sync.
Ryan C. Gordon 224aa45b 2020-09-10T15:04:35 kmsdrm: Implement GL_DefaultProfileConfig for Raspberry Pi compatibility. If we think this might be a Raspberry Pi device, default to ES2. Otherwise, accept SDL's higher-level defaults.
Ryan C. Gordon 092162ed 2020-09-10T15:02:51 video: Set up default before calling GL_DefaultProfileConfig(). This way, the implementation can opt to do nothing to accept SDL's defaults.
Ryan C. Gordon e758dd53 2020-09-10T15:02:00 egl: Make SDL_EGL_HasExtension() available outside of SDL_egl.c.
Manuel Alfayate Corchete 055cad49 2020-09-10T02:15:53 kmsdrm: no need to re-connect/reactivate things in SwapWindow() anymore because we use a dumb buffer on KMS buffers destruction now.
Manuel Alfayate Corchete 351219bf 2020-09-09T03:18:26 kmsdrm: On VideoQuit(), only destroy dumb buffer if it exists.
Sam Lantinga 8709f67e 2020-09-08T08:42:30 Fixed bug 5215 - Fixing filenames passed to dlopen for OpenBSD Brad Smith Attached is a patch to use the proper filenames when trying to dlopen the respective shared libraries on OpenBSD.
Manuel Alfayate Corchete 244d0ad8 2020-09-08T15:30:45 kmsdrm: Tell SDL that mouse has entered the window via artificial event. Fixes sticky mouse in Scummvm.
Manuel Alfayate Corchete 550e1533 2020-09-08T02:42:32 kmsdrm: No need to test for display driverdata when freeing a plane.
Manuel Alfayate Corchete 6e03fab9 2020-09-07T23:15:33 kmsdrm: add temporary RPI4_COMPAT define to try RPI4+current Rasbian compatibility.
Manuel Alfayate Corchete 0f807fd6 2020-09-07T22:54:15 kmsdrm: use a black dumb buffer for keeping the PRIMARY PLANE occupied when we destroy the KMS buffers, instead of using the TTY buffer, to avoid flickering.
Sylvain Becker 4d1c2a18 2020-09-07T19:00:21 Fix false compiler warning: initialize the variable 'memdiff'
Sylvain Becker ebc12a2f 2020-09-07T18:50:30 SDL_Surface refcount: destination surface keep track of surfaces that are mapped to it and automatically invalidate them when it is freed - refcount is kept so that an external application can still create a reference to SDL_Surface. - lock_data was un-used and is now renamed and used as a list keep track of the blitmap
Manuel Alfayate Corchete cce6c605 2020-09-07T01:33:04 kmsdrm: fix errors when trying to free up videomode driverdata pointers on quit.
Manuel Alfayate Corchete 9501b1c6 2020-09-07T00:18:13 kmsdrm: fix scaling for SDL_WINDOW_FULLSCREEN windows.
Manuel Alfayate Corchete daa752b1 2020-09-06T23:19:54 kmsdrm: fix first frame display: no need to wait for SwapWindow() for EGL surface creation.
Manuel Alfayate Corchete 68ac9349 2020-09-06T12:48:39 kmsdrm: more coherent returns for SwapWindow.
Manuel Alfayate Corchete d3d9d432 2020-09-06T12:17:27 kmsdrm: Remove debug printfs in SwapWindow.
Manuel Alfayate Corchete d7aebbd5 2020-09-06T12:08:22 kmsdrm: Don't create surfaces until EGL context is available.
Cameron Gutman 1b6de9a9 2020-09-05T15:01:45 Fix SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH=1 on Metal windows SDL_cocoametalview was consuming the first click rather than passing it through to the SDLView underneath which overrides [NSView acceptsFirstMouse] based on the user's SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH preference.
Sylvain Becker 97fad045 2020-09-02T19:38:03 Fixed bug 5278 - export SDL_AndroidRequestPermission() (Thanks Huki!)
Manuel Alfayate Corchete f4e02a5c 2020-08-31T19:17:17 kmsdrm: Do NOT modify window size manually from the backend: doing so caused renderer scaling params miscalculation.
Manuel Alfayate Corchete c09d1cee 2020-08-28T23:04:00 kmsdrm: Apply window reconfiguration in SetWindowSize(), too.
Manuel Alfayate Corchete 31b17945 2020-08-28T22:38:26 kmsdrm: use PLANE and CRTC to do hardware-driven window scaling and AR-correction.
Manuel Alfayate Corchete fe3f9796 2020-08-26T01:37:30 kmsdrm: unload EGL and GL lib only if using them.
Manuel Alfayate Corchete 9b43464d 2020-08-25T16:30:23 kmsdrm: Add programmer credits to the Atomic KMSDRM driver.
Manuel Alfayate Corchete 9316a8d9 2020-08-25T16:18:49 kmsdrm: move FENCE FD props setting to SwapWindow(), where it belongs.
Manuel Alfayate Corchete 3f38009b 2020-08-25T15:40:36 kmsdrm: comment out atomic commit fast-debugging printf.
Manuel Alfayate Corchete 0d16761c 2020-08-25T05:53:13 kmsdrm: fix segfault on quit beacuse of freed _this->egl_data.
Manuel Alfayate Corchete d43e666e 2020-08-25T04:05:36 kmsdrm: Buffer management refactoring. Fixes for compatibility with more video drivers.
Manuel Alfayate Corchete eade05ca 2020-08-24T12:51:20 kmsdrm: Finetune integer type usage. Add some comments.
Manuel Alfayate Corchete a76f1763 2020-08-24T01:10:11 kmsdrm: Move cursor plane setup and freeing to MouseInit() and MouseQuit(), for better consistency.
Manuel Alfayate Corchete 0d593d7e 2020-08-23T23:44:07 kmsdrm: Add error control to plane prop setting function. Do most plane prop setting with a single function.
Manuel Alfayate Corchete e06e9c35 2020-08-23T11:26:55 kmsdrm: move cursor-related atomic helper functions and related struct typedefs to the SDL_kmsdrmmouse unit.
Manuel Alfayate Corchete 0b7b7721 2020-08-23T03:13:50 kmsdrm: remove redundant function, use drm_atomic_setbuffers() for disconnecting planes instead.
Manuel Alfayate Corchete 16c04f26 2020-08-23T02:58:57 kmsdrm: Init cursor surface on SetCursor() ONLY. Removal of dynamic modeset because it causes A LOT of problems with some kernel video drivers. Some refactoring and cleanups.
Manuel Alfayate Corchete 0d0ba111 2020-08-19T01:34:56 kmsdrm: correct parameter name.
Manuel Alfayate Corchete 5d32eda9 2020-08-19T01:31:22 kmsdrm: implement smarter surface recreation function to be used in videomode changes. Other minor arrangements.
Manuel Alfayate Corchete f79da817 2020-08-18T01:52:15 kmsdrm: free all connector, crtc and plane memory on KMSDRM_VideoQuit().
Sylvain Becker 96d555e2 2020-08-17T20:09:01 Android: remove un-needed java import (bug 4297)
Sylvain Becker 965b466e 2020-08-17T19:50:20 Fixed bug 4297 - Android StrictMode policy. Remove APK expansion support "In the second half of 2021, new apps will be required to publish with the Android App Bundle on Google Play" (see https://developer.android.com/guide/app-bundle) And "Android App Bundles don't support APK expansion (*.obb) files".
Manuel Alfayate Corchete 92cb9192 2020-08-17T18:35:04 kmsdrm: move hardware cursor functionality to the ATOMIC interface. Disconnect the display plane from the GBM surface buffers before destroying the GBM surface.
Sam Lantinga 86517d3e 2020-08-10T08:42:35 Fixed bug 5242 - KMOD_* flags unnecessarily macros; breaks OGRE Rainer Deyke While most of the KMOD_* flags are enums, the combination flags KMOD_CTRL, KMOD_ALT, KMOD_SHIFT and KMOD_GUI are defined as macros. This breaks third-party code that uses these KMOD_* names for local identifiers, such as OGRE. The correct thing to do is to make them all enums.
Ryan C. Gordon a720d1a2 2020-08-09T00:55:39 render: fixes to how we convert touch events for logical scaling. We now handle HiDPI correctly, and touches are clamped to the viewport. So if you are rendering to a logical 640x480 in a 720p window, and touch the letterboxing at point (640,700), it will report the touch at (0.5,1.0) instead of outside the documented range.
Manuel Alfayate Corchete c437729b 2020-08-08T14:27:55 kmsdrm: separate requests in different functions so we only need one atomic commit for everything, as expected by atomic design.
Manuel Alfayate Corchete 3b9f1073 2020-08-07T11:53:04 kmsdrm: wait for possible pending atomic commits before destroying surfaces, and before restoring video on quit. Move messages to the SDL_Log* functions.
Manuel Alfayate Corchete 96c99693 2020-08-06T01:36:56 kmsdrm: wait for pending atomic commits before restoring videomode and crtc->buffer on VideoQuit, and simplify double-buffer SwapWindow() implementation.
Manuel Alfayate Corchete 09692b61 2020-08-05T18:55:22 kmsdrm: move videomode restoration on VideoQuit() to using the atomic interface instead of the legacy drmModeSetCrtc() function. Refactoring of get_plane_id().
Manuel Alfayate Corchete fc722b2d 2020-08-05T15:28:51 kmsdrm: free memory for plane, crtc and connector property tables on VideoQuit.
Manuel Alfayate Corchete 2d69ce08 2020-08-05T02:06:59 kmsdrm: double and triple buffered versions of SwapWindow() are now both reimplemented in atomic pageflipping versions, and can be selected via SDL_VIDEO_DOUBLE_BUFFER env variable.
Manuel Alfayate Corchete 8996ee17 2020-08-03T22:24:49 kmsdrm: update SwapWindow fn, moving it to triple-buffer.
Ryan C. Gordon ea171c05 2020-08-01T18:58:42 winrt: Another attempt at getting this to compile. IntPtr isn't a POD type like I thought, so hopefully we can just construct one that works out? C++/CX is so weird.
Manuel Alfayate Corchete b131661c 2020-08-01T18:23:34 kmsdrm: rewrite the new SwapWindow() fn to avoid tearing. Double-buffer only for now.
Ryan C. Gordon 282e4c65 2020-07-31T19:42:23 winrt: Patched to compile...? Microsoft's C++/CX is weird, no idea if this will actually fix it. :/
Manuel Alfayate Corchete 1a5503ce 2020-07-28T21:11:25 kmsdrm: Moved to the ATOMIC KMS/DRM interface for buffer swapping, leaving DRM-legacy behind.
Ryan C. Gordon e410b34f 2020-07-24T22:24:03 stdlib: Corrected implementation of SDL_wcsncmp. It was a copy/paste of SDL_strcmp, apparently, not SDL_strncmp, so it ignored the maxlen parameter. Thanks to Jack Powell for pointing this out!
Kai Krakow c3ecf18c 2020-07-21T23:38:42 Linux: Add hint for disabling deadzones
Tudor Brindus c0943328 2020-07-21T13:14:24 wayland: defer pointer confine creation until pointer unlock It is a protocol error to attempt to create a pointer confine (i.e. `SDL_SetWindowGrab`) while a locked pointer is active, and vice-versa. Instead of aborting due to a protocol error, this commit makes SDL gracefully downgrade locked pointers to confines when appropriate.
RALOVICH, Kristof c7eb557d 2020-07-20T10:09:07 kmsdrm: do not leak drmModeConnector Previously conn was leaked on the success path (when available was set to SDL_TRUE).
Manuel Alfayate Corchete 412b21b0 2020-07-20T11:42:23 Rename the gbm device struct from gbm to gbm_dev for better readabilty.
RALOVICH, Kristof 155fdc7a 2020-07-19T21:48:17 kmsdrm: settle with first card that has a connected connector Previously the first card with non-empty connectors, encoders and crtcs would be selected, however KMSDRM_VideoInit could still reject it if the connector was not connected. This allow finding the first card (in a multi GPU setup) that is actually connected to a display.
RALOVICH, Kristof b78b88f7 2020-07-19T21:46:41 kmsdrm: fix typo
Manuel Alfayate Corchete 75fe4b14 2020-07-19T19:53:57 Added comment about window creation behaviour in KMSDRM.
Manuel Alfayate Corchete 2f660c4f 2020-07-19T19:11:02 Delete windata variable no longer needed in KMSDR_SetDisplayMode().
Manuel Alfayate Corchete 3a1d7d9c 2020-07-19T19:09:15 Surfaces have to be recreated immediately from KMSDRM_SetDisplayMode().
Manuel Alfayate Corchete b6a818b6 2020-07-19T18:45:29 Fix SDL_Window recreation: drmModeSetCrtc() has to be called everytime the EGL and GBM surfaces are recreated.
Sam Lantinga 71e9df99 2020-07-19T08:55:01 Fixed bug 5231 - Fix for hardware cursor: size and alpha-premultiplication. Manuel Alfayate Corchete I noticed pt2-clone had problems with it's optional hardware mouse on the KMSDRM backend: cursor had a transparent block around it. So I was investigating and it seems that a GBM cursor needs it's pixels to be alpha-premultiplied instead of straight-alpha. A lso, I was previously relying on "manual testing" for the cursor size, but it's far better to use whatever the DRM driver recommends via drmGetCap(): any working driver should make a size recommendation via drmGetCap(), so that's what we use now. I took this decision because I found out that the AMDGPU driver reported working cursor sizes that would appear garbled on screen, and only the recommended cursor size works.
Sam Lantinga b0ca8efd 2020-07-17T22:21:37 Re-add check for Metal on x86, where it's not supported.
Ryan C. Gordon b7a4fdd3 2020-07-17T11:16:35 metal: Make sure we have a command buffer available before trying to present. This fixes a case where you render to the backbuffer, then render to a render target, set the current target back to the backbuffer, and then present without drawing anything else; in this circumstance, the Present command would never happen. Fixes Bugzilla #5011.
Ryan C. Gordon b5affd12 2020-07-16T13:28:59 Patched to compile.
Ryan C. Gordon 3b38e61a 2020-07-16T13:25:50 winrt: Fix casting a pointer to int. Fixes Bugzilla #5202.
Ryan C. Gordon 8babda2c 2020-07-16T13:18:19 egl: SDL_EGL_LoadLibaryOnly() shouldn't set _this->gl_config.driver_loaded = 1 This is handled in in the higher-level SDL_GL_LoadLibrary(). All uses of SDL_EGL_LoadLibrary (which calls the Only version) are just target-specific wrappers for their own GL_LoadLibrary hook, with two exceptions which now handle driver_loaded correctly (although it's questionable if these init-if-no-one-did-it-correctly-already code blocks should exist at all, fwiw). Fixes Bugzilla #5190.
Ryan C. Gordon af71510c 2020-07-16T04:43:08 assert: Implement SDL_TriggerBreakpoint for Apple ARM hardware.
Ryan C. Gordon 45f5eb06 2020-07-16T04:37:14 configure: On Apple platforms, only exclude Vulkan on x86. This catches both x86-64 and ARM devices.
Sam Lantinga 968b830d 2020-07-15T16:12:44 Fixed bug 5232 - SDL2 configure script detects Apple Silicon Macs as iPhones; fails to build due to missing components jackmacwindowslinux I'm testing my application that uses SDL2 on the new Apple Silicon Macs. I set up the SDL 2.0.12 source code from the website and tried to build it. The first issue I ran into was that it was always building OpenGL ES, even if --disable-video-opengles was passed to configure. OpenGL ES headers do not seem to be present on the Apple Silicon macOS SDK, except for the iOS SDK headers. Then I had problems with the joystick driver, where some classes used on iOS were not available on macOS. After looking through the configure.ac script a bit, I found that iOS targets are selected when the build host matches "arm*-apple-darwin*". Clang on macOS 11.0 on arm64 reports the host as "arm64-apple-darwin20.0.0", which matches the iOS target. This means that ARM Mac compilation will always be detected as iOS. Unfortunately, there doesn't seem to be an easy way to detect Mac vs. iOS targets, since they now both use the same triplet & compiler for building. I'm not sure what the best way to fix this is, but maybe there could be an additional target flag to specify whether to build for macOS or iOS? This might break compatibility, though: with this approach, either all old scripts that used configure to build for iOS fail, or all new builds on macOS without a flag fail (silently?).
Sam Lantinga cab1a715 2020-07-15T10:15:52 Fixed bug 5233 - PS3 Gamepad Motion Control not correctly ignored on Linux Igor Morgado PS3 Controller motion sensor string is being reported as `Gasia Co.,Ltd PS(R) Gamepad Motion Sensors` But `src/joystick/SDL_gamecontroller.c` line1690 only ignores if matches the string `Controller Motion Sensors`. ``` #if defined(__LINUX__) if (name && SDL_strstr(name, "Controller Motion Sensors")) { /* Don't treat the PS3 and PS4 motion controls as a separate game controller */ return SDL_TRUE; } #endif ``` Therefore, SDL is mapping 2 Game controllers instead one. Maybe reduce the substring to match `Motion Sensors` instead. A simple log from my application is shown below: INFO: Game controller device 0 - PS3 Controller:PS3 Controller found. INFO: Controller 0: Player 0: 054c:0268:8111 - PS3 Controller - PS3 Controller - Gasia Co.,Ltd PS(R) Gamepad INFO: Game controller device 1 - PS3 Controller:PS3 Controller found. INFO: Controller 1: Player 1: 054c:0268:8111 - PS3 Controller - PS3 Controller - Gasia Co.,Ltd PS(R) Gamepad Motion Sensors
M Stoeckl 8669a87f 2020-07-14T21:13:27 Reuse X11 connection from availability check Instead of creating an X11 connection to test that X11 is available, closing the connection, and then reconnecting for real, use the same connection to handle both cases. The X11 connection retry delay mechanism in the case where X11 is dynamically loaded has been removed. It was only necessary to avoid authetnication token reuse from the XOpenDisplay call that used to exist in X11_Available. Now that this call is only made once, it is no longer needed. Also drop unused and inapplicable code from a comment. ***
M Stoeckl a78b9763 2020-07-14T19:18:16 Reuse Wayland connection from availability check
M Stoeckl 052a1373 2020-07-12T19:11:15 Merge VideoBootStrap::available into VideoBootStrap::create The two are only ever called together, and combining them makes it possible to eliminate redundant symbol loading and redundant attempts to connect to a display server.
Ozkan Sezer 49ec6558 2020-07-11T08:10:02 fix bug #5228 -- Add AltiVec detection for FreeBSD. thanks Piotr Kubaj.
stfx b1626295 2020-07-08T17:28:34 cmake: Fix building with -DSDL_HAPTIC=Off
Ozkan Sezer fe97f01b 2020-07-05T22:33:10 configure: corretly print --enable-arm-simd default value.
Ryan C. Gordon 6aec6da4 2020-06-28T17:45:07 stdinc: Let Clang static analysis see more C runtime functions. For systems without strlcpy and strlcat, just declare them as if they exist; the analyzer possibly still knows the details of these functions and can utilize that in its analysis. Most of this patch was from meyraud705 at gmail and Martin Gerhardy. Thanks! Fixes Bugzilla #5163.
Ryan C. Gordon 0e98040d 2020-06-28T16:23:05 joystick: Linux joysticks now recover better from dropped events. Fixes Bugzilla #4830.
Sylvain Beucler e594a673 2020-06-27T16:25:47 emscripten: Introduce SDL_HINT_EMSCRIPTEN_ASYNCIFY See https://github.com/emscripten-core/emscripten/issues/10746 and https://github.com/emscripten-ports/SDL2/pull/112 Fixes Bugzilla #4997.
Sylvain Beucler 01af7b02 2020-06-27T16:22:50 emscripten: support pseudo-synchronous screen refresh and events update using asyncify
Ryan C. Gordon 3b71ebec 2020-06-27T02:38:13 configure: Accidentally deleted a ')' Sorry!
Ryan C. Gordon e294639a 2020-06-27T02:00:58 cmake: Fix Metal detection on macOS/iOS. Apparently the "-x objective-c" made it down to the linker, who then treats the .o file as Objective-C source code. Apparently the -ObjC argument does the same thing but gets ignored by the linker. Fixes Bugzilla #4988.
Ryan C. Gordon 363fd52b 2020-06-26T23:30:59 configure/cmake: Disable ARM SIMD and NEON by default. It's buggy at the moment.
Ryan C. Gordon 694fea8a 2020-06-26T21:37:29 video: Make SDL_CreateWindow use SDL_Init(SDL_INIT_VIDEO), not SDL_VideoInit. Otherwise, the video subsystem won't deinitialize during SDL_Quit(). Fixes Bugzilla #5067.
Ryan C. Gordon 50fd0dd1 2020-06-26T21:35:54 test: testspriteminimal wasn't calling SDL_Quit() on exit.
Ryan C. Gordon 1947ca70 2020-06-26T20:16:43 video: Changed SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS to default to FALSE. Fixes Bugzilla #5106. (and probably many others, too!)
Ryan C. Gordon 21482c15 2020-06-26T20:11:32 cmake: Bump minimum required CMake to 3.0.0 and mark link libraries PRIVATE. Fixes Bugzilla #2992.
Ryan C. Gordon d955d63b 2020-06-26T17:42:30 cmake: Build Linux-specific files like the configure script does. Otherwise we unconditionally compile things we shouldn't. Fixes Bugzilla #5175.
stfx 718e1fb8 2020-06-26T22:45:15 cmake: Fix building with -DSDL_SENSOR=Off
Ryan C. Gordon dd753ce7 2020-06-26T15:04:57 cmake: Fix building with -DSDL_POWER=Off Fixes Bugzilla #5193.
Sam Lantinga ce293eed 2020-06-23T10:12:24 Fixed bug 5208 - Fix libGL loading on OpenBSD
Sam Lantinga c2b85305 2020-06-23T10:09:29 Fixed bug 5209 - cpuinfo recognize OpenBSD ARM Brad Smith OpenBSD/arm only supports ARMv7 and and not any CPUs that do not support NEON.
Ozkan Sezer 4ba0a847 2020-06-22T23:24:02 core/linux/SDL_threadprio.c: fix build against older glibc versions