Hi Devs,
Hope everyone is having a wonderful day and wanted to report a bug (I think) I found on X11 side of the SDL. I’m using SDL2 (2.0.22) to detect system resolution changes on my game engine while the game engine is running.
I’m using SDL_GetDesktopDisplayMode call to query current system resolution and found out it returns previous desktop resolution even after I change my display resolution through Ubuntu settings window.
I tested the same API call on Wayland and it seems to return the proper resolution.
For example (X11 behavior):
- Say my display resolution is 2560x1440 when I start my game engine.
- While game is running I decided to change display resolution to 1920x1080 via Ubuntu settings window.
- When I query new resolution via SDL_GetDesktopDisplayMode it still returns 2560x1440 (but on Wayland it properly returns 1920x1080)
I tested on Ubuntu 18.04, 20.04, 22.04 as well as 24.04 using SDL 2.0.22 as well as SDL master branch. In all the cases I’m not getting updated resolution.
I prefer not to in-cooperating X11 or Xrandr calls directly to my engine in order to keep the engine code cross platform as possible. Wondering if someone can help me ?
Thank you again.
Kal