Quick answer: Pygame.display.Info() returning the previous monitor's resolution after the user moves the window? Info() caches at init - reinit display or check pygame.event for DISPLAY_CHANGED.
Move window from 1080p monitor to 1440p. Game still renders at 1080p.
Reinit on display change
pygame.event WINDOWDISPLAYCHANGED. Reinit display with the new size.
Poll periodically
Each frame, check current display vs cached. Fixed if drifted.
Or use Wayland-aware backend
Newer pygame versions on Linux handle this more cleanly.
“Display info is cached. Caches need refresh.”
If your game runs windowed and supports multi-monitor, display-change handling is mandatory. Plan for it.