diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 764eee219d..9026e47fad 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -1421,11 +1421,16 @@ bool SDL_GetClosestFullscreenDisplayMode(SDL_DisplayID displayID, int w, int h, continue; } - if (mode->w == closest->w && mode->h == closest->h && - SDL_fabsf(closest->refresh_rate - refresh_rate) < SDL_fabsf(mode->refresh_rate - refresh_rate)) { - /* We already found a mode and the new mode is further from our - * refresh rate target */ - continue; + if (mode->w == closest->w && mode->h == closest->h) { + if (SDL_fabsf(closest->refresh_rate - refresh_rate) < SDL_fabsf(mode->refresh_rate - refresh_rate)) { + /* We already found a mode and the new mode is further from our + * refresh rate target */ + continue; + } + if (SDL_BYTESPERPIXEL(closest->format) >= SDL_BYTESPERPIXEL(mode->format)) { + // Prefer the highest color depth + continue; + } } }