Mathieu Eyraud
8481229ff7
Fix error handling in KMSDRM_AddDisplay
...
Add missing `goto cleanup` and check that `dispdata` is not NULL before dereferencing it.
2021-02-22 09:01:36 -08:00
Mathieu Eyraud
2df9c15e96
Fix memory leak in KMSDRM_Vulkan_CreateSurface
...
Variable `device_props` is never freed.
2021-02-22 09:00:45 -08:00
Vanfanel
11cb53d2a5
[KMSDRM] Add missing break and modify comments.
2021-02-21 15:27:12 -08:00
Vanfanel
9172e413ad
[KMSDRM] Fix intermitent bug in Vulkan initialization on Raspberry Pi 4.
2021-02-21 15:27:12 -08:00
Vanfanel
e4a81a98a0
[KMSDRM] Correct indentation.
2021-02-17 17:03:42 +03:00
Manuel Alfayate Corchete
005e2c59a7
[KMS/DRM] Bugfix number #5535 : Improve reliability, by wahil1976.
2021-02-10 10:22:20 -05:00
Manuel Alfayate Corchete
19fa85d8af
[KMS/DRM] Fix build warning.
2021-02-10 10:22:19 -05:00
Manuel Alfayate Corchete
6ee53258cd
[KMS/DRM] Replace indent tabs with spaces, as intended.
2021-02-10 10:22:19 -05:00
Manuel Alfayate Corchete
59cd46c24a
[KMS/DRM] Merge patch for bug #5532 : No need to correct cursor position now that all windows are fullscreen. Link: https://bugzilla.libsdl.org/show_bug.cgi?id=5519 .
2021-02-10 10:22:19 -05:00
Manuel Alfayate Corchete
538f7ad6b7
[KMS/DRM] Remove redundant SDL_SendWindowEvent() call.
2021-02-10 10:22:19 -05:00
Manuel Alfayate Corchete
7beba05013
[KMS/DRM] Restore all-windows-are-fullscreen functionality, since there is no window manager in KMSDRM.
2021-02-10 10:22:19 -05:00
Manuel Alfayate Corchete
2c76433151
[KMS/DRM] Merge patch for bug 5522#: Implement KMSDRM_GetWindowWMInfo().
2021-02-10 10:22:18 -05:00
Manuel Alfayate Corchete
bfa51c3845
[KMS/DRM] Fix for bug #5518 : only do async pageflips when hardware supports them.
2021-02-10 10:22:18 -05:00
Manuel Alfayate Corchete
088fb52579
[KMS/DRM] Correct small omission on bugfix #5513 : y-coord correction has to be done on WarpMouseGlobal, too.
2021-02-10 10:22:18 -05:00
Manuel Alfayate Corchete
8d95aba174
[KMS/DRM] Remove unused KMSDRM_SetWindowGrab prototype in header file.
2021-02-10 10:22:18 -05:00
Manuel Alfayate Corchete
b17c49509b
[KMS/DRM] Patch for bug #5513 . KMSDRM backend can now manage and use several displays.
2021-02-10 10:22:18 -05:00
Sam Lantinga
f23022ef97
Removed non-functional window grab implementations
2021-02-10 10:22:16 -05:00
Cameron Gutman
a0d3c6c63c
Rename SetWindowGrab() to SetWindowMouseGrab()
2021-02-10 10:22:16 -05:00
Manuel Alfayate Corchete
8e1005f8b0
[KMS/DRM] Bugfix for #5489 : Non-FULLSCREEN windows incorrecty use videomode changing to look fullscreen.
2021-01-24 00:51:26 -05:00
Manuel Alfayate Corchete
ee93f0edee
[KMS/DRM] Revert unaproved fix for bug #5465 .
2021-01-24 00:51:24 -05:00
Manuel Alfayate Corchete
e1d932f8b6
[KMS/DRM] Fix for bug #5468 : corruption on dynamic cursor changing caused by wrong buffer size.
2021-01-24 00:51:24 -05:00
Manuel Alfayate Corchete
99facb1df3
[KMS/DRM] Fix for bug #5470 : ratio correction for fullscreen windows with no matching resolution. Correct bracket position in else statements so they follow the coding style.
2021-01-24 00:51:24 -05:00
Manuel Alfayate Corchete
03665004d0
[KMS/DRM] Small fix to KMSDRM_Waitpageflip(). More comments on how it works.
2021-01-24 00:51:23 -05:00
Sam Lantinga
82aafa9aa8
Fixed bug 5461 - Add rewritten WSCONS driver for OpenBSD
...
wahil1976
This patch adds a written-from-scratch WSCONS driver for OpenBSD. It does not have hardcoded keymaps, and it features mouse support when wsmux is available.
For this to work, it needs access to the /dev/wskbd* devices which are not available to non-root users by default. Access to those can be granted by changing /etc/fbtab to give the logging user the ownership of those devices.
2021-01-14 14:32:11 -08:00
Manuel Alfayate Corchete
1adadc7702
[KMS/DRM] Adjust come return values. Improve comments.
2021-01-14 10:18:40 +01:00
Manuel Alfayate Corchete
57661e42c3
[KMS/DRM] Remove unused header.
2021-01-13 20:17:50 +01:00
Manuel Alfayate Corchete
ead3c406a2
[KMS/DRM] Refactor, improve and re-comment async pageflips code.
2021-01-13 20:11:01 +01:00
Manuel Alfayate Corchete
aac74db685
[KMS/DRM] Enable async pageflips.
2021-01-13 15:54:26 +01:00
Manuel Alfayate Corchete
9384e59561
[KMS/DRM] Add warning comentary to avoid future experiments with scaling.
2021-01-12 20:15:37 +01:00
Manuel Alfayate Corchete
8442754912
[KMS/DRM] Refactor KMSDR_CreateSurface to group all non-Vulkan stuff in a block.
2021-01-12 00:22:58 +01:00
Manuel Alfayate Corchete
87eb734c4e
[KMS/DRM] Don't ask SDL to scale image when in Vulkan mode.
2021-01-11 23:59:40 +01:00
Manuel Alfayate Corchete
85e8adf78d
[KMS/DRM] Unused code cleaning.
2021-01-11 22:28:27 +01:00
Manuel Alfayate Corchete
5105ecf8b1
[KMS/DRM] Move surface size info to window driverdata, for coherency.
2021-01-11 21:02:07 +01:00
Manuel Alfayate Corchete
2067a7db8e
[KMS/DRM] Fix fullscreen to windowed transition. Fix aspect ratio correction without using planes.
2021-01-11 20:29:09 +01:00
Manuel Alfayate Corchete
850d9c8c0d
[KMS/DRM] Cleanup remainings from plane/scaling usage.
2021-01-09 02:25:13 +01:00
Manuel Alfayate Corchete
2aeb317743
[KMS/DRM] Fix vkQuake3 in OpenGL mode.
2021-01-08 22:00:28 +01:00
Manuel Alfayate Corchete
b24494734b
[KMS/DRM] Go back to the LEGACY interface only because using planes breaks compatibility with HW, so no advantage on using ATOMIC.
2021-01-08 18:57:12 +01:00
Manuel Alfayate Corchete
940e1b8dd9
[KMS/DRM] Small readability changes.
2021-01-08 16:33:50 +01:00
Manuel Alfayate Corchete
e5bf1850f5
[KMS/DRM] Fix cpmpilation warnings. Thanks to Ozkan Sezer for pointing this out!
2021-01-08 15:39:05 +01:00
Manuel Alfayate Corchete
cef1bd0639
[KMS/DRM] Prevent creating another default cursor everytime a window is created. Other fixes and cleanups.
2021-01-08 13:14:42 +01:00
Sam Lantinga
9130f7c377
Updated copyright for 2021
2021-01-02 10:25:38 -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
Manuel Alfayate Corchete
427c96ec11
[KMS/DRM] Rework some functions.
2020-12-29 14:24:38 +01: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
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
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
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
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
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
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
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
Ozkan Sezer
90456670b5
more "'for' loop initial declarations are only allowed in C99 mode" fixes
2020-12-17 14:11:00 +03:00
Sam Lantinga
cb36189692
Fixed bug 5235 - All internal sources should include SDL_assert.h
...
Ryan C. Gordon
We should really stick this in SDL_internal.h or something so it's always available.
2020-12-09 07:16:22 -08:00
Ryan C. Gordon
010d5fba93
kmsdrm: Make this build with significantly older system libraries.
...
This allows one to build Raspberry Pi versions on an ancient version of
Raspbian and get both the KMSDRM and RPI video targets built into SDL, giving
maximum binary compatibility from linking against an older glibc, etc, but
also making one library that can access video on all RPi models and OS
releases.
2020-10-26 09:49:09 -04:00
Manuel Alfayate Corchete
5682b066e9
kmsdrm: Add comment about KMSDRM_VideoQuit() changes.
2020-10-22 19:51:57 +02:00
Manuel Alfayate Corchete
63b7827709
kmsdrm: properly exit with an error when ATOMIC interface is not yet available, instead of just segfaulting.
2020-10-22 19:44:38 +02:00
Manuel Alfayate Corchete
a3262205b5
kmsdrm: rearrange init function so we try ATOMIC compatibility first.
2020-10-22 17:55:45 +02:00
Manuel Alfayate Corchete
b1ea0be865
kmsdrm: Add missing checks after SDL_calloc() calls.
2020-10-22 17:06:34 +02:00
Manuel Alfayate Corchete
ad9ec8b363
kmsdrm: Small fix, missing bracket.
2020-10-22 16:15:34 +02:00
Manuel Alfayate Corchete
87a86675ed
kmsdrm: Always use spaces for indentation. Always use SDL_calloc() for calloc.
2020-10-22 16:01:51 +02:00
Manuel Alfayate Corchete
cca16c9cb1
kmsdrm: merge GetDisplayDPI implementation by bms20 <brett@mynah-software.com>
2020-10-15 17:56:19 +02:00
Sam Lantinga
76980e30f2
Added events for dynamically connecting and disconnecting displays, with an iOS implementation
2020-10-08 16:42:20 -07:00
Manuel Alfayate Corchete
78c274cb5d
kmsdrm: merge patches from Ozkan Sezer for removing c-99'isms and raising libgbm version reqeriments.
2020-09-26 19:18:09 +02:00
Manuel Alfayate Corchete
9c342e76dd
kmsdrm: merge heap buffer overflow and cursor creation patches from meyraud705.
2020-09-13 21:41:10 +02:00
Manuel Alfayate Corchete
0cb9bfa502
kmsdrm: less excessive error checkhing
2020-09-12 15:58:47 +02:00
Manuel Alfayate Corchete
5bed30dd61
kmsdrm: also do pending modeseting in SwapWindowDoubleBuffered().
2020-09-12 04:56:55 +02:00
Manuel Alfayate Corchete
9e9227add3
kmsdrm: reimplement modesetting for fullscreen window scaling and AR-correction.
2020-09-12 04:52:56 +02:00
Manuel Alfayate Corchete
4575c6942a
kmsdrm: delete ununsed variable.
2020-09-12 02:36:02 +02:00
Manuel Alfayate Corchete
01b0cf1c90
Backed out changeset 4a45d1a30d25
...
kmsdrm: Fake KMSDRM_SetDisplayMode() is needed for some programs after all.
2020-09-12 00:47:00 +02:00
Manuel Alfayate Corchete
7b67654872
kmsdrm: don't fool SDL into thinking that changing the physical videomode is done.
2020-09-12 00:16:08 +02:00
Manuel Alfayate Corchete
a6d182d326
kmsdrm: no need to reconnect/reactivate things in SwapWindowDoubleBuffered().
2020-09-11 23:47:26 +02:00
Manuel Alfayate Corchete
47e2d0304e
kmsdrm: greatly improve comments in SwapBuffersFenced() for future reference.
2020-09-10 23:26:02 +02:00
Ryan C. Gordon
3c6004feb7
kmsdrm: Choose how to swap buffers based on EGL extension availability.
2020-09-10 15:07:23 -04:00
Ryan C. Gordon
c7e761f872
kmsdrm: Patched to compile if EGL headers lack EGL_ANDROID_native_fence_sync.
2020-09-10 15:05:55 -04:00
Ryan C. Gordon
224aa45b59
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.
2020-09-10 15:04:35 -04:00
Manuel Alfayate Corchete
055cad49b6
kmsdrm: no need to re-connect/reactivate things in SwapWindow() anymore because we use a dumb buffer on KMS buffers destruction now.
2020-09-10 02:15:53 +02:00
Manuel Alfayate Corchete
351219bfd8
kmsdrm: On VideoQuit(), only destroy dumb buffer if it exists.
2020-09-09 03:18:26 +02:00
Manuel Alfayate Corchete
244d0ad854
kmsdrm: Tell SDL that mouse has entered the window via artificial event. Fixes sticky mouse in Scummvm.
2020-09-08 15:30:45 +02:00
Manuel Alfayate Corchete
550e153365
kmsdrm: No need to test for display driverdata when freeing a plane.
2020-09-08 02:42:32 +02:00
Manuel Alfayate Corchete
6e03fab982
kmsdrm: add temporary RPI4_COMPAT define to try RPI4+current Rasbian compatibility.
2020-09-07 23:15:33 +02:00
Manuel Alfayate Corchete
0f807fd607
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.
2020-09-07 22:54:15 +02:00
Manuel Alfayate Corchete
cce6c60518
kmsdrm: fix errors when trying to free up videomode driverdata pointers on quit.
2020-09-07 01:33:04 +02:00
Manuel Alfayate Corchete
9501b1c698
kmsdrm: fix scaling for SDL_WINDOW_FULLSCREEN windows.
2020-09-07 00:18:13 +02:00
Manuel Alfayate Corchete
daa752b10e
kmsdrm: fix first frame display: no need to wait for SwapWindow() for EGL surface creation.
2020-09-06 23:19:54 +02:00
Manuel Alfayate Corchete
68ac9349aa
kmsdrm: more coherent returns for SwapWindow.
2020-09-06 12:48:39 +02:00