mirror of
https://github.com/Relintai/sdl2_frt.git
synced 2024-12-25 09:17:12 +01:00
Fixed bug 3792 - [KMS/DRM] Wrong GBM format
Romain Tisserand Using KMS/DRM driver from WIP SDL2.0.6 on Linux/ARM SoC RockChip RK3328 (ARM Mali 450 MP2 GPU). The current code is using GBM_BO_FORMAT_XRGB8888 as GBM buffer format specifier. The Mali driver (it has been confirmed some other vendor implementations too) expects GBM_FORMAT_XRGB8888. The Mesa implementation is actually handling both values as the same, but it's not implemented like this into every gbm.h vendor header. https://github.com/ideak/mesa/blob/master/src/gbm/backends/dri/gbm_dri.c So with stock SDL2 on my card (Mali vendor implementation), it does not work, eglCreateWindowSurface fails, and gbm_is_format_supported fails too (with the BO variant). It runs fine with GBM_FORMAT_XRGB8888. Here is a link of the gbm.h from Mali user-space driver : https://github.com/rockchip-linux/libmali/blob/rockchip/include/gbm.h
This commit is contained in:
parent
74043994b8
commit
c26946e9f2
@ -500,7 +500,7 @@ KMSDRM_CreateWindow(_THIS, SDL_Window * window)
|
|||||||
/* Maybe you didn't ask for a fullscreen OpenGL window, but that's what you get */
|
/* Maybe you didn't ask for a fullscreen OpenGL window, but that's what you get */
|
||||||
window->flags |= (SDL_WINDOW_FULLSCREEN | SDL_WINDOW_OPENGL);
|
window->flags |= (SDL_WINDOW_FULLSCREEN | SDL_WINDOW_OPENGL);
|
||||||
|
|
||||||
surface_fmt = GBM_BO_FORMAT_XRGB8888;
|
surface_fmt = GBM_FORMAT_XRGB8888;
|
||||||
surface_flags = GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING;
|
surface_flags = GBM_BO_USE_SCANOUT | GBM_BO_USE_RENDERING;
|
||||||
|
|
||||||
if (!KMSDRM_gbm_device_is_format_supported(vdata->gbm, surface_fmt, surface_flags)) {
|
if (!KMSDRM_gbm_device_is_format_supported(vdata->gbm, surface_fmt, surface_flags)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user