|
010d5fba
|
2020-10-26T09:49:09
|
|
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.
|
|
5682b066
|
2020-10-22T19:51:57
|
|
kmsdrm: Add comment about KMSDRM_VideoQuit() changes.
|
|
63b78277
|
2020-10-22T19:44:38
|
|
kmsdrm: properly exit with an error when ATOMIC interface is not yet available, instead of just segfaulting.
|
|
a3262205
|
2020-10-22T17:55:45
|
|
kmsdrm: rearrange init function so we try ATOMIC compatibility first.
|
|
b1ea0be8
|
2020-10-22T17:06:34
|
|
kmsdrm: Add missing checks after SDL_calloc() calls.
|
|
ad9ec8b3
|
2020-10-22T16:15:34
|
|
kmsdrm: Small fix, missing bracket.
|
|
87a86675
|
2020-10-22T16:01:51
|
|
kmsdrm: Always use spaces for indentation. Always use SDL_calloc() for calloc.
|
|
cca16c9c
|
2020-10-15T17:56:19
|
|
kmsdrm: merge GetDisplayDPI implementation by bms20 <brett@mynah-software.com>
|
|
76980e30
|
2020-10-08T16:42:20
|
|
Added events for dynamically connecting and disconnecting displays, with an iOS implementation
|
|
78c274cb
|
2020-09-26T19:18:09
|
|
kmsdrm: merge patches from Ozkan Sezer for removing c-99'isms and raising libgbm version reqeriments.
|
|
9c342e76
|
2020-09-13T21:41:10
|
|
kmsdrm: merge heap buffer overflow and cursor creation patches from meyraud705.
|
|
0cb9bfa5
|
2020-09-12T15:58:47
|
|
kmsdrm: less excessive error checkhing
|
|
5bed30dd
|
2020-09-12T04:56:55
|
|
kmsdrm: also do pending modeseting in SwapWindowDoubleBuffered().
|
|
9e9227ad
|
2020-09-12T04:52:56
|
|
kmsdrm: reimplement modesetting for fullscreen window scaling and AR-correction.
|
|
4575c694
|
2020-09-12T02:36:02
|
|
kmsdrm: delete ununsed variable.
|
|
01b0cf1c
|
2020-09-12T00:47:00
|
|
Backed out changeset 4a45d1a30d25
kmsdrm: Fake KMSDRM_SetDisplayMode() is needed for some programs after all.
|
|
7b676548
|
2020-09-12T00:16:08
|
|
kmsdrm: don't fool SDL into thinking that changing the physical videomode is done.
|
|
a6d182d3
|
2020-09-11T23:47:26
|
|
kmsdrm: no need to reconnect/reactivate things in SwapWindowDoubleBuffered().
|
|
47e2d030
|
2020-09-10T23:26:02
|
|
kmsdrm: greatly improve comments in SwapBuffersFenced() for future reference.
|
|
3c6004fe
|
2020-09-10T15:07:23
|
|
kmsdrm: Choose how to swap buffers based on EGL extension availability.
|
|
c7e761f8
|
2020-09-10T15:05:55
|
|
kmsdrm: Patched to compile if EGL headers lack EGL_ANDROID_native_fence_sync.
|
|
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.
|
|
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.
|
|
351219bf
|
2020-09-09T03:18:26
|
|
kmsdrm: On VideoQuit(), only destroy dumb buffer if it exists.
|
|
244d0ad8
|
2020-09-08T15:30:45
|
|
kmsdrm: Tell SDL that mouse has entered the window via artificial event. Fixes sticky mouse in Scummvm.
|
|
550e1533
|
2020-09-08T02:42:32
|
|
kmsdrm: No need to test for display driverdata when freeing a plane.
|
|
6e03fab9
|
2020-09-07T23:15:33
|
|
kmsdrm: add temporary RPI4_COMPAT define to try RPI4+current Rasbian compatibility.
|
|
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.
|
|
cce6c605
|
2020-09-07T01:33:04
|
|
kmsdrm: fix errors when trying to free up videomode driverdata pointers on quit.
|
|
9501b1c6
|
2020-09-07T00:18:13
|
|
kmsdrm: fix scaling for SDL_WINDOW_FULLSCREEN windows.
|
|
daa752b1
|
2020-09-06T23:19:54
|
|
kmsdrm: fix first frame display: no need to wait for SwapWindow() for EGL surface creation.
|
|
68ac9349
|
2020-09-06T12:48:39
|
|
kmsdrm: more coherent returns for SwapWindow.
|
|
d3d9d432
|
2020-09-06T12:17:27
|
|
kmsdrm: Remove debug printfs in SwapWindow.
|
|
d7aebbd5
|
2020-09-06T12:08:22
|
|
kmsdrm: Don't create surfaces until EGL context is available.
|
|
f4e02a5c
|
2020-08-31T19:17:17
|
|
kmsdrm: Do NOT modify window size manually from the backend: doing so caused renderer scaling params miscalculation.
|
|
c09d1cee
|
2020-08-28T23:04:00
|
|
kmsdrm: Apply window reconfiguration in SetWindowSize(), too.
|
|
31b17945
|
2020-08-28T22:38:26
|
|
kmsdrm: use PLANE and CRTC to do hardware-driven window scaling and AR-correction.
|
|
fe3f9796
|
2020-08-26T01:37:30
|
|
kmsdrm: unload EGL and GL lib only if using them.
|
|
9b43464d
|
2020-08-25T16:30:23
|
|
kmsdrm: Add programmer credits to the Atomic KMSDRM driver.
|
|
9316a8d9
|
2020-08-25T16:18:49
|
|
kmsdrm: move FENCE FD props setting to SwapWindow(), where it belongs.
|
|
3f38009b
|
2020-08-25T15:40:36
|
|
kmsdrm: comment out atomic commit fast-debugging printf.
|
|
0d16761c
|
2020-08-25T05:53:13
|
|
kmsdrm: fix segfault on quit beacuse of freed _this->egl_data.
|
|
d43e666e
|
2020-08-25T04:05:36
|
|
kmsdrm: Buffer management refactoring. Fixes for compatibility with more video drivers.
|
|
eade05ca
|
2020-08-24T12:51:20
|
|
kmsdrm: Finetune integer type usage. Add some comments.
|
|
a76f1763
|
2020-08-24T01:10:11
|
|
kmsdrm: Move cursor plane setup and freeing to MouseInit() and MouseQuit(), for better consistency.
|
|
0d593d7e
|
2020-08-23T23:44:07
|
|
kmsdrm: Add error control to plane prop setting function. Do most plane prop setting with a single function.
|
|
e06e9c35
|
2020-08-23T11:26:55
|
|
kmsdrm: move cursor-related atomic helper functions and related struct typedefs to the SDL_kmsdrmmouse unit.
|
|
0b7b7721
|
2020-08-23T03:13:50
|
|
kmsdrm: remove redundant function, use drm_atomic_setbuffers() for disconnecting planes instead.
|
|
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.
|
|
0d0ba111
|
2020-08-19T01:34:56
|
|
kmsdrm: correct parameter name.
|
|
5d32eda9
|
2020-08-19T01:31:22
|
|
kmsdrm: implement smarter surface recreation function to be used in videomode changes. Other minor arrangements.
|
|
f79da817
|
2020-08-18T01:52:15
|
|
kmsdrm: free all connector, crtc and plane memory on KMSDRM_VideoQuit().
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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().
|
|
fc722b2d
|
2020-08-05T15:28:51
|
|
kmsdrm: free memory for plane, crtc and connector property tables on VideoQuit.
|
|
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.
|
|
8996ee17
|
2020-08-03T22:24:49
|
|
kmsdrm: update SwapWindow fn, moving it to triple-buffer.
|
|
b131661c
|
2020-08-01T18:23:34
|
|
kmsdrm: rewrite the new SwapWindow() fn to avoid tearing. Double-buffer only for now.
|
|
1a5503ce
|
2020-07-28T21:11:25
|
|
kmsdrm: Moved to the ATOMIC KMS/DRM interface for buffer swapping, leaving DRM-legacy behind.
|
|
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).
|
|
412b21b0
|
2020-07-20T11:42:23
|
|
Rename the gbm device struct from gbm to gbm_dev for better readabilty.
|
|
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.
|
|
b78b88f7
|
2020-07-19T21:46:41
|
|
kmsdrm: fix typo
|
|
75fe4b14
|
2020-07-19T19:53:57
|
|
Added comment about window creation behaviour in KMSDRM.
|
|
2f660c4f
|
2020-07-19T19:11:02
|
|
Delete windata variable no longer needed in KMSDR_SetDisplayMode().
|
|
3a1d7d9c
|
2020-07-19T19:09:15
|
|
Surfaces have to be recreated immediately from KMSDRM_SetDisplayMode().
|
|
b6a818b6
|
2020-07-19T18:45:29
|
|
Fix SDL_Window recreation: drmModeSetCrtc() has to be called everytime the EGL and GBM surfaces are recreated.
|
|
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.
|
|
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.
|
|
b9f55b6d
|
2020-06-19T10:37:14
|
|
Fixed bug 5199 - Fix KMSDRM_CreateWindow() segfault when starting L?VE2D engine.
Manuel Alfayate Corchete
This small patch fixes the KMSDRM_CreateSurfaces() call in KMSDRM_CreateWindow(), that was segfaulting deeper into SDL internals because the windata->viddata pointer wasn't set before the KMSDRM_CreateSurfaces() call.
So that's what this small patch does.
Now, L?VE2D works perfectly well on the Raspberry Pi 3, instead of just segfaulting.
|
|
d48c97c4
|
2020-06-02T16:57:20
|
|
Fixed bug 5147 - KMSDRM: SetWindowFullscreen() failing with SDL_WINDOW_FULLSCREEN_DESKTOP
Manuel Alfayate Corchete
This patch is needed so programs that do this work as expected:
1) Start in a different video mode than the mode used by the system and then...
2) Try to go fullscreen with the mode originally used by the system via SetWindowFullScreen() with the SDL_WINDOW_FULLSCREEN_DESKTOP flag.
An example would be pt2-clone in https://github.com/8bitbubsy/pt2-clone.
This program does this:
Starts with:
video.window = SDL_CreateWindow("", SDL_WINDOWPOS_CENTERED,
SDL_WINDOWPOS_CENTERED, screenW, screenH, windowFlags);
and then, *IF* the user has configured it in fullscreen mode in its .ini, it tries to go fullscreen with the desktop mode:
SDL_SetWindowFullscreen(video.window, SDL_WINDOW_FULLSCREEN_DESKTOP);
This sequence of operations is currently failing because SDL_SetDisplayModeForDisplay() in SDL_video.c fails because display->desktop_mode is not being initialized with its correct value: SetDisplayMode() in SDL_kmsdrmvideo.c will not be able to set the mode because it detects the mode to have a driverdata of 0x0 ("if (!modedata)") and rightfully returns an error.
So, the included patch fixes this small problem, and programs that first change the video mode and then try to go fullscreen with the system video mode will now work.
The patch simply fixes an small omission, but its really needed now that dynamic video mode changing was implemented on the KMSDRM backend.
|
|
bcbaa4ec
|
2020-05-26T16:34:50
|
|
If there isn't a GetGlobalMouseState() implementation, fall back to the normal one.
|
|
437577f9
|
2020-05-26T16:29:26
|
|
Fixed bug 5141 - KMSDRM: manage SDL_GetGlobalMouseState()
Manuel Alfayate Corchete
On the KMSDRM backend, there is no such thing as a desktop, yet some programs could (and DO) use SDL_GetGlobalMouseState().
So I think its good idea that, in KMSDRM, it returns the same mouse coordinates anyway as SDL_GetMouseState() would return. There is nothing else it could return, as far as I can understand, since there is no desktop anyway.
This small patch does precisely that.
|
|
1df0a1e4
|
2020-05-26T16:27:00
|
|
Fixed bug 5140 - KMSDRM: Dynamic vsync toggle does not work
Manuel Alfayate Corchete
The KMSDRM backend was doing things wrong because of some small (but important) misconceptions on how KMS/DRM works: to implement a largely broken non-vsync refresh mechanism, the SwapWindow() function was issuing new pageflips before previous ones had completed, thus causing EBUSY returns, buffer mismanagement, etc... resulting in general breakage on vsync disabling from apps, that would not allow vsync to work again without KMSDRM video re-initialization.
To further clarify, on most DRM drivers async pageflips are NOT working nowadays, so all issued pageflips will complete on next VBLANK, NOT ASAP (calling drmModePageFlip() with the DRM_MODE_PAGE_FLIP_ASYNC flag will return error).
The old code was assuming that can just issue a synchronous (=on VBLANK) pageflip and then pass a 0 timeout to the pull() function so we do not wait for the pageflip event, thinking that this will lead to correct non-vsynced screen updates from the program: That is plain wrong.
Each pageflip has to be waite before issuing a new one, ALWAYS. And if we do not support ASYNC pageflips on the DRM driver level, then we are forced to wait for the next VBLANK. There is no way around it.
I have also added many comments on the KMSDRM code. This is needed for future reference for me or others who may need to look at this code: KMS/DRM terminology regarding what SYNC and ASYNC mean in pageflip terms, and where to do certain things and why, is not trivial. It is not desirable or possible to invest time on researching the same concepts every time there is need to dive into this code. So please leave all these comments in the patch.
|
|
b6afbe63
|
2020-04-07T09:38:57
|
|
Added SDL_log.h to SDL_internal.h so logging is available everywhere
|
|
9354aea1
|
2020-03-25T09:38:45
|
|
src/video/kmsdrm/SDL_kmsdrmvideo.c: fix build
Build is broken without EGL since version 2.0.12 and
https://hg.libsdl.org/SDL/rev/72cc4740dec2:
/home/giuliobenetti/autobuild/run/instance-1/output-1/build/sdl2-2.0.12/src/video/kmsdrm/SDL_kmsdrmvideo.c: In function 'KMSDRM_CreateSurfaces':
/home/giuliobenetti/autobuild/run/instance-1/output-1/build/sdl2-2.0.12/src/video/kmsdrm/SDL_kmsdrmvideo.c:394:5: error: unknown type name 'EGLContext'
EGLContext egl_context;
^
Fixes:
- http://autobuild.buildroot.org/results/fafd20a01591032662f9ca025fcea3478239cf3c
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
82be6dd7
|
2020-03-07T08:48:04
|
|
Fixed regression in bug 4966 - KMSDRM: Add dynamic modeset support
Anthony Pesch
I was just communicating with one of the Retropie developers regarding this.
This change removed the forced window focus change on creation (https://github.com/inolen/SDL-mirror/commit/3534cb3793f4744509f020f1267f510ec7099366) as part of the change no longer assumes there's only a single window being created. This was perhaps an over-aggressive removal.
Due to that change, joystick events are only received if SDL_SetKeyboardFocus is called explicitly, or if the app has specified SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS.
I think that part of my change should be reverted to continue setting mouse / keyboard focus to the window being created. If SDL_WINDOW_INPUT_FOCUS is to be used as an input flag the code could be conditional, but that would still leave existing software broken.
|
|
a19757ac
|
2020-03-02T14:55:40
|
|
Fixed bug 5007 - Segfault in KMSDRM_VideoQuit() on Raspberry Pi Zero with no display attached
Charles Huber
This patch fixes the segfault on my Pi, though the valid display index range reported by the CHECK_DISPLAY_INDEX() macro in src/video/SDL_video.c is a little weird:
$ SDL_VIDEO_EGL_DRIVER=libEGL.so SDL_VIDEO_GL_DRIVER=libGLESv2.so ./a.out
SDL_Init(): displayIndex must be in the range 0 - -1
|
|
9013c916
|
2020-02-27T08:20:34
|
|
Fixed bug 5005 - warnings in kmsdrm
Malte Kie?ling
At the moment i get following warnings from kmsdrm:
* in SDL_kmsdrmvideo.c KMSDRM_DestroySurfaces is return type int, but thats never returned or checked against
* in SDL_kmsdrmvideo.c KMSDRM_DestroySurfaces the variable viddata is not used
* in SDL_kmsdrmopengles.c KMSDRM_GLES_LoadLibrary a cast to NativeDisplayType is missing
I attached a patch for them :)
|
|
35704c98
|
2020-02-14T16:17:17
|
|
Fixed bug 4980 - Build fails for SDL_kmsdrm*.c
Malte Kie?ling
Since https://hg.libsdl.org/SDL/rev/f908bd722523 / bug 4966 i cannot build SDL anymore. The error i get is, essentially, caused by -Werror=declaration-after-statement in SDL_kmsdrmvideo.c and SDL_kmsdrmopengles.c
|
|
3e935aec
|
2020-02-09T11:44:22
|
|
Fixed bug 4966 - KMSDRM: Add dynamic modeset support
Anthony Pesch
* Remove triple buffering support. As far as I can tell, this goes against the libdrm API; the EGL implementations themselves control the buffering. Removing it isn't absolutely necessary as it seemingly works on the Pi at least, but I noticed this while doing my work and explained my reasoning in the commit.
* Replace the crtc_ready logic which allocates an extra bo to perform the initial CRTC configuration (which is required before calling drmModePageFlip) with a call to drmModeSetCrtc after the front and back buffers are allocated, avoiding this allocation.
* Standardized the SDL_*Data variable names and null checks to improve readability. Given that there were duplicate fields in each SDL_*Data structure, having generic names such as "data" at times was very confusing.
* Removed unused fields from the SDL_*Data structures and moves all display related fields out of SDL_VideoData and into SDL_DisplayData. Not required since the code only supports a single display right now, but this was helpful in reading and understanding the code initially.
* Implement KMSDRM_GetDisplayModes / KMSDRM_SetDisplayMode to provide dynamic modeset support.
These changes have been tested on a Raspberry Pi 4 and a Dell XPS laptop with an HD 520.
As an update, I went back over the triple buffer changes and left them in. I didn't entirely get the code originally, I had just seen it calling KMSDRM_gbm_surface_lock_front_buffer twice for a single swap and had removed it because I was paranoid of bugs stemming from it while working on the modeset changes.
I've made a few small changes to the logic that had thrown me off originally and rebased the changes:
* The condition wrapping the call to release buffer was incorrect.
* The first call to KMSDRM_gbm_surface_lock_front_buffer has been removed. I don't understand why it existed.
* Added additional comments describing what was going on in the code (as it does fix the buffer release pattern of the original code before it).
|
|
a8780c6a
|
2020-01-16T20:49:25
|
|
Updated copyright date for 2020
|
|
95d40e8a
|
2019-12-19T21:47:43
|
|
kmsdrm: Fix busy-loop within libc's dlopen()
For some obscure reason, the order in which the libdrm/libgbm libraries
are loaded matters.
Without this fix, the first call to check_modesetting() will work and
load then unload all symbols properly, but the second call to this
function will lock up as soon as dlopen() is called on libdrm.
Swapping the order in which the libdrm and libgbm libraries are loaded
is enough to fix (or work around?) this issue.
Fixes #4891:
https://bugzilla.libsdl.org/show_bug.cgi?id=4891
Signed-off-by: Paul Cercueil <paul@crapouillou.net>
|
|
2d37d291
|
2019-09-06T08:44:46
|
|
KMSDRM_GLES_SwapWindow: fix non-vsync case
If KMSDRM_drmModeSetCrtc is called when the swap interval is
set to 0, the driver behaves as though vertical sync is engaged by
limiting framerate to the refresh rate, but performance is much worse
than with vertical sync enabled.
Resolve this issue by ensuring that the Crtc is only set up once,
and KMSDRM_drmModePageFlip is called, albeit without any followup
queueing or waiting for flips.
|
|
bd952900
|
2019-06-19T06:40:50
|
|
Use SDL C runtime functions
|
|
faed7f83
|
2019-06-19T10:11:38
|
|
KMSDRM: fix inverted strcmp, remove useless if test (Bug 4624)
|
|
5998c513
|
2019-06-19T09:16:53
|
|
KMSDRM: fix compilation on linux, no d_namlen (Bug 4624)
|
|
99abcbb2
|
2019-06-18T14:15:10
|
|
Fixed bug 4624 - KMS/DRM fails on FreeBSD because /dev/dri/card* nodes are symlinks
Jan Martin Mikkelsen
Patch to scan /dev/dri based on names rather than file type
Loading KMS/DRM on FreeBSD fails because the "available" code in the driver checks for character device nodes under /dev/dri and the /dev/dri/card* files are symlinks rather than device nodes nodes on FreeBSD. The symlink points to /dev/drm/0.
The attached patch counts /dev/dri/card* entries rather than directory entries which are character devices.
|
|
cbe80d47
|
2019-03-13T14:54:51
|
|
KMSDRM: valid file descriptors could positive or 0. -1 is invalid. (Bug 4530)
|
|
7b275942
|
2019-03-11T15:27:42
|
|
KMSDRM: missing return value in VideoInit() (Bug 4530)
|
|
3b49ee52
|
2019-03-11T15:22:40
|
|
KMSDRM: change calls free() to SDL_free() (Bug 4529)
|
|
5e13087b
|
2019-01-04T22:01:14
|
|
Updated copyright for 2019
|
|
583f61b2
|
2018-12-01T16:31:56
|
|
kmsdrm: Check for resources when validating KMSDRM device in check_modesetting.
Fixes Bugzilla #4403.
|
|
b3ac87d5
|
2018-12-01T13:09:00
|
|
kmsdrm: uninitialized KMSDRM fixes
* Search for valid encoder in connector when it doesn't have an
encoder ID set.
* Search for valid CRTC in resources and encoder's possible CRTCs
when encoder doesn't have one set.
* Select default mode if CRTC doesn't have a valid one.
* Pick current_mode's W/H/Refresh Rate basing on current and
valid CRTC mode, not the saved one.
|
|
aeee424f
|
2018-10-31T15:16:51
|
|
Fixed bug 4349 - SDL_CreateWindow fails with KMS/DRM after upgrading Mesa to 18.2.3
Rainer Sabelka
After I did an upgrade of my arch Linux installation (resulting in an update of Mesa to version 18.2.3), all my SDL2 applications which use the KMS/DRM driver stopped working.
Reason: Creating a Window with SDL_CreateWindow failed because the call to EGL
eglCreateWindowSurface() returns an error "EGL_BAD_MATCH".
After investigating with the debugger I figured, that the configuration, which has been selected from the output of eglChooseConfig(), has an "EGL_NATIVE_VISUAL_ID" which does not match the "format" of the underlying gbm surface.
The attached patch fixes the problem. It does so, by mimicking Weston's behavior.
All configurations returned from eglChooseConfig() which have an visual_id different from the gbm format are discarded, and only from the remaining ones the "best" match is selected.
|
|
88b32525
|
2018-10-09T00:27:55
|
|
kmsdrm: find available card if called without index.
This work was done by Michael Grzeschik, I just cleaned up the patch a little.
Fixes Bugzilla #4241.
|
|
3ac9e2aa
|
2018-10-05T17:06:05
|
|
Fixed bug 4296 - kmsdrm video driver leaks 1 bo in KMSDRM_GLES_SetupCrtc()
Icenowy Zheng
One front buffer is locked in GLES_SetupCrtc() and overrides the next_bo just locked in KMSDRM_GLES_SwapWindow, then the next_bo gets lost and is not released even when quitting the video.
It may leads to problems with GLES drivers that doesn't clean up GBM correctly if there's any bo left (e.g. the Mali Utgard r6p2 blob). In the case of Mali Utgard r6p2 blob, the DRM device file is still hold by the blob, and if you try to SDL_Quit to let another program to run (this is done by EmulationStation), the new program will fail to open DRM device.
|