Review Request: Fix for bug 264444: ksplashx shows garbage when background image does not properly cover entire screen

Ivo Anjo knuckles at gmail.com
Sat Apr 30 11:12:53 BST 2011



> On March 17, 2011, 10:28 p.m., Oswald Buddenhagen wrote:
> > the root problem is that the image does not cover the background entirely, and therefore *that* should be fixed instead of coming up with workarounds to disguise it. i made some pretty sophisticated cropping/scaling code in kdm/kfrontend/themer/kdmpixmap.cpp (findBestPixmap()). ideally, that code would be transplanted to plasma as well.
> 
> Christoph Feck wrote:
>     Agreed. A full image.fill() only slows down the startup process, so ideally the graphics should be fixed. AT LEAST make sure that only the small uncovered region is cleared by one or two QPainter::fillRect().
> 
> Oswald Buddenhagen wrote:
>     nah, the performance impact of that is so small compared to loading the images that it will be hard to measure accurately. i'm more concerned about the correctness of the approach.
> 
> Ivo Anjo wrote:
>     I agree that ksplashx should be corrected to have better scaling (plasma, kdm and ksplashx should all use the same scaling).
>     As I've said some ksplashx themes have this issue on dual monitors (one monitor shows the splash, other shows garbage). Changing the wallpaper is just a way of triggering this.
>     
>     While ksplashx isn't changed to reject those older themes, or to scale the background to match the screen size, this patch is needed.
>     
>     I've tested on 32 and 64bits, on two different computers, and even with a broken theme (I have a friend with a broken gentoo KDE theme and dual-monitors), and had no problems. I really really think this should be fixed, because when this bug appears, it makes KDE look *very* unpolished, and makes me personally cringe.
>     
>     Finally, in terms of performance I agree with Oswald: this is almost a no-op. Any computer made in the last decades should be able to quickly paint the screen black.

I just installed latest Kubuntu, and got bit by this bug again: the default theme is shipped with a 1278x1024 wallpaper, which ksplash tries to use on a 1280x1024 monitor, and you get two beautiful vertical lines of garbage.

Shouldn't this patch be applied, while ksplash isn't fixed/replaced/etc?


- Ivo


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/100520/#review2024
-----------------------------------------------------------


On March 17, 2011, 10:08 a.m., Ivo Anjo wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/100520/
> -----------------------------------------------------------
> 
> (Updated March 17, 2011, 10:08 a.m.)
> 
> 
> Review request for KDE Base Apps and KDE Runtime.
> 
> 
> Summary
> -------
> 
> *Bump*: Can someone take a look at this? The patch is quite small, and I haven't seen any problems while using it on multiple computers...
> 
> The background pixmap/qimage is never initialized, so if for some reason the splashscreen doesn't cover the entire screen, you get garbage. 
> 
> That reason can be a ksplashx theme that does not use multiple monitors on a multi-monitor system, or if it picks a background that is smaller than the current resolution (for example the Horos splash 1280x1024 version appears to be 1278x1024).
> 
> 
> This addresses bug 264444.
>     http://bugs.kde.org/show_bug.cgi?id=264444
> 
> 
> Diffs
> -----
> 
>   ksplash/ksplashx/splash.cpp d6a992a 
> 
> Diff: http://git.reviewboard.kde.org/r/100520/diff
> 
> 
> Testing
> -------
> 
> I tested this by both replacing the background that ksplashx was using with a smaller one, and on two multi-monitor systems (one of which uses a gentoo ksplash screen that only covered one of the monitors).
> 
> The splash_image.fill( 0 ) can be changed to another color for debugging purposes, clearly showing the region of the monitor that is not covered by the splashscreen (and where before would be garbage from graphics memory).
> 
> To test this:
> # Get a ksplashx theme, for example
> git clone git://anongit.kde.org/kde-workspace
> # Create ksplashx theme directory
> mkdir -p `kde4-config --localprefix`/share/apps/ksplash/Themes/
> # Copy theme
> mv kde-workspace/ksplash/ksplashx/themes/default/ `kde4-config --localprefix`/share/apps/ksplash/Themes/
> # Change the wallpaper (copy a smaller wallpaper on top of your screen resolution)
> cd `kde4-config --localprefix`/share/apps/ksplash/Themes/
> mv default/1024x768/background.png default/1920x1080/background.png
> # Run ksplashx
> ksplashx default --test
> 
> You should see a corrupted screen, similar to the one below, probably with fragments of windows you recently had on your screen.
> 
> 
> Screenshots
> -----------
> 
> Example screenshot when background image does not fully cover the screen, on a dual 1280x1024 machine.
>   http://git.reviewboard.kde.org/r/100520/s/70/
> 
> 
> Thanks,
> 
> Ivo
> 
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-core-devel/attachments/20110430/458e3c6e/attachment.htm>


More information about the kde-core-devel mailing list