-
Notifications
You must be signed in to change notification settings - Fork 324
Glitchy texture behind windows #190
Comments
First of all thanks for the quite details report, that's great! Unfortunately, this comes from a limitation of how i3 draws decorations and is a »known issue«. Preventing this involves a complicated refactoring within i3 which, apart from having to be done in the first place, I wouldn't want to merge in i3-gaps because it makes it impossible to stay up to date with upstream. The good news is that the change would also be accepted in i3, but the bad news is that it is far from trivial and I personally won't be working on it in the foreseeable future. The corresponding ticket is i3/i3#1966. A detailed comment specifically can be found here: i3/i3#1966 (comment). As explained there, I did already work on a pretty involved switch to cairo which improved the situation significantly compared to before, but it's just not quite enough. If someone wants to fix this in i3 (and by extension in i3-gaps), that's great, but I'm going to close this here as I am not willing to fix this without going through i3 itself where we have the aforementioned ticket already. |
Why would the way that i3 draws decoration be affected by key events? If everything looks normal below i3-frame, why is it necessary at all? Why does it only happen on my host OS, and not in the virtual machine? Is it something to do with AMDGPU? Similar effects can be seen when opening windows (especially games) that haven't finished initializing. |
What you're essentially seeing is memory garbage. It can be affected by whatever.
A lot of that window is »undrawn« area, but we do use it to draw the decorations. That's why, by the way, for i3-gaps you need to disable titlebars. Your situation has just the unfortunate side effect that titlebars are drawn even if borders are disabled, which is why the problem resurfaces here.
Whether and when the problem appears probably depends on a lot of things such as video driver and compositor, yeah. Playing with compositor settings might make it better, but at the end of the day this is a bug (or at least a design problem) in i3 which isn't so easy to fix. I know it's not very satisfying, but it is what it is. BTW, how did you disable compton for these screenshots and still have transparency? There is no transparency without a compositor. |
What makes you say that? Wouldn't that result in this behaviour being very random unpredictable? This is not the case. I can trigger the height changes consistently.
Why does
If I enable titlebars, I get a similar effect https://i.imgur.com/yP14seO.jpg. However, these bars do not contain random data, and do not respond to key and mouse events. If I start compton, these bars disappear, where as the glitchy bars do not.
What transparency? You mean from the second screenshot? I may have had compton running there, but I have tested this without it. |
I frankly don't care much about what specifically causes the garbage memory effects to change, predictably or not. I'm not arguing that there is no bug here; there absolutely is. I've spent countless hours working on changes ultimately intended to fix this (i3/i3#2065, i3/i3#1933, …). Granted, maybe I'm just missing the holy grail of easily fixing all of this, but until someone can convince me otherwise with something substantial I'm going to continue believing that this requires (further) major changes in i3. :-)
The two
Maybe for the moment; it will come back, though. This is even documented in compton's wiki.
Black is also random. :-) Black, pink, cats or garbage – it doesn't make a difference. It's not supposed to be there, we know that. |
It's not the "garbage memory effects" that are predictable. It's the way the height of the garbage changes with events. If that was caused by garbage, it wouldn't be consistent and predictable.
I'm not saying that you think there isn't. I'm saying that there are multiple bugs involved.
I could click on the same pixel twice, and get different results before and after the height changes. It's not just rendering my wallpaper through the texture - it's rendering below it.
Sure, black can be random. I've closed and reopened these windows many times, and they are consistently black. The odds of each pixel being black each time is extremely low. It's not random. Maybe they'll change color later. If they do, that's different behaviour. This shows how the window size is changing, not just the data. Perhaps the geometry and corner data could be useful. EDIT: I've just realised that the height of i3-frame increases by my |
Well, fair enough. I'll reopen for now on the assumption that that's correct. However, I won't have time to look into this myself at the moment. |
Hi, I'm having the very same issue. No compositors involved. Just pure i3 gaps, with 3+ containers and some gaps. If you start switching between default and tabbed you start collecting on top these glitches. Could it be because in the tabbed layout you cannot disable the windows titles? |
FYI, i3/i3#3481 and/or i3/i3#3479 might improve this situation (both open tickets at this time). |
Same problem, only a restart of i3 helps |
I come across this bug quite often. Is it still getting worked on? |
The state of each involved issue (this and the referenced ones) can be seen in the issues. The answer is: no, there has not been any recent work. |
I'm thinking that i3/i3#4280 could likely fix this. If someone wants to try it out please go ahead and let us know here. |
I tried i3/i3#4280 in the latest i3-gaps version 4.19.1 and it did not fix this issue. It actually broke border colours, making it consistently black. i3-bug.mp4 |
That PR ended up having some issues and got reverted. It's now merged as i3/i3#4336, which means the current gaps-next branch has this included. If the issue persists the hypothesis that it might be fixed by it was incorrect. :-) |
I should have looked more closely at that PR to see the revert. The merge from i3/i3#4336 does prevent the border issue but, unfortunately, this graphical glitch issue still persists. |
I get this too. |
I'm closing this issue has i3-gaps is being migrated into i3. Please verify on the latest next branch there as it has seen some fixes already. If this issue still applies, please reopen it in i3. |
Output of
i3 --moreversion 2>&- || i3 --version
:What I did:
Opened two windows in tabbed mode (mod+w), focused the parent container (mod+a), opened a new window, then set the parent container to split mode (mod+e).
What I saw:
https://i.imgur.com/K5NR8mu.png
A texture is visible between the windows and the wallpaper. The texture stretches across my primary monitor, and is initially only a few pixels tall (about 25). If I mouse down inside a window or change focus to another window, the height of the texture increases. If I mouse down or mouse up on the wallpaper, the height of the texture will increase for both events. Every time the height increases, the contents of the texture change. The height of the texture will only increase up until it reaches the y coordinate of 680. After it reaches this height, it's contents do not change when I change focus or mouse up/down.
The height of the texture resets to it's initial height if I change the parent container to tabbed mode, and back to split mode. (ie toggle gaps).
xprop
reports that the texture has a class name of "i3-frame", where as much more information is reported if I click below the texture.https://i.imgur.com/zMPxTvG.jpg The white in this screenshot is transparent (ie I can see my wallpaper here)
https://i.imgur.com/xOEZGRW.jpg
https://i.imgur.com/VezAsl3.jpg
I am using the open source AMDGPU driver.
My config (I have disabled compton for testing)
I've tested it in a virtual machine, using near enough the same config, where is works as I would expect. https://i.imgur.com/B9hSoH5.jpg
The text was updated successfully, but these errors were encountered: