GNOME Bugzilla – Bug 786918
3.25.91: [scaling] Failed to set CRTC mode 1920x1080: No space left on device
Last modified: 2017-08-30 05:08:35 UTC
Ubuntu 17.10 Beta with GNOME3 Staging PPA GNOME 3.25.91 Ubuntu session (Wayland, Ubuntu Dock, appindicators extension but otherwise fairly stock) I set gsettings org.gnome.mutter experimental-features ['scale-monitor-framebuffer'] and logged out and logged back in. I have a regular HD display (1920x1080) on my laptop with Intel graphics. GNOME Settings>Displays shows these scaling options: 100%, 125%, 150%, 174% All work except for 174%. Setting that makes my screen go black for several seconds until it reverts to the previous setting. journalctl output ================= gnome-shell[6903]: JS WARNING: [resource:///org/gnome/shell/ui/workspaceThumbnail.js 892]: reference to undefined property "_switchWorkspaceNotifyId" gnome-shell: WARNING: addSignalMethods is replacing existing [0x1c04f86f50 Gjs_ShowAppsIcon.dash-item-container] connect method gnome-shell: WARNING: addSignalMethods is replacing existing [0x1c04f86f50 Gjs_ShowAppsIcon.dash-item-container] disconnect method gnome-shell: WARNING: addSignalMethods is replacing existing [0x1c04f86f50 Gjs_ShowAppsIcon.dash-item-container] emit method gnome-shell: WARNING: addSignalMethods is replacing existing [0x1c04f6eda0 Gjs_ShowAppsIcon.dash-item-container] connect method gnome-shell: WARNING: addSignalMethods is replacing existing [0x1c04f6eda0 Gjs_ShowAppsIcon.dash-item-container] disconnect method gnome-shell: WARNING: addSignalMethods is replacing existing [0x1c04f6eda0 Gjs_ShowAppsIcon.dash-item-container] emit method gnome-shell: Failed to set CRTC mode 1920x1080: No space left on device gnome-shell: Failed to flip: Device or resource busy gnome-shell: Failed to set CRTC mode 1920x1080: No space left on device (This no space error is then repeated several times).
Created attachment 358681 [details] [review] renderer/native: Round calculated framebuffer size before casting to int Due to rounding issues, we can't assume a floating point calculation will end up on an integer, even if we got the factor from the reverse calculation. Thus, to avoid casting away values like N.999... to N, when they should really be N+1, round the resulting floating point calculation before casting it to int. This fixes an issue where using the scale ~1.739 on a 1920x1080 mode resulted in error when setting the mode, as the calculated size of the framebuffer was only 1919x1080.
Review of attachment 358681 [details] [review]: makes sense
Attachment 358681 [details] pushed as 8a32b42 - renderer/native: Round calculated framebuffer size before casting to int