I have a 4k screen. I set the scale factor to 200% on X11. When I log into my Wayland session, the KScreen KCM indicates 200% scale, but everything is actually shown at 100% scale. If I go to the screen KCM, set it to 100%, and then back to 200%, everything is scaled properly. But the automatically chosen scale factor of 200% does not seem to actually take effect until manually applied.
Please include output of "qtdiag" in this setup
While on X11, or Wayland, or both?
Reproduced, got some steps: One needs to: - set the value in wayland - go back to X11 (which can then be left alone) - go back to wayland
qtdiag shows kwin thinks it's in 1x mode
Cause is somewhat obvious, finding a solution is not. kscreen uses the same IDs for outputs on both X11 and wayland When you log into X, due to the way kscreen is designed it updates that configuration - per screen scales aren't supported so it sets it to one. Why does the kcm work? Because kscreen has a "control" folder, which is not updated. The KCM reads from this. I believe it is "technically correct" insofar as it's doing what it's told to be doing, but I don't understand it. See https://phabricator.kde.org/D26481 on the unlikely chance that helps.
*** Bug 436628 has been marked as a duplicate of this bug. ***
*** Bug 437585 has been marked as a duplicate of this bug. ***
*** Bug 439440 has been marked as a duplicate of this bug. ***
*** Bug 442439 has been marked as a duplicate of this bug. ***
I reported what I think is this issue to openSUSE some time ago: https://bugzilla.opensuse.org/show_bug.cgi?id=1186893 It's still reproducible on 5.22.5, even though openSUSE has changed how it handles Plasma sessions a bit since I originally reported it.
This improved recently for me on current git master. Now apps use the scale factor properly after logging into a Wayland session after being in an X11 session, and Plasma kinda sort halfway does: everything has the right *physical* size on screen, but it's all blurry, as if run through XWayland. Restarting plasmashell with `plasmashell --replace` fixes this and then all Plasma UI elements are sharp too.
This appears to be fully fixed now fixed in Plasma 5.24!
This seems like it might have regressed for me, under openSUSE Tumbleweed 20220509 (Plasma 5.24.5, Frameworks 5.93.0). Switching from X11 (at 2× scale) → Wayland gives a 1× scale display (even with a reboot in between), but shows 200% in system settings. I have to switch to another scale, apply, and switch back to get 200% working again. (And some applications remain a bit 'blurry', not taking the new scale factor into account.)
Can confirm, this is broken again. if I go to X11 and then back to Wayland. I wonder if it's related to Bug 449212 in any way.
*** Bug 449321 has been marked as a duplicate of this bug. ***
qtdiag output run from X11 session $ qtdiag MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0 MESA-INTEL: warning: Performance support disabled, consider sysctl dev.i915.perf_stream_paranoid=0 Qt 5.15.3 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 12.1.1 20220507 (Red Hat 12.1.1-1)) on "xcb" OS: Fedora Linux 36 (KDE Plasma) [linux version 5.17.13-300.fc36.x86_64] Architecture: x86_64; features: SSE2 SSE3 SSSE3 SSE4.1 SSE4.2 AVX AVX2 Environment: QT_AUTO_SCREEN_SCALE_FACTOR="0" QT_IM_MODULE="xim" QT_SCREEN_SCALE_FACTORS="eDP-1=2;DP-1=2;HDMI-1=2;DP-2=2;HDMI-2=2;DP-3=2;DP-1-0=2;DP-1-1=2;DP-1-2=2;HDMI-1-0=2;DP-1-3=2;" Features: QT_NO_EXCEPTIONS Library info: PrefixPath: /usr DocumentationPath: /usr/share/doc/qt5 HeadersPath: /usr/include/qt5 LibrariesPath: /usr/lib64 LibraryExecutablesPath: /usr/lib64/qt5/libexec BinariesPath: /usr/lib64/qt5/bin PluginsPath: /usr/lib64/qt5/plugins ImportsPath: /usr/lib64/qt5/imports Qml2ImportsPath: /usr/lib64/qt5/qml ArchDataPath: /usr/lib64/qt5 DataPath: /usr/share/qt5 TranslationsPath: /usr/share/qt5/translations ExamplesPath: /usr/lib64/qt5/examples TestsPath: /usr/tests SettingsPath: /etc/xdg Standard paths [*...* denote writable entry]: DesktopLocation: "Desktop" */home/caterpillar/Scrivania* DocumentsLocation: "Documents" */home/caterpillar/Documenti* FontsLocation: "Fonts" */home/caterpillar/.local/share/fonts* /home/caterpillar/.fonts /home/caterpillar/.local/share/flatpak/exports/share/fonts /var/lib/flatpak/exports/share/fonts /usr/local/share/fonts /usr/share/fonts ApplicationsLocation: "Applications" */home/caterpillar/.local/share/applications* /home/caterpillar/.local/share/flatpak/exports/share/applications /var/lib/flatpak/exports/share/applications /usr/local/share/applications /usr/share/applications MusicLocation: "Music" */home/caterpillar/Musica* MoviesLocation: "Movies" */home/caterpillar/Video* PicturesLocation: "Pictures" */home/caterpillar/Immagini* TempLocation: "Temporary Directory" */tmp* HomeLocation: "Home" */home/caterpillar* AppLocalDataLocation: "Application Data" */home/caterpillar/.local/share/QtProject/qtdiag* /home/caterpillar/.local/share/flatpak/exports/share/QtProject/qtdiag /var/lib/flatpak/exports/share/QtProject/qtdiag /usr/local/share/QtProject/qtdiag /usr/share/QtProject/qtdiag CacheLocation: "Cache" */home/caterpillar/.cache/QtProject/qtdiag* GenericDataLocation: "Shared Data" */home/caterpillar/.local/share* /home/caterpillar/.local/share/flatpak/exports/share /var/lib/flatpak/exports/share /usr/local/share /usr/share RuntimeLocation: "Runtime" */run/user/1000* ConfigLocation: "Configuration" */home/caterpillar/.config* /home/caterpillar/.config/kdedefaults /etc/xdg /usr/share/kde-settings/kde-profile/default/xdg DownloadLocation: "Download" */home/caterpillar/Scaricati* GenericCacheLocation: "Shared Cache" */home/caterpillar/.cache* GenericConfigLocation: "Shared Configuration" */home/caterpillar/.config* /home/caterpillar/.config/kdedefaults /etc/xdg /usr/share/kde-settings/kde-profile/default/xdg AppDataLocation: "Application Data" */home/caterpillar/.local/share/QtProject/qtdiag* /home/caterpillar/.local/share/flatpak/exports/share/QtProject/qtdiag /var/lib/flatpak/exports/share/QtProject/qtdiag /usr/local/share/QtProject/qtdiag /usr/share/QtProject/qtdiag AppConfigLocation: "Application Configuration" */home/caterpillar/.config/QtProject/qtdiag* /home/caterpillar/.config/kdedefaults/QtProject/qtdiag /etc/xdg/QtProject/qtdiag /usr/share/kde-settings/kde-profile/default/xdg/QtProject/qtdiag File selectors (increasing order of precedence): it_IT unix linux fedora Network: Using "OpenSSL 3.0.3 3 May 2022", version: 0x30000030 Platform capabilities: ThreadedPixmaps OpenGL ThreadedOpenGL WindowMasks MultipleWindows ForeignWindows NonFullScreenWindows NativeWidgets WindowManagement SyncState RasterGLSurface SwitchableWidgetComposition Style hints: mouseDoubleClickInterval: 400 mousePressAndHoldInterval: 800 startDragDistance: 10 startDragTime: 500 startDragVelocity: 0 keyboardInputInterval: 400 keyboardAutoRepeatRate: 30 cursorFlashTime: 1000 showIsFullScreen: 0 showIsMaximized: 0 passwordMaskDelay: 0 passwordMaskCharacter: U+25CF fontSmoothingGamma: 1.7 useRtlExtensions: 0 setFocusOnTouchRelease: 0 tabFocusBehavior: Qt::TabFocusAllControls singleClickActivation: 0 Additional style hints (QPlatformIntegration): ReplayMousePressOutsidePopup: 0 Theme: Platforms requested : kde,generic available : kde,gtk3,snap,flatpak,xdgdesktopportal Styles requested : Breeze,breeze,oxygen,fusion,windows available : Breeze,Windows,Fusion Icon theme : breeze, hicolor from /home/caterpillar/.local/share/icons,/usr/share/icons System font : "Noto Sans" 10 Fonts: General font : "Noto Sans" 10 Fixed font : "Noto Sans Mono" 10 Title font : "Noto Sans" 10 Smallest font: "Noto Sans" 8 Palette: QPalette::WindowText: #ff232629 QPalette::Button: #fffcfcfc QPalette::Light: #ffffffff QPalette::Midlight: #fff9fafa QPalette::Dark: #ff71757a QPalette::Mid: #ffbdc1c6 QPalette::Text: #ff232629 QPalette::BrightText: #ffffffff QPalette::ButtonText: #ff232629 QPalette::Base: #ffffffff QPalette::Window: #ffeff0f1 QPalette::Shadow: #ff3b3d3f QPalette::Highlight: #ff3daee9 QPalette::HighlightedText: #ffffffff QPalette::Link: #ff2980b9 QPalette::LinkVisited: #ff9b59b6 QPalette::AlternateBase: #fff7f7f7 QPalette::NoRole: #ff000000 QPalette::ToolTipBase: #fff7f7f7 QPalette::ToolTipText: #ff232629 QPalette::PlaceholderText: #80232629 Screens: 1, High DPI scaling: active # 0 "eDP-1" Depth: 24 Primary: yes Manufacturer: California Institute of Technology Model: Serial number: Geometry: 1920x1080+0+0 (native: 3840x2160+0+0) Available: 1920x1039+0+0 Physical size: 344x194 mm Refresh: 60 Hz Power state: 0 Physical DPI: 141.767,141.402 Logical DPI: 96,96 (native: 192,192) Subpixel_None High DPI scaling factor: 2 DevicePixelRatio: 2 Pixel density: 1 Primary orientation: 2 Orientation: 2 Native orientation: 0 OrientationUpdateMask: 0 LibGL Vendor: Intel Renderer: Mesa Intel(R) UHD Graphics (CML GT2) Version: 4.6 (Compatibility Profile) Mesa 22.1.1 Shading language: 4.60 Format: Version: 4.6 Profile: 2 Swap behavior: 0 Buffer size (RGB): 8,8,8 Profile: None (QOpenGLFunctions_4_6) Vulkan instance available Supported instance extensions: VK_KHR_device_group_creation, version 1 VK_KHR_display, version 23 VK_KHR_external_fence_capabilities, version 1 VK_KHR_external_memory_capabilities, version 1 VK_KHR_external_semaphore_capabilities, version 1 VK_KHR_get_display_properties2, version 1 VK_KHR_get_physical_device_properties2, version 2 VK_KHR_get_surface_capabilities2, version 1 VK_KHR_surface, version 25 VK_KHR_surface_protected_capabilities, version 1 VK_KHR_wayland_surface, version 6 VK_KHR_xcb_surface, version 6 VK_KHR_xlib_surface, version 6 VK_EXT_acquire_drm_display, version 1 VK_EXT_acquire_xlib_display, version 1 VK_EXT_debug_report, version 10 VK_EXT_direct_mode_display, version 1 VK_EXT_display_surface_counter, version 1 VK_EXT_debug_utils, version 2 Supported layers: VK_LAYER_VALVE_steam_overlay_32, version 1, spec version 1.2.136, Steam Overlay Layer VK_LAYER_VALVE_steam_overlay_64, version 1, spec version 1.2.136, Steam Overlay Layer VK_LAYER_VALVE_steam_fossilize_64, version 1, spec version 1.2.136, Steam Pipeline Caching Layer VK_LAYER_VALVE_steam_fossilize_32, version 1, spec version 1.2.136, Steam Pipeline Caching Layer VK_LAYER_NV_optimus, version 1, spec version 1.3.194, NVIDIA Optimus layer VK_LAYER_MESA_device_select, version 1, spec version 1.3.211, Linux device selection layer Available physical devices: API version 1.3.211, vendor 0x8086, device 0x9BC4, Intel(R) UHD Graphics (CML GT2), type 1, driver version 22.1.1 API version 1.3.211, vendor 0x10005, device 0x0, llvmpipe (LLVM 14.0.0, 256 bits), type 4, driver version 0.0.1 API version 1.3.194, vendor 0x10DE, device 0x1E93, NVIDIA GeForce RTX 2080 Super with Max-Q Design, type 2, driver version 510.272.128 Qt Rendering Hardware Interface supported backends: OpenGL (with default QSurfaceFormat): Min Texture Size: 1 Max Texture Size: 16384 Max Color Attachments: 8 Frames in Flight: 1 Uniform Buffer Alignment: 1 Supported MSAA sample counts: 1,2,4,8,16 Features: - MultisampleTexture v MultisampleRenderBuffer - DebugMarkers - Timestamps v Instancing - CustomInstanceStepRate v PrimitiveRestart v NonDynamicUniformBuffers v NonFourAlignedEffectiveIndexBufferOffset v NPOTTextureRepeat - RedOrAlpha8IsRed v ElementIndexUint v Compute v WideLines v VertexShaderPointSize v BaseVertex - BaseInstance v TriangleFanTopology v ReadBackNonUniformBuffer v ReadBackNonBaseMipLevel Texture formats: RGBA8 BGRA8 R8 R16 RED_OR_ALPHA8 RGBA16F RGBA32F R16F R32F D16 D32F BC1 BC2 BC3 ETC2_RGB8 ETC2_RGB8A1 ETC2_RGBA8 Vulkan: Min Texture Size: 1 Max Texture Size: 16384 Max Color Attachments: 8 Frames in Flight: 2 Uniform Buffer Alignment: 64 Supported MSAA sample counts: 1,2,4,8,16 Features: v MultisampleTexture v MultisampleRenderBuffer - DebugMarkers v Timestamps v Instancing - CustomInstanceStepRate v PrimitiveRestart v NonDynamicUniformBuffers v NonFourAlignedEffectiveIndexBufferOffset v NPOTTextureRepeat v RedOrAlpha8IsRed v ElementIndexUint v Compute v WideLines v VertexShaderPointSize v BaseVertex v BaseInstance v TriangleFanTopology v ReadBackNonUniformBuffer v ReadBackNonBaseMipLevel Texture formats: RGBA8 BGRA8 R8 R16 RED_OR_ALPHA8 RGBA16F RGBA32F R16F R32F D16 D32F BC1 BC2 BC3 BC4 BC5 BC6H BC7 ETC2_RGB8 ETC2_RGB8A1 ETC2_RGBA8 ASTC_4x4 ASTC_5x4 ASTC_5x5 ASTC_6x5 ASTC_6x6 ASTC_8x5 ASTC_8x6 ASTC_8x8 ASTC_10x5 ASTC_10x6 ASTC_10x8 ASTC_10x10 ASTC_12x10 ASTC_12x12
*** Bug 458171 has been marked as a duplicate of this bug. ***
*** Bug 432724 has been marked as a duplicate of this bug. ***
Still an issue after the big multi-monitor re-work in Plasma 5.27. Probably what we should do is have the global scale not be written into output configs on X11, so that it when it's written there on Wayland, it survives moving between session types.
Can confirm this is fixed now in Plasma 6.0!
https://invent.kde.org/plasma/kwin/-/merge_requests/5637 > The existing code overwrites all per-output data with the config from KScreen every time an output config is found that isn't in the KWin data base yet > That causes problems like the scale being reset to 1.0 if the user logged into Xorg before Sounds like there's still a chance that it could go wrong, but soon no more? ;)