Commit 3a1d7d9c9ac670bf35cfa8ebf3706a1e2a3e5de4

Manuel Alfayate Corchete 2020-07-19T19:09:15

Surfaces have to be recreated immediately from KMSDRM_SetDisplayMode().

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
diff --git a/src/video/kmsdrm/SDL_kmsdrmvideo.c b/src/video/kmsdrm/SDL_kmsdrmvideo.c
index 02092aa..ff8a6ea 100644
--- a/src/video/kmsdrm/SDL_kmsdrmvideo.c
+++ b/src/video/kmsdrm/SDL_kmsdrmvideo.c
@@ -758,15 +758,10 @@ KMSDRM_SetDisplayMode(_THIS, SDL_VideoDisplay * display, SDL_DisplayMode * mode)
         SDL_Window *window = viddata->windows[i];
         SDL_WindowData *windata = (SDL_WindowData *)window->driverdata;
 
-#if SDL_VIDEO_OPENGL_EGL
-        /* Can't recreate EGL surfaces right now, need to wait until SwapWindow
-           so the correct thread-local surface and context state are available */
-        windata->egl_surface_dirty = SDL_TRUE;
-#else
+        /* Re-create GBM and EGL surfaces everytime we change the display mode. */
         if (KMSDRM_CreateSurfaces(_this, window)) {
             return -1;
         }
-#endif
 
         /* Tell app about the resize */
         SDL_SendWindowEvent(window, SDL_WINDOWEVENT_RESIZED, mode->w, mode->h);