
Stemming from a bug report one month ago with GNOME 51 over high GPU usage while the monitor is sleeping, a set of 17 patches were merged today for addressing this issue.
The bug report noted clients still rendering while the monitor is sleeping and thus high GPU usage.The issue was tracked down to un-throttled repainting of the CRTC back-end stage views even when in power savings mode.
The now merged code addresses this issue by handling forward progress without repainting while in the power savings state. Jonas Ådahl of Red Hat who authored the fix explained of the changes:
- It actively decides to not draw when power saving by having the renderer inhibit painting if power saving and a stage view targets a CRTC. This solves the originally reported bug; vkgears, glxgears, es2gears all report ~60 fps while power saving, without having the frame clock having to deal with knowing about power saving.- It handles migrating presentation feedback of frames that gets discarded. This means vkgears properly receives .discarded events while power saving.
The code is merged to Mutter and should be part of the GNOME 51.2 release.