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
|
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 |
|
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
|
13244de5c2
|
[Buildsystem] Only build KMSDRM support if EGL+OpenGL is detected by CMake.
|
2020-12-22 17:17:30 +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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
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 |
|
Manuel Alfayate Corchete
|
d3d9d432ac
|
kmsdrm: Remove debug printfs in SwapWindow.
|
2020-09-06 12:17:27 +02:00 |
|
Manuel Alfayate Corchete
|
d7aebbd58f
|
kmsdrm: Don't create surfaces until EGL context is available.
|
2020-09-06 12:08:22 +02:00 |
|
Manuel Alfayate Corchete
|
f4e02a5c1b
|
kmsdrm: Do NOT modify window size manually from the backend: doing so caused renderer scaling params miscalculation.
|
2020-08-31 19:17:17 +02:00 |
|
Manuel Alfayate Corchete
|
c09d1cee95
|
kmsdrm: Apply window reconfiguration in SetWindowSize(), too.
|
2020-08-28 23:04:00 +02:00 |
|
Manuel Alfayate Corchete
|
31b1794534
|
kmsdrm: use PLANE and CRTC to do hardware-driven window scaling and AR-correction.
|
2020-08-28 22:38:26 +02:00 |
|
Manuel Alfayate Corchete
|
fe3f97961b
|
kmsdrm: unload EGL and GL lib only if using them.
|
2020-08-26 01:37:30 +02:00 |
|
Manuel Alfayate Corchete
|
9b43464d81
|
kmsdrm: Add programmer credits to the Atomic KMSDRM driver.
|
2020-08-25 16:30:23 +02:00 |
|
Manuel Alfayate Corchete
|
9316a8d979
|
kmsdrm: move FENCE FD props setting to SwapWindow(), where it belongs.
|
2020-08-25 16:18:49 +02:00 |
|
Manuel Alfayate Corchete
|
3f38009b2f
|
kmsdrm: comment out atomic commit fast-debugging printf.
|
2020-08-25 15:40:36 +02:00 |
|
Manuel Alfayate Corchete
|
0d16761cbe
|
kmsdrm: fix segfault on quit beacuse of freed _this->egl_data.
|
2020-08-25 05:53:13 +02:00 |
|
Manuel Alfayate Corchete
|
d43e666eed
|
kmsdrm: Buffer management refactoring. Fixes for compatibility with more video drivers.
|
2020-08-25 04:05:36 +02:00 |
|
Manuel Alfayate Corchete
|
eade05ca03
|
kmsdrm: Finetune integer type usage. Add some comments.
|
2020-08-24 12:51:20 +02:00 |
|
Manuel Alfayate Corchete
|
a76f176361
|
kmsdrm: Move cursor plane setup and freeing to MouseInit() and MouseQuit(), for better consistency.
|
2020-08-24 01:10:11 +02:00 |
|
Manuel Alfayate Corchete
|
0d593d7ead
|
kmsdrm: Add error control to plane prop setting function. Do most plane prop setting with a single function.
|
2020-08-23 23:44:07 +02:00 |
|
Manuel Alfayate Corchete
|
e06e9c35c8
|
kmsdrm: move cursor-related atomic helper functions and related struct typedefs to the SDL_kmsdrmmouse unit.
|
2020-08-23 11:26:55 +02:00 |
|
Manuel Alfayate Corchete
|
0b7b7721b9
|
kmsdrm: remove redundant function, use drm_atomic_setbuffers() for disconnecting planes instead.
|
2020-08-23 03:13:50 +02:00 |
|
Manuel Alfayate Corchete
|
16c04f266a
|
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.
|
2020-08-23 02:58:57 +02:00 |
|
Manuel Alfayate Corchete
|
0d0ba111ae
|
kmsdrm: correct parameter name.
|
2020-08-19 01:34:56 +02:00 |
|
Manuel Alfayate Corchete
|
5d32eda956
|
kmsdrm: implement smarter surface recreation function to be used in videomode changes. Other minor arrangements.
|
2020-08-19 01:31:22 +02:00 |
|
Manuel Alfayate Corchete
|
f79da81721
|
kmsdrm: free all connector, crtc and plane memory on KMSDRM_VideoQuit().
|
2020-08-18 01:52:15 +02:00 |
|
Manuel Alfayate Corchete
|
92cb9192e3
|
kmsdrm: move hardware cursor functionality to the ATOMIC interface. Disconnect the display plane from the GBM surface buffers before destroying the GBM surface.
|
2020-08-17 18:35:04 +02:00 |
|
Manuel Alfayate Corchete
|
c437729b21
|
kmsdrm: separate requests in different functions so we only need one atomic commit for everything, as expected by atomic design.
|
2020-08-08 14:27:55 +02:00 |
|
Manuel Alfayate Corchete
|
3b9f1073c6
|
kmsdrm: wait for possible pending atomic commits before destroying surfaces, and before restoring video on quit. Move messages to the SDL_Log* functions.
|
2020-08-07 11:53:04 +02:00 |
|
Manuel Alfayate Corchete
|
96c99693a2
|
kmsdrm: wait for pending atomic commits before restoring videomode and crtc->buffer on VideoQuit, and simplify double-buffer SwapWindow() implementation.
|
2020-08-06 01:36:56 +02:00 |
|
Manuel Alfayate Corchete
|
09692b6170
|
kmsdrm: move videomode restoration on VideoQuit() to using the atomic interface instead of the legacy drmModeSetCrtc() function. Refactoring of get_plane_id().
|
2020-08-05 18:55:22 +02:00 |
|
Manuel Alfayate Corchete
|
fc722b2d21
|
kmsdrm: free memory for plane, crtc and connector property tables on VideoQuit.
|
2020-08-05 15:28:51 +02:00 |
|
Manuel Alfayate Corchete
|
2d69ce08ba
|
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.
|
2020-08-05 02:06:59 +02:00 |
|
Manuel Alfayate Corchete
|
8996ee1786
|
kmsdrm: update SwapWindow fn, moving it to triple-buffer.
|
2020-08-03 22:24:49 +02:00 |
|
Manuel Alfayate Corchete
|
b131661c6d
|
kmsdrm: rewrite the new SwapWindow() fn to avoid tearing. Double-buffer only for now.
|
2020-08-01 18:23:34 +02:00 |
|
Manuel Alfayate Corchete
|
1a5503ce9f
|
kmsdrm: Moved to the ATOMIC KMS/DRM interface for buffer swapping, leaving DRM-legacy behind.
|
2020-07-28 21:11:25 +02:00 |
|
Manuel Alfayate Corchete
|
412b21b0e8
|
Rename the gbm device struct from gbm to gbm_dev for better readabilty.
|
2020-07-20 11:42:23 +02:00 |
|
Manuel Alfayate Corchete
|
75fe4b14e3
|
Added comment about window creation behaviour in KMSDRM.
|
2020-07-19 19:53:57 +02:00 |
|
Manuel Alfayate Corchete
|
2f660c4fdd
|
Delete windata variable no longer needed in KMSDR_SetDisplayMode().
|
2020-07-19 19:11:02 +02:00 |
|
Manuel Alfayate Corchete
|
3a1d7d9c9a
|
Surfaces have to be recreated immediately from KMSDRM_SetDisplayMode().
|
2020-07-19 19:09:15 +02:00 |
|
Manuel Alfayate Corchete
|
b6a818b6a2
|
Fix SDL_Window recreation: drmModeSetCrtc() has to be called everytime the EGL and GBM surfaces are recreated.
|
2020-07-19 18:45:29 +02:00 |
|