Description
jhnnslschnr
2014-08-23 19:26:31 UTC
Its defenetly to the down-scaling. A lot of my Wallpapers have a native Resolution of my digital Camera (46 Megapixels), if i choose them as wallpaper, its like taking of my glasses. I can confirm that this does not happen with Plasma 4 or GNOME 3 or Windows or any other DE on this planet, would be nice if this is _not_ a feature ;) Please attach a wallpaper that goes wrong when scaling. Created attachment 88437 [details]
test image with sharp edged text and high resolution
Heh, nice idea. Thanks. I see why. When we load the image, as well as scaling the image (which is all trilinear and smooth and lovely) we also set a sourceSize. This sourceSize determines how big the original texture we load is, which is done by the QImageLoader, which is clearly not quite as smooth. It's rather important as otherwise we end up keeping a monsterous uncompressed image in both heap and GPU memory. I don't want to see that reverted as that just gives us a different problem. If you can, could you find /usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml and remove the lines sourceSize { width: imageA.width height: imageA.height } (and the same for imageB) and see if that makes a difference. We may need to go back to making wallpapers go via the old cpp wallpaper loading. Created attachment 88439 [details]
Screenshot of the test wallpaper in scaled and cropped mode after editing the main.qml
Editing main.qml did change it, now it does not get blurred anymore, but it is still strange: There are grey pixels, meaning it gets interpolated in some way, but most parts are very edgy. In KDE 4 the wallpaper is shown more smoothly.
This still occurs in the current state of Kubuntu 15.04 -- I don't imagine it'll help much to attach more images, but it's easy to reproduce. #347610 seems to be a duplicate I'm also affected by this bug. How to reproduce: 1. Choose high-res image with contrasty sharp edges 2. Set as wallpaper 3. It looks blurry as hell 4. Scale the image with gimp to native screen resolution 5. Set scaled image as wallpaper and it looks a lot better Scaling the image is not a real option for me, as i often use external displays with different resolutions, so i would have to switch to a differently scaled wallpaper everytime i attach a different screen to my laptop. I'm also affected by this bug. *** Bug 349591 has been marked as a duplicate of this bug. *** (In reply to David Edmundson from comment #5) > I see why. > > When we load the image, as well as scaling the image (which is all trilinear > and smooth and lovely) we also set a sourceSize. > > This sourceSize determines how big the original texture we load is, which is > done by the QImageLoader, which is clearly not quite as smooth. > > It's rather important as otherwise we end up keeping a monsterous > uncompressed image in both heap and GPU memory. I don't want to see that > reverted as that just gives us a different problem. > > If you can, could you find > /usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml and remove > the lines > > sourceSize { > width: imageA.width > height: imageA.height > } > > (and the same for imageB) and see if that makes a difference. > > We may need to go back to making wallpapers go via the old cpp wallpaper > loading. Is there another way to workaround this annoyance? I don;t have these lines in /usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml anymore, but the wallpapers are still blurry and thus ugly. Maybe, since it doesn't look like anyone has the intention of fixing the bug, maybe a currently valid workaround could be described? This really makes the KDE desktop, which had been beautiful for years, look like a nightmare. The workaround is really easy: you just need to do like you did in the late 1990 with Windows 95 and 98. Put a Ace of Base album and some AA-batteries in your portable CD player and put one of your neon shirts on. Then open your preferred image editor like Krita, Deluxe Paint or Gimp. I like Krita because it has a direct menu to resize an image (http://www.davidrevoy.com/data/images/blog/2013/09/gettingstarted3/tutorial-getting-started-krita_part3_03.tb.jpg). Then resize to your screen resolution, save, use as your wallpaper and drink a Crystal Pepsi to refresh yourself after this hard work :-) (In reply to Stéphane Tréboux from comment #14) > The workaround is really easy: you just need to do like you did in the late > 1990 with Windows 95 and 98. Put a Ace of Base album and some AA-batteries > in your portable CD player and put one of your neon shirts on. Then open > your preferred image editor like Krita, Deluxe Paint or Gimp. I like Krita > because it has a direct menu to resize an image > (http://www.davidrevoy.com/data/images/blog/2013/09/gettingstarted3/tutorial- > getting-started-krita_part3_03.tb.jpg). Then resize to your screen > resolution, save, use as your wallpaper and drink a Crystal Pepsi to refresh > yourself after this hard work :-) No, I will not keep separate copies of the ~thousand pictures I use in the wallpaper slideshow and i will not readjust the settings when I change a monitor (which I do many times a day). I'd recommend thinking of other-than-yourself cases before you make fun of someone. HI Kornel, You didn't mentioned you are using a sideshow with different monitors; since l don't live inside your computer I couldn't guess. And the humor is not about a person in particular, it's about Plasma not implementing correctly a feature which is standard since Windows XP. I have no idea on how to fix the root issue in Plasma. If you want to consider resizing your (many) pictures here are a few pointers. This will return the current monitor resolution: xrandr | grep \* | awk '{print $1}' Then this resolution can be used as a parameter for the "convert" tool (based on ImageMagick). And this even works without wearing a neon shirt :-) Have a nice week! (In reply to Stéphane Tréboux from comment #16) > HI Kornel, > > You didn't mentioned you are using a sideshow with different monitors; since > l don't live inside your computer I couldn't guess. And the humor is not > about a person in particular, it's about Plasma not implementing correctly a > feature which is standard since Windows XP. > > I have no idea on how to fix the root issue in Plasma. > If you want to consider resizing your (many) pictures here are a few > pointers. > This will return the current monitor resolution: > xrandr | grep \* | awk '{print $1}' > Then this resolution can be used as a parameter for the "convert" tool > (based on ImageMagick). > And this even works without wearing a neon shirt :-) > > Have a nice week! Sorry for the overreaction, but as much as I loved plasma4 and all od KDE4, I now am forced to be angry with the newer versions. Just too many places where things went wrong and it's on the verge of usability.. Possible workaround: Delete all lines assigning currentImage.sourceSize from /usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml Heres a patch: http://pastebin.com/XcUw4wpr Created attachment 93803 [details]
Screenshot of the test wallpaper in scaled and cropped mode after applying the patch from Thomas Wucher
This patch works for me (tested with scaled and scaled and cropped). A screenshot of the result is attached, it looks ok for me.
(In reply to Thomas Wucher from comment #18) > Possible workaround: > > Delete all lines assigning currentImage.sourceSize from > /usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml > > Heres a patch: http://pastebin.com/XcUw4wpr You're the king! :) This ain't workaround, this is the fix. Developers, please include this patch.. It fixes something that is simply broken. And I don't mean "just" the blurriness - I mean also other scaling modes which provided weird results. Thanks! This is a workaround please see comment 5 David is right, my patch is definitely just a workaraound. I recommend to scale your images with your favourite image editing tool to fit the largest resolution you are usually using. Scaling down to smaller screen works well when my patch is applied and you don't waste a lot of memory, so this should be a good compromise. (In reply to jhnnslschnr from comment #6) I dont know why i found that strange, the fix from comment #5 had pretty much the same result as the patch (compare the screenshots). However i cant find those lines in main.qml anymore. In my case applying this results, unfortunately, in getting a black screen instead of any kind of wallpaper. //Could somebody please post the original file somewhere if they have it somewhere handy? The response to this was so enthusiastic that I lost the originals while patching.. Created attachment 93818 [details]
original main.qml from plasma 5.3.2
Created attachment 93819 [details]
original main.qml from plasma 5.3.2
Sorry, was the modified, now corrected.
This issue still happens to me after patching main.qml. It of course only happens when the resolution of the wallpaper does not match the resolution of the screen, and might be exacerbated by the fact that the screens where this is currently happening to me are 90°-rotated screens. I'm attaching a screenshot of my desktop and the wallpaper I'm using so you can see what i mean. If I had not ditched KDE 4 I would be able to take a screenshot of the same desk under KDE 4 ;) Created attachment 95438 [details]
Issue still happening on rotated screens after patching main.qml
Created attachment 95439 [details] Wallpaper to verify what should actually be shown Had to downgrade the quality a bit or I would go over the limit. Original file is in https://interfacelift.com/wallpaper/details/3162/christmas_eve_in_seattle.html with a 3840x2400 resolution That really should be fixed now. It's a really really basic feature and make KDE look like half backed whereas it's not. Look at the difference between KDE and Gnome : KDE http://bit.ly/1lnG2Oh Gnome http://bit.ly/1lnG5tA https://forum.manjaro.org/index.php?topic=28705.0 A little reminder. I realize that the normal mode of operation for open source software is "feel free to fix it yourself if the project's normal contributors aren't responding as fast as you would like", but this bug seems to require some expert knowledge to fix without introducing the issues that David Edmundson described in comment #5. This bug is still present in Kubuntu 15.10 (Plasma 5.4.2 I think) and the current unfinished state of what will be Kubuntu 16.04 LTS (a mix between Plasma 5.4.3 and 5.5 as far as I can tell). I agree with others in that this makes the Plasma 5 desktop look unfinished and unpolished; it makes me think "if this important functionality is broken in Plasma 5 (despite it being a solved problem for a long time, and working perfectly in every other contemporary operating system and desktop environment), I wonder what else is broken. Maybe I'd rather not find out the hard way, and stick with KDE 4 for now." This bug was filed against Arch's packages, but I think it's reasonable to say that many users will first experience Plasma 5 by using/trying Kubuntu 16.04 LTS, and it would be really nice if this could be fixed in whatever Plasma version (5.6?) ships with that distribution. > "if this important functionality is broken in Plasma 5 (despite it being a solved problem for a long time, and working perfectly in every other contemporary operating system and desktop environment), I wonder what else is broken."
I agree with this feeling but I think it's not fair. A lot of work has been, and is being made in Plasma 5, KF5 and KDE apps.
I think Mr. Ruffalo's main point was how badly that makes KDEPlasma look, even though we know how much work was put into it. And he is right, because an average user won't look at the bug tracker to see if someone's attending such an issue, but just say "Ugh, this is ugly, give me my windows back." - And they would be right, because a wallpaper is a really basic UX thing, it shouldn't be rocket science in a DE like this. It is hard for an average user to understand what kind and how much work was put into KDE, and they won't even try if their wallpaper will look as they spilled something on it. And this is one of a few reasons (there were a few other similar unsolved issues like this) I myself got back to using KDE4. How does thinking how beautiful an engine runs things help me, when I can't connect a monitor without crashing Plasma and my wallpaper is blurred to a point where I start checking if my glasses are still alright? And it's, i think, a valuable point to make here, what Mr. was also trying to put through, if I got him right, is that maybe there should be some better prioritization of work: For it's really hard to appreciate a car when it has an ugly, rusty body that puts everyone off, even if the insides are Ferrari. Especially when it seems that this little paint job shouldn't be such a great strain to someone who knows the proper KDE insides. > (In reply to David Edmundson from comment #5)
> This sourceSize determines how big the original texture we load is, which is
> done by the QImageLoader, which is clearly not quite as smooth.
Is it planned to fix QImageLoader ? That seem to be the right way to fix this don't you think ?
Should we understand that nothing is planned ? That's disappointing Same problem here I think this bug should get a higher priority, just because you can tell that a lot of work went into making Plasma 5 beautiful, and this bug spoils it. I am okay with working around it by saving cropped versions of my photos and using the centered wallpaper mode, but the average user isn't going to know what the problem is or how to work around it. They'll just get frustrated and switch to something else, which would be a shame. I'm looking forward to this getting fixed soon (fingers crossed). (In reply to David Edmundson from comment #5) > This sourceSize determines how big the original texture we load is, which is > done by the QImageLoader, which is clearly not quite as smooth. > > It's rather important as otherwise we end up keeping a monsterous > uncompressed image in both heap and GPU memory. I don't want to see that > reverted as that just gives us a different problem. Is there no way to load the image from file, smoothly downscale it to the currently needed resolution(s), and only save this result(s) in heap and GPU memory? Is there a fix planned ? *** Bug 349392 has been marked as a duplicate of this bug. *** I can confirm this problem and am also affected by it: I use Slideshow as my wallpaper type, with Scaled and Cropped for positioning. Some high resolution wallpapers (not all, appears to be random) appear blurry and pixelated. Opening the same image in Gwenview and zooming to the exact same size looks fine however. This did not exist in KDE4, and started happening with Plasma 5. Very annoying bug... please try to find a fix for this! I'm thinking using KDE again but will this be fixed ? Thanks ! I know that the devs are very very busy but since nothing seems to be done for 2 years about this bug I opened an issue against Qt. I don't know if it's the right thing to do, but at least I try to do something. https://bugreports.qt.io/browse/QTBUG-55571 Good news ! The bug is under investigations in Qt. https://bugreports.qt.io/browse/QTBUG-55571 Still existing in Plasma 5.8.3. This issue is still an annoyance in Plasma 5.8.4, KDE Frameworks 5.28.0, QT 5.7.0. I really hope we will be seeing it fixed, it's messing up a lot of high-resolution wallpapers. I found the problem and a fix! Setting sourceImage.size to the size of the screen may change the aspect ratio of the image. Qt handles this especially badly and I think there is a bug in Qt regarding that. However, there is no reason to change the aspect ratio back and forth. It's better to set just the width or the height of the source and let Qt keep the aspect ratio. Changing all occurrences of the line currentImage.sourceSize = Qt.size(root.width, root.height) in /usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml to currentImage.sourceSize.width = root.width fixes it for me. I think this is an actual fix, not just a workaround. Created attachment 102776 [details]
Patch for main.qml to keep the aspect ratio
Actually the correct solution would involve figuring out whether sourceSize.width or sourceSize.height should be set (depends on the relative aspect ratios of the screen and the wallpaper image). But this patch should serve as a decent workaround as long as the aspect ratios are not vastly different. (In reply to Tuukka Verho from comment #49) > I found the problem and a fix! > > Setting sourceImage.size to the size of the screen may change the aspect > ratio of the image. Qt handles this especially badly and I think there is a > bug in Qt regarding that. However, there is no reason to change the aspect > ratio back and forth. It's better to set just the width or the height of the > source and let Qt keep the aspect ratio. > > Changing all occurrences of the line > > currentImage.sourceSize = Qt.size(root.width, root.height) > > in /usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml to > > currentImage.sourceSize.width = root.width > > fixes it for me. I think this is an actual fix, not just a workaround. It is exactly workaround, the user cannot change these values for every single image he/she uses. (In reply to Tuukka Verho from comment #49) Thank you very much for the fix, I hope it will be in soon! I hope this doesn't mean QT is currently rescaling the image with some builtin image processing tool, which IMO would be silly and absolutely unnecessary: It should simply display the image at a size that fits the screen, resizing it just like a web browser resizes an embedded image to make it fit a HTML element. I thought this is what it was doing all along... (In reply to Tuukka Verho from comment #49) > Setting sourceImage.size to the size of the screen may change the aspect > ratio of the image. Qt handles this especially badly and I think there is a > bug in Qt regarding that. However, there is no reason to change the aspect > ratio back and forth. It's better to set just the width or the height of the > source and let Qt keep the aspect ratio. Actually the Qt documentation says the aspect ratio will be maintained regardless of what the sourceSize is. So the patch should not be needed and this must be a Qt bug, somehow Qt manages to mess up the scaling in some cases when using sourceSize. I have submitted a report: https://bugreports.qt.io/browse/QTBUG-57619 (In reply to Mircea Kitsune from comment #53) > (In reply to Tuukka Verho from comment #49) > > Thank you very much for the fix, I hope it will be in soon! I hope this > doesn't mean QT is currently rescaling the image with some builtin image > processing tool, which IMO would be silly and absolutely unnecessary: It > should simply display the image at a size that fits the screen, resizing it > just like a web browser resizes an embedded image to make it fit a HTML > element. I thought this is what it was doing all along... Well, it has to load the image to memory before drawing it to the screen. The question is, in which size it should load it? If you can assume the display size of the image stays constant (like in the case of a wallpaper), it makes sense to save it at the same size as it is shown. However, Qt Quick was designed for dynamic interfaces without such assumptions, so you have to tell it the size you want to store it. (In reply to Tuukka Verho from comment #51) > But this patch should serve as a decent workaround as long as the aspect ratios are not vastly different. Indeed. If a screen is rotated (like in my previous example) the issue still occurs after patching main.qml in this alternative way unfortunately. (In reply to godlike from comment #56) > Indeed. If a screen is rotated (like in my previous example) the issue still > occurs after patching main.qml in this alternative way unfortunately. It's a bit strange that you have the bug even after applying the patch from comment #20. I can see the bug in both your rotated and non-rotated screens. Could you make sure you have removed or commented out all occurrences of the line currentImage.sourceSize = Qt.size(root.width, root.height) in your main.qml? If you make any changes, log out and log in again. (In reply to Tuukka Verho from comment #57) > (In reply to godlike from comment #56) > > Indeed. If a screen is rotated (like in my previous example) the issue still > > occurs after patching main.qml in this alternative way unfortunately. > > It's a bit strange that you have the bug even after applying the patch from > comment #20. I can see the bug in both your rotated and non-rotated screens. > Could you make sure you have removed or commented out all occurrences of the > line > > currentImage.sourceSize = Qt.size(root.width, root.height) > > in your main.qml? If you make any changes, log out and log in again. I was reloading plasma shell but for the sake of testing I logged out and back in. Neither with: currentImage.sourceSize.width = root.width nor with those lines commented can I get a good rendering of the wallpaper on my rotated screen. Were you able to temporarily rotate a screen and get a nice looking wallpaper on it? BTW I'm currently at plasma-5.8.3 with QT 5.7 (In reply to godlike from comment #58) > (In reply to Tuukka Verho from comment #57) > > (In reply to godlike from comment #56) > > > Indeed. If a screen is rotated (like in my previous example) the issue still > > > occurs after patching main.qml in this alternative way unfortunately. > > > > It's a bit strange that you have the bug even after applying the patch from > > comment #20. I can see the bug in both your rotated and non-rotated screens. > > Could you make sure you have removed or commented out all occurrences of the > > line > > > > currentImage.sourceSize = Qt.size(root.width, root.height) > > > > in your main.qml? If you make any changes, log out and log in again. > > I was reloading plasma shell but for the sake of testing I logged out and > back in. Neither with: > > currentImage.sourceSize.width = root.width > > nor with those lines commented can I get a good rendering of the wallpaper > on my rotated screen. Were you able to temporarily rotate a screen and get a > nice looking wallpaper on it? > > BTW I'm currently at plasma-5.8.3 with QT 5.7 I rotated the wallpaper (instead of monitor) and it looked good. I can see that grid-like pattern in both your landscape and rotated screens in your screenshot in comment #28. I only get that pattern when sourceSize is being used. Also the rotated images are very blurry, that would be expected when you use sourceSize. Created attachment 102799 [details] Closeup of a non-rotated screen in the comment #28 screenshot, showing a grid-like pattern godlike: the following minimal test should show whether you have the bug even without sourceSize. You need to install qmlscene, and save the following code into test.qml. Put the wallpaper to the same directory (adjust the filename if necessary) and then run with "qmlscene test.qml". It should show a very obvious grid-like pattern (at least if you take a screenshot and zoom in). Then you can try commenting out the sourceSize line to see whether that gets rid of the pattern of not. test.qml: import QtQuick 2.5 Image { width: 900 height: 600 source: "03162_christmaseveinseattle_3840x2400.jpg" sourceSize: Qt.size(width, height) // try commenting this out } The associated Qt bugfix has been merged into the dev (Qt 5.9) branch. This bug can be closed now it seem ? https://bugreports.qt.io/browse/QTBUG-55571 (In reply to Tuukka Verho from comment #61) > godlike: the following minimal test should show whether you have the bug > even without sourceSize. You need to install qmlscene, and save the > following code into test.qml. Put the wallpaper to the same directory > (adjust the filename if necessary) and then run with "qmlscene test.qml". It > should show a very obvious grid-like pattern (at least if you take a > screenshot and zoom in). Then you can try commenting out the sourceSize line > to see whether that gets rid of the pattern of not. > > test.qml: > > import QtQuick 2.5 > Image { > width: 900 > height: 600 > source: "03162_christmaseveinseattle_3840x2400.jpg" > sourceSize: Qt.size(width, height) // try commenting this out > } Sorry for the (HUGE) delay. I can clearly see a difference between commenting and uncommenting. With sourceSize commented, the image look much crisper (less blurriness). Does this mean that something must be updated? As I've said before, all appearances of sourceSize have been commented in my /usr/share/plasma/wallpapers/org.kde.image/contents/ui/main.qml but the issue still persists. Should I update to qt-5.9 once it's released? > This bug can be closed now it seem ?
This bug hasn't been reproduced since I've updated to QT 5.9
Created attachment 107483 [details]
A picture with a large width and a small height.
Currently I am using the Arch Linux x86_64 package plasma-workspace version 5.10.4-2.
With this version, I cannot reproduce the problem, if the “Positioning” option is set to “Scaled and Cropped”.
Unfortunately, now there is blurring, if the “Positioning” option is set to “Scaled”. I attached two svg pictures that show the problem very clearly. The problem seems to occur, when the aspect ration of the picture deviates significantly from the aspect ration of the screen.
Also I noticed that plasmashell occasionally segfaults when changing the “Positioning” option between “Scaled” and “Scaled and Cropped” and applying the change afterwards. (Maybe this is worth a separate bug report.)
Created attachment 107484 [details]
A picture with a small width and a large height.
Updated to qt-5.9.1 today (and frameworks-5.37, plasma-5.10, apps-17.08 in the process) and I am no longer hitting the blurry issue. The sourceSize lines in main.qml are there (due to the update) but the issue is not present. Does this mean this was a QT bug all along? Created attachment 107492 [details] attachment-18480-0.html yes On Thu, Aug 24, 2017 at 4:51 AM, godlike <bugzilla_noreply@kde.org> wrote: > https://bugs.kde.org/show_bug.cgi?id=338506 > > --- Comment #69 from godlike <godlike64@gmail.com> --- > Updated to qt-5.9.1 today (and frameworks-5.37, plasma-5.10, apps-17.08 in > the > process) and I am no longer hitting the blurry issue. The sourceSize lines > in > main.qml are there (due to the update) but the issue is not present. Does > this > mean this was a QT bug all along? > > -- > You are receiving this mail because: > You are on the CC list for the bug. > |