-
-
Notifications
You must be signed in to change notification settings - Fork 691
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: version 3.7.0 is has a pixelation bug #3041
Comments
I can't reproduce this at all unfortunately. Can you post the terminal output when you run polybar? Also, please post your config, you are not using an unmodified default config. |
@patrick96 , I upgraded to 3.7.0 again and repeated the test. You're right, my initial screenshot was with my custom config. However, I did try removing all my config and running the stock polybar and the the issue was still there. Here is the screenshot from this scenario: These are the logs
These are the logs (with no custom config) after downgrading back to 3.6.3. No issues with this version.
|
I played around with this some more and I still can't reproduce this. Are you running a compositor? |
No, I am not, just standard |
I unfortunately don't have a Thunderbolt dock available, so I can't exactly replicate your setup. There is not really much I can do on my side. You may have trouble compiling older versions. Cherry picking 16102c2 and 432e19d fixed the build issues for me (the second commit will have a merge conflict, for which you can just do |
@patrick96, sure I can give it a shot! |
That would be great, thanks! Let me know if you run into issues. Getting older versions to compile can be a pain |
I'm able to build 3.7.0 successfully, but not 3.6.3.
Also, I selected y for all the prompts in the build script. |
Ahh ok. Sorry, I misunderstood that part initially.
However, I'm still getting the following build error:
Any ideas? |
In |
Thanks for your help, @patrick96. |
Thank you so much for tracking down the exact commit, this already helps a lot. In that commit I rewrote a lot of our handling around pseudo-transparency. To confirm the pseudo-transparency is the issue, can you try each of the following two things independently?
In both cases, I expect the pixelation to be gone And finally, could you, again with the stock default config, run |
Also, I updated polybar to 3.7.1 and kept |
Thanks a lot, your experiments have the expected results, it is indeed the pseudo-transparency (and only the pseudo-transparency) that causes this.
This is on purpose. This is a fully transparent color (format AARRGGBB) to make it look like the bar is not flush with the edge of the screen (even though the window actually is and just has a transparent border).
Pseudo-transparency simulates transparency without needing a compositor. It takes your wallpaper and puts the bar on top of it. The transparent parts of the bar will show the wallpaper below, making it look like it's transparent. |
Ahh, cool. Thanks for the explanation! |
Got some time to dig into this again. One thing that looks suspicious in your logs is this:
This tells me that the root pixmap (the wallpaper) is a 1920 by 1080 rectangle. The second line tells me that we are copying a 0x42 rectangle from the wallpaper. This is of course an empty rectangle and likely the cause why you see these colorful pixels: since we are not copying anything, we never overwrite the contents of the buffer we use to store the wallpaper, so it just contains whatever random data was there in memory before; interpreted as colors those are various colored pixels. I suspect this is something very specific to your setup. That's why I couldn't reproduce this myself. If you are still running this setup, could you provide me with the following while you are connected to your docking station and have polybar running (no need to run a different config):
I also suspect there may be some weirdness with positioning polybar on the monitors. Polybar being positioned at x-coordinate 2953 is kind of weird |
Sure, I can provide you all the details of my set up. I'm using
These are the other outputs you requested:
|
Alright, now we're getting somewhere, I can finally reproduce on my own! Steps:
Because in the second step, the wallpaper was set when only the first monitor was connected, the area defined for the wallpaper is only the area of the first monitor. When connecting the second monitor, the wallpaper image is simply tiled in all direction (I believe this is the expected behavior when the underlying image is smaller than the space it is intended to fill).
This is indeed what's happening. The correct behavior here should be that polybar prints an error message if this happens and displays as much of the wallpaper as possible while filling the rest with black. @mikeboiko Thanks again for helping me debug this. I think you have something somewhere that does set some kind of wallpaper, not sure what though. And when you then connect the external monitor, there is no wallpaper defined for that monitor and polybar basically renders garbage |
Cool, glad you were able to reproduce the error and figure out what's going on! |
If the root pixmap does not fully cover the bar window, some pseudo-transparent areas were filled with unitialized data, causing pixelation or other rendering artifacts. Now, ovserved background slices are first filled with black to make sure this does not happen and they print an error if not the full pixmap can be filled. Fixes polybar#3041
I have a fix in #3096 Please try it if it also fixes the issue on your end (it should simply show a black background and print an error message) |
Well that's not great 😕 Can you run with |
Sure, here are my logs with
Not that I think it'll matter, but this is my
|
Checklist
Steps to reproduce
polybar
after upgrading from 3.6.3 -> 3.7.0 and it became surrounded with colourful pixels like this:Note, that I'm running Arch Linux with i3 on an asus laptop with an intel video card through a Dell WD19TB dock connected to 2 external monitors.
The issue wasn't there when I disconnected the dock and only used my laptop screen.
I tried downgrading polybar back to 3.6.3 and the issue was immediately fixed.
For anyone on arch, you can downgrade to your cached version by running something like:
sudo pacman -U file:///var/cache/pacman/pkg/polybar-3.6.3-3-x86_64.pkg.tar.zst
Minimal config
Polybar log
No response
Expected behavior
I wasn't expecting to see any colorful pixels.
Actual behavior
My polybars, on all 3 screens, were surrounded by colorful pixels.
Window Manager and Version
i3 version 4.23
Linux Distribution
Arch Linux
Polybar version
Additional Context / Screenshots
I should also note that I repeated this test on 2 different laptops and 2 different Thunderbolt docking stations, and the bug persisted in all cases.
The text was updated successfully, but these errors were encountered: