diff --git a/src/video/wayland/SDL_waylandopengles.c b/src/video/wayland/SDL_waylandopengles.c index f4beb8b6f..23429dbbd 100644 --- a/src/video/wayland/SDL_waylandopengles.c +++ b/src/video/wayland/SDL_waylandopengles.c @@ -129,7 +129,9 @@ Wayland_GLES_SwapWindow(_THIS, SDL_Window *window) if (swap_interval != 0) { struct wl_display *display = ((SDL_VideoData *)_this->driverdata)->display; SDL_VideoDisplay *sdldisplay = SDL_GetDisplayForWindow(window); - const Uint32 max_wait = SDL_GetTicks() + (10000 / sdldisplay->current_mode.refresh_rate); /* ~10 frames, so we'll progress even if throttled to zero. */ + /* ~10 frames (or 1 sec), so we'll progress even if throttled to zero. */ + const Uint32 max_wait = SDL_GetTicks() + (sdldisplay->current_mode.refresh_rate ? + (10000 / sdldisplay->current_mode.refresh_rate) : 1000); while (SDL_AtomicGet(&data->swap_interval_ready) == 0) { Uint32 now;