Anthony Pesch
fc508eabe2
kmsdrm: remove redundant modeset_pending flag
...
this variable was added in commit 2067a7db8e4a36ba40ab34a55b3166ca28638a60 and
ultimately tracks if this is a surface's first present. checking if the current
bo is NULL provides the same functionality and cuts down on a redundant piece
of state potentially getting out of sync in the future
2021-06-01 15:32:02 -07:00
Anthony Pesch
4c965b7a8d
kmsdrm: fix SetDisplayMode binding the the wrong surface / context
...
SetDisplayMode needs to recreate the EGL surfaces, which then need to be
bound along with the correct context in each rendering thread
commit 3a1d7d9c9ac670bf35cfa8ebf3706a1e2a3e5de4 removed this behavior which
has broken using SetDisplayMode when rendering with multiple contexts
the commit message was rather vague, but if the surfaces do need to be
created immediately, this process probably needs to be split such that
surface is created immediately, but the binding is deferred
2021-06-01 15:32:02 -07:00
Vanfanel
8638674a87
[KMSDRM] Correct comment typo.
2021-03-18 11:04:28 -07: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
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
03665004d0
[KMS/DRM] Small fix to KMSDRM_Waitpageflip(). More comments on how it works.
2021-01-24 00:51:23 -05:00
Manuel Alfayate Corchete
1adadc7702
[KMS/DRM] Adjust come return values. Improve comments.
2021-01-14 10:18:40 +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
85e8adf78d
[KMS/DRM] Unused code cleaning.
2021-01-11 22:28:27 +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
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
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
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
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
f60f8d5d84
[Video/KMSDRM]: Add Vulkan support to the KMSDRM backend.
2020-12-18 22:53:51 +01: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
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
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
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
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
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
d43e666eed
kmsdrm: Buffer management refactoring. Fixes for compatibility with more video drivers.
2020-08-25 04:05:36 +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
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
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
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