hyprwm / Hyprland

Hyprland is an independent, highly customizable, dynamic tiling Wayland compositor that doesn't sacrifice on its looks.
https://hyprland.org
BSD 3-Clause "New" or "Revised" License
21.09k stars 882 forks source link

Bug: interaction with hyprpaper is broken #3523

Closed iddm closed 1 year ago

iddm commented 1 year ago

Hyprland Version

499df49f7b28f9e3be9b1c53843fd5c465dec60b

Bug or Regression?

Bug

Description

hyprpaper not filling the entire screen. There is a bottom line of pixels (presumably with the height of just one pixel) which is still visible when hyprpaper has already filled the screen.

As an OLED user, I have a full-black workspace background. I noticed a line of pixels of one height. Those pixels are exactly where the girl's legs are if I kill hyprpaper. This happens on both monitors and is reproducible 100% of the time.

W.r.t. to the screen settings, workspace, hyprpaper, any other settings basically - nothing has changed exactly. I think the problem has only appeared within the commits of last week.

How to reproduce

  1. Install hyprpaper (doesn't matter which version).
  2. Fill the screen with full black background.
  3. Observe the lowest line of pixels in the screen is not entirely black as it should be given the wallpaper is black: there is a grey line. If you kill hyprpaper, you'll notice that this line is exactly where the girl's legs are.

Crash reports, logs, images, videos

With some good eye, it can also be seen in this screenshot. screenshot

UPD: Removed mentions of regression and 0.30 version since it has always been there.

vaxerski commented 1 year ago

git bisect please

iddm commented 1 year ago

git bisect please

Sure thing! The first thing tomorrow morning.

iddm commented 1 year ago

Okay, I went back to 0.30 today and found that it is also there, so it has always been there, but I have just noticed it. That sucks for me. Is there anything we can do about it in hyprland or hyprpaper? I used feh with full-screen, and everything was black (checked quite meticulously).

vaxerski commented 1 year ago

uhh idk on your screenshots I can't see it and I also can't see it on my screen

iddm commented 1 year ago

It is there. Here is a photo of IMG_2611 the monitor with my screenshot open. For some reason, the camera on my phone finds it so well.

It is definitely there. And it is, I guess, of one-pixel height or so, very thin.

vaxerski commented 1 year ago

can I get a hyprland log

iddm commented 1 year ago

hyprland.log

iddm commented 1 year ago

Hey @vaxerski ! Did you have a chance to take a look? Regardless of that, if you aren't going to dig into it, can you suggest the places I may look to play with the code to fix the issue? OLED monitors are expensive. :-)

vaxerski commented 1 year ago

nothing looks amiss to me in the log. hyprpaper is 1440 pixels high. Do you use scaling? Does the same happen with swaybg? Are aliens real?

FakeMichau commented 1 year ago

This somewhat sidesteps the issue but you can do this instead of using hyprpaper

misc {
    disable_hyprland_logo=true
    background_color=0x000000
}
iddm commented 1 year ago

nothing looks amiss to me in the log. hyprpaper is 1440 pixels high. Do you use scaling? Does the same happen with swaybg? Are aliens real?

Weird! I doubt hyprpaper is 1440 pixels high because, in my screenshot, it is clearly not (you can see the bottom line I mentioned), and my monitor is 1440 pixels high, too. I don't use any scaling. I have two monitors of the same resolution and diagonal. I never tried swaybg and tried to avoid anything related to this garbage due to them treating people using NVIDIA as garbage, forcing them to perform humiliating actions to even launch sway, so no, thanks. This is one of the reasons I really like and enjoy Hyprland too.

May this be an issue (scaling of the image)?

❯ file black_wallpaper.jpg
black_wallpaper.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 1920x1080, components 3

Also, just to remind, "feh" seems to work fine.

@FakeMichau Thank you very much for the setting, but I can't get how to use it for just one monitor. Is there a way? P.S. For now I am using this method to avoid burn-in that area.

FakeMichau commented 1 year ago

in my screenshot, it is clearly not (you can see the bottom line I mentioned)

I've downloaded your screenshot, enhanced it heavily and still couldn't see any line at the bottom, only a faint vertical line exactly in the middle became visible. But the photo you took clearly shows it, I agree.

Also, hyprpaper let's you define a wallpaper per monitor. So you could be using the method I mentioned and make use of hyprpaper for whatever wallpaper you want, but only on that one monitor, leaving the other black.

iddm commented 1 year ago

in my screenshot, it is clearly not (you can see the bottom line I mentioned)

I've downloaded your screenshot, enhanced it heavily and still couldn't see any line at the bottom, only a faint vertical line exactly in the middle became visible. But the photo you took clearly shows it, I agree.

Also, hyprpaper let's you define a wallpaper per monitor. So you could be using the method I mentioned and make use of hyprpaper for whatever wallpaper you want, but only on that one monitor, leaving the other black.

I could see the line even in my zoomed screenshot :-) Thanks for the suggestion with hyprpaper, didn't think of it for some reason!

vaxerski commented 1 year ago

does it also happen if you run hyprpaper with -n?

FakeMichau commented 1 year ago

I can somewhat reproduce the issue using a 1920x1080 wallpaper on a 3440x1440 screen - I get vertical white lines, one pixel in width on the left and right side. -n doesn't change anything. swaybg has the same issue

edit: tile mode in swaybg doesn't show that issue, same with -c#000000 So most likely hyprpaper (and swaybg) itself is the cause, and how it stretches the image

FakeMichau commented 1 year ago

@vityafx Could you try the PR above? Thanks

iddm commented 1 year ago

@vityafx Could you try the PR above? Thanks

Thanks a lot for the effort! Will check tomorrow, but I think you found the reason for this to happen. Thanks for spending time on this!

iddm commented 1 year ago

@vityafx Could you try the PR above? Thanks

Seems to work! Thanks!