SUMMARY Using the "Apply scaling themselves" option for Legacy applications causes these applications to use scaling even on non-scaled displays. When opened on non-scaled displays the are scaled down again as if they think they are running on a larger display. This is a problem for my mixed-DPI setups and Wine applications (i.e. game launchers). But it also affects Steam, as it is a GTK-2 application. Steam looks perfectly fine on my 4k scaled display, but looks as if it is scaled down on my non-scaled 1080p displays. Games that run in windowed mode have the same problem. This makes the text look blocky and everything is small, as if running on the scaled displays native resolution or close thereto. Here is an example of how Steam looks on a 1080p display with this setting: https://i.imgur.com/uhet2Jg.png The problem is not exclusive to Steam, it is just my prevailing example as I use Steam on a daily basis. It affects any Wine application I use as well (Battlenet, any game launchers, etc) as currently Wine does have Wayland support. The only X11 application I can find seemingly not affected by this is MegaSync, I don't believe it supports Wayland but it seems to be showing up correctly. Very odd. Though a significant enough number of X11 applications I use are affected by this that I feel comfortable viewing this as an outlier rather than the other applications I use being the exceptions. Maybe MegaSync does actually support Wayland and I just happened to not realise :-) It doesn't look perfect, there are a few colouring problems with the corners, but that could be entirely unrelated. Some maximised X11 applications also do not "fully maximise", there is a sliver on the right or on the bottom usually where it does not fully maximise. Here is an example of what I mean: https://i.imgur.com/MFzZG0o.png X11 applications such as games only report a maximum resolution of 2880x1620, when my scaled display's native resolution is 3840x2160. I wonder if the issues are related, though I will be opening a separate issue for that after this one :-) STEPS TO REPRODUCE 1. Enable "Apply Scaling Themselves" option for Legacy X11 scaling options on a mixed DPI setup. 2. Open an X11 application. 3. It will appear as if it is scaled down from the scaled display resolution. OBSERVED RESULT The vast majority of my X11 applications are seemingly scaled down from the maximum display's resolution on mixed-DPI setups. EXPECTED RESULT X11 applications should look unscaled on non-scaled displays. SOFTWARE/OS VERSIONS Linux/KDE Plasma: 5.19.8-zen1-1-zen (64bit) KDE Plasma Version: 5.25.90 KDE Frameworks Version: 5.98.0 Qt Version: 5.15.6 ADDITIONAL INFORMATION Wayland issue :-)
I should mention that this is particularly a problem as this option is enabled **by default** on Plasma, and it's possible a sizeable chunk of Plasma users will be affected by Steam and Wine applications not scaling correctly. It affects any application running through Wine it seems, which these days with Proton is a large amount.
This is the way it has to be. On X11, scaling can't be done per-monitor, only globally. So this option applies a single scale to your XWayland-using apps. So basically if you have a mixed-scale monitor setup, you're stuck with one of these options - Use XWayland client scaling, which will make windows too big on your lower-scale screens - Don't, which will make windows too small on your higher-scale screens There isn't anything we can do beyond offering this choice. The true solution is for these apps to finally gain real Wayland support.
I agree that true Wayland support is the way forward, but is there no way this can be done per-application? Running X11 Steam the way it is now but allowing games to use the full resolution of a scaled display? It could be quite a long time before Wine gets support for Wayland, and for Steam itself who knows. For some applications, the scaling tradeoff is worth it (games), but not for others (GUI applications). Is there really no better way to handle this? That would be really disappointing for the future of gaming on Linux...
(I wish I could edit comments, sorry for the double comment) If these are truly the only two options, is there a way this could be disabled for mixed-DPI displays? It makes for a pretty bad user experience if a user say, opens Steam or any of the other still primarily X11 applications (Electron apps and some Flatpaks) and they are scaled incorrectly on one monitor but not their others. You could make the argument that if they have to open their display settings to scale a display anyway, then it might not matter, but an average user will probably not know how to distinguish the options no matter how they are worded, and they may skip over it and assume that the defaults are fine. Heck, I would wager a lot of regular folks won't even know what X11 means. Making the previous behaviour the default may not be quite right either, as I am sure there are many users without a mixed-DPI setup. So if possible, changing the default option depending on the user's setup would be better than changing the default for everyone. But I'm sure this idea of changing the default for mixed-DPI users is not without downsides I might not be aware of. I'm aware Plasma Wayland still isn't ready for all users yet. I've been using it for almost a full year now and hats off to the Plasma team for the massive strides that are being made. For many users, X11 is still the way to go, but for users like myself who need fractional display scaling, adaptive sync and high refresh rate support we don't really have much of a choice - Not to mention the performance gains in several games from Plasma Wayland. Hence why I make so many bug reports relating to Wayland, it's my daily driver and I want to get the most out of it :)
(once again sorry for the TRIPLE comment) Just thought of another case where this could be a bad user experience. Someone with a mixed-DPI setup upgrading to Plasma 5.26 and having their applications like Steam scaled incorrectly, and not knowing what the problem is. I follow a certain blog detailing adventures in Linux and KDE and that's how I found out about the feature change ;-) I'm also quite sure this will be mentioned in the Plasma 5.26 changelog, in fact I'm fairly sure it was even mentioned in the Beta changelog. But not every user will read a changelog. Maybe even a lot of users. This would be a jarring thing to see after an update, and it's easily something a user might reinstall over. I dunno, I certainly see the merit and the reason to have this as a general default but I can also see it being a big annoyance to other users. Though you could say this is currently par for the course with Wayland, eventually Wayland will be what we move over to, and user experience issues like this might only add to the frustrations a new user might feel.
If you want KWin to be in charge of scaling again, you can disable the feature in System Settings > Display & Monitor >Legacy Applications (X11): Scaled by the system. The problem is, for someone with your setup, it's not really a better experience on net; it just changes the bug from "XWayland windows are too big on unscaled displays" to "XWayland windows are too small on scaled displays". The current default setting on the other hand is much better for people with only a single scaled screen, or with a multiscreen setup where all screens have the same DPI--which we were able to deduce were by far the most common setups using our telemetry. The mixed-DPI-multi-monitor use case is actually rather rare and niche compared to those two. It's theoretically possible that we could improve this for people with that use case by running each XWayland app window with its own private XWayland server, and then we could lie to it about the scale when that window is moved to an unscaled screen. But this would increase resource usage by quite a lot.
> But this would increase resource usage by quite a lot. Is there a rough estimation how much overhead it would introduce per app?
> If you want KWin to be in charge of scaling again, you can disable the feature in System Settings > Display & Monitor >Legacy Applications (X11): Scaled by the system. Yes, and this is what I did when I was using the Beta. I haven't seen any indication of it going anywhere but I'd like to voice my support for keeping this option around as long as possible please. My issue with this a "solution" (I know that's not what you're marketing it as, I just don't know what the better word is) is that doing this when going between games is just... not ideal, you know? Even if/when games with the new option can see the full resolution of the scaled display, going back and forth with this option is going to get tiresome. I've read your replies and I understand not much can be done. > The problem is, for someone with your setup, it's not really a better experience on net; it just changes the bug from "XWayland windows are too big on unscaled displays" to "XWayland windows are too small on scaled displays". I suppose that's true, it's just my own opinion that the behaviour in 5.25 and below is preferrable. This may not be the case for all users with a similar setup to my own. Fair enough. > The current default setting on the other hand is much better for people with only a single scaled screen, or with a multiscreen setup where all screens have the same DPI--which we were able to deduce were by far the most common setups using our telemetry. The mixed-DPI-multi-monitor use case is actually rather rare and niche compared to those two. Oh wow, really? I certainly see having multiple screens all the same res being common, but I would've said a scaled display + non-scaled display would've been really common considering the many Windows setups I've seen. Maybe the telemetry results are skewed slightly though since the Wayland experience may not be ideal for many users, and since Linux users know that the mixed-DPI experience isn't great, those users either avoid Wayland or avoid Linux. But that's purely, 100% speculation and an entirely different topic. I studied compsci, not statistics, so take my opinion with a grain of salt :-) All I can say is, anyone I know with a gaming PC that runs Windows has at least one 4k display and one other screen. No other DE has anywhere near the support Plasma has for fractional scaling and multi-monitor approaches (no slander to other DEs here, just my experience for my setup). KDE is really in a league of its own here, so if I was going to recommend Linux to anyone Plasma is the DE I would have to recommend because of their setups. Yes, that's all anecdotal, but this *could* become a problem in future. People with Steam Decks might look to installing Linux on their gaming PCs and be sorely disappointed when by default their XWayland apps (and they have no idea what "XWayland" means) are illegible, and when they change the Display settings to go back to the old behaviour, their games don't run in full 4k. Worrying about what "could" be a problem might seem fruitless but looking at PCs generally, I do wonder if this setup will *always* remain niche as Linux starts to pick up marketshare. It could be seen as a "cross that bridge when we come to it" scenario, but that's not for me to decide. I'm not a Plasma dev and I mean no disrespect to yourself or any of the Plasma team (on the contrary, I have incredible respect), I am only perhaps over-zealously wanting to emphasise my desire for a better solution somehow, someday, in the hopes that at some point there might be a solution that someone can contribute based on the grounds I have laid out in this ticket. I am not trying to "demand" anything and if there was something, immediately, that could be done, I am sure it would've been done already :-) > It's theoretically possible that we could improve this for people with that use case by running each XWayland app window with its own private XWayland server, and then we could lie to it about the scale when that window is moved to an unscaled screen. But this would increase resource usage by quite a lot. Ah, that's a really good point. Even just running games with GameScope on top of KWin (which accomplishes something loosely similar) adds such a drastic performance overhead that causes performance issues in games. -------- This is probably not possible and if it is, for another ticket (maybe related to Bug 459185), but the issue would be mitigated if XWayland games could somehow always see the full resolution and not the scaled resolution of a display. Even when Wine eventually (hopefully) picks up native Wayland support, there are older native games which are going to be stuck on XWayland. Thanks for all your time, patience and willingness to engage in discussion. Though I am passionate I do not ever want to come across as rude, and I hope my conduct with this issue has been acceptable.
(In reply to postix from comment #7) > > But this would increase resource usage by quite a lot. > Is there a rough estimation how much overhead it would introduce per app? It's a good question, and I'm not sure. Maybe ask in the #kwin room? (In reply to indecisiveautomator from comment #8) > I haven't seen any > indication of it going anywhere but I'd like to voice my support for keeping > this option around as long as possible please. Oh yes, it's never going to go away. That would be quite silly. :) > Oh wow, really? I certainly see having multiple screens all the same res > being common, but I would've said a scaled display + non-scaled display > would've been really common considering the many Windows setups I've seen. > Maybe the telemetry results are skewed slightly though since the Wayland > experience may not be ideal for many users, and since Linux users know that > the mixed-DPI experience isn't great, those users either avoid Wayland or > avoid Linux. But that's purely, 100% speculation and an entirely different > topic. I studied compsci, not statistics, so take my opinion with a grain of > salt :-) I'm sure it is skewed since our telemetry is opt-in. But unfortunately it's the best we've got right now. In general it seems like 1080p is the most common resolution for both laptop and external screens among KDE users, so even if you're one of those people who connects a laptop to a monitor while at a desk, if they're both 1080p, then there is no problem. I suspect another angle is our users on average being more informed than average and deliberately purchasing hardware with the goal of avoiding mixed DPI setups, knowing all the pitfalls that can result. It's my dream that one day this won't have to be the case! > > All I can say is, anyone I know with a gaming PC that runs Windows has at > least one 4k display and one other screen. No other DE has anywhere near the > support Plasma has for fractional scaling and multi-monitor approaches (no > slander to other DEs here, just my experience for my setup). KDE is really > in a league of its own here, so if I was going to recommend Linux to anyone > Plasma is the DE I would have to recommend because of their setups. Yes, > that's all anecdotal, but this *could* become a problem in future. People > with Steam Decks might look to installing Linux on their gaming PCs and be > sorely disappointed when by default their XWayland apps (and they have no > idea what "XWayland" means) are illegible, and when they change the Display > settings to go back to the old behaviour, their games don't run in full 4k. That's an interesting assessment, because from my perspective multi-monitor is a strategic weakness of ours that we need to get better at. We're working on it. I would suggest that your peer group is pretty un-representative, though. 4K monitors for laptops and desktops are still quite rare on a global basis. See https://gs.statcounter.com/screen-resolution-stats/desktop/worldwide Even in the tech-happy early-adopting USA, the 4K resolution is somewhere in the 3% "other" category! > Thanks for all your time, patience and willingness to engage in discussion. > Though I am passionate I do not ever want to come across as rude, and I hope > my conduct with this issue has been acceptable. You're very welcome! Your conduct has been exemplary. I wish all bug reporters were as patient and understand as you are. :)