You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Jan 23, 2023. It is now read-only.
Repository navigation
This repository was archived by the owner on Jan 23, 2023. It is now read-only.
Strange graphical misbehavior at 300% scaling #171
Describe the bug
I just installed cawbird using the build from OBS. (I also experience the same behavior when using the Snap.) Scrolling through the timeline, there's strange graphical behavior where tweet contents disappear and reappear as they move or as the mouse moves over them.
I don't think it's anything specific to my timeline because I'm able to view it fine on another computer (NixOS, also running Corebird 1.1.0).
I've never seen anything like that before! It suggests a GTK/graphics oddity to me.
What hardware is your other machine running?
What output do you get when that happens if you run Cawbird from the command-line with the command cawbird? If that doesn't show anything, what about if you run G_MESSAGES_DEBUG=cawbird cawbird?
After that, we're probably going to have to get in to the realms of using the GTK Debugger to see what widgets are there and why they're not rendering.
The machine that has the problems is a Dell XPS 13 Developer Edition. The one that doesn't is a Thinkpad X1 Carbon and its graphics card is a Intel UHD Graphics 620 (rev 07).
Running cawbird at the command line only prints this message:
Doing G_MESSAGES_DEBUG=cawbird cawbird doesn't print out anything that looks especially useful, and certainly nothing when texts appear/disappear:
(cawbird:40121): cawbird-DEBUG: 13:52:31.369: Cawbird.vala:265: startup ~ ~
(cawbird:40121): Gdk-CRITICAL **: 13:52:31.377: gdk_window_get_window_type: assertion 'GDK_IS_WINDOW (window)' failed
(cawbird:40121): cawbird-DEBUG: 13:52:31.377: New proxy consumer-key: Vf9torDW2ZOw32DfhUtI9csL8
(cawbird:40121): cawbird-DEBUG: 13:52:31.377: New proxy consumer-key: Vf9torDW2ZOw32DfhUtI9csL8
(cawbird:40121): cawbird-DEBUG: 13:52:31.379: Creating stream for [my Twitter username]
(cawbird:40121): cawbird-DEBUG: 13:52:31.379: Loading timeline tweets on start
(cawbird:40121): cawbird-DEBUG: 13:52:31.379: Loading timeline tweets
(cawbird:40121): cawbird-DEBUG: 13:52:31.380: Loading mention tweets on start
(cawbird:40121): cawbird-DEBUG: 13:52:31.380: Loading mention tweets
(cawbird:40121): cawbird-DEBUG: 13:52:31.380: Loading favourited tweets on start
(cawbird:40121): cawbird-DEBUG: 13:52:31.380: Loading favourited tweets
(cawbird:40121): cawbird-DEBUG: 13:52:31.380: Loading DMs on start
(cawbird:40121): cawbird-DEBUG: 13:52:31.380: Loading DM tweets
(cawbird:40121): cawbird-DEBUG: 13:52:31.380: Adding timeout for timeline
(cawbird:40121): cawbird-DEBUG: 13:52:31.380: Adding timeout for mentions
(cawbird:40121): cawbird-DEBUG: 13:52:31.380: Adding timeout for favourites
(cawbird:40121): cawbird-DEBUG: 13:52:31.380: Adding timeout for DMs
(cawbird:40121): cawbird-DEBUG: 13:52:31.853: Account.vala:516: Add 0 disabled_rts ids
(cawbird:40121): cawbird-DEBUG: 13:52:31.853: Account.vala:485: Add 33 blocked ids
(cawbird:40121): cawbird-DEBUG: 13:52:31.981: Account.vala:454: Add 0 muted ids
(cawbird:40121): cawbird-DEBUG: 13:52:31.988: Got 28 mention tweets
(cawbird:40121): cawbird-DEBUG: 13:52:32.194: Got 28 favourited tweets
(cawbird:40121): cawbird-DEBUG: 13:52:32.261: Got 28 timeline tweets
(cawbird:40121): cawbird-DEBUG: 13:52:32.803: Got 18 DMs
(cawbird:40121): cawbird-DEBUG: 13:52:32.803: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.804: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.804: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.804: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.805: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.805: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.805: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.805: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.806: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.806: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.806: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.807: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.807: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.807: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.808: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.808: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.808: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:32.809: New DM with type: message_create
(cawbird:40121): cawbird-DEBUG: 13:52:33.078: Removing avatar with id 704391334128394240 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.081: Removing avatar with id 19380775 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.084: Removing avatar with id 453473029 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.273: Removing avatar with id 1236101 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.297: Removing avatar with id 1069636036291112960 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.414: Removing avatar with id 37053360 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.421: Removing avatar with id 390039185 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.429: Removing avatar with id 461281625 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.435: Removing avatar with id 17393219 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.441: Removing avatar with id 29417177 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.442: Removing avatar with id 7587032 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.447: Removing avatar with id 536904693 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.449: Removing avatar with id 15041941 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.454: Removing avatar with id 16071026 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.455: Removing avatar with id 25753805 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.461: Removing avatar with id 2791499260 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.463: Removing avatar with id 22775788 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.468: Removing avatar with id 20790079 from cache
(cawbird:40121): cawbird-DEBUG: 13:52:33.470: Removing avatar with id 16484216 from cache
Can you recommend a link about how to use the GTK Debugger? I've done a little bit of GTK development a long time ago but never used a GTK-specific debugging tool.
It's called the "GTK Inspector". It's normally part of the GTK "devel" package.
Basically you install it, enable it, then Ctrl+Shift+I will bring it up (like the DOM Inspector in Firefox, if you've done any HTML). Swap to "CSS Nodes" in the drop-down and see whether the other elements of the tweets appear and which areas get highlighted.
Is there anything specific that triggers this behaviour? Is it when you scroll fast, or just generally when you scroll? And in case it's something like a VRAM problem, can you try disabling image display and see whether it still happens?
The previous GIF makes it look like something isn't repainting properly, and then when you select it in the inspector then it flashes it and so it forces it to repaint. (I thought CSS Nodes did the flashing as well, but I guess it doesn't)
Your newer GIF looked like it was scrolling quite slowly, so it's not a "long way off the screen and suddenly in view" problem.
I think it is going to be tricky to recreate this. If you've worked with GTK apps before then are you able to build local versions of Cawbird with patches?
Okay, at least you can rebuild it once I get a patch and we've confirmed that it's not just the packaged versions.
Initially it would just be some options for debugging rather than a fix, because I don't have a clue what's going on beyond "GTK and/or your graphics card are doing something really weird"!
However, as I've done it by screwing up some pixbuf (image) handling in C and I'm messing around with pointer-to-pointers and other things that I don't fully understand then I'm not entirely sure it's representative!
If someone can find circumstances to recreate it that don't involve editing the code to potentially screw up your memory then that'd be good!
Can you build the bug142-memory-usage branch, run it, go to Settings and set "Show inline media" to "Always Hide", then restart Cawbird and see if it still happens?
(I'm not trying to fix this in that branch, but it has some changes to image loading, and the only time I've got close to that behaviour was when I really screwed up image handling! So I want to see what happens if we disable all image loading)
What's the distro shipping versus what you're building? Unless the distro is shipping something newer than 1.2.1 (i.e. a Git build) then they won't have the fix that resolved some of that for #202.
Are other apps having issues at 300% or just Cawbird?
The distro build is listed as 1.2.1-1+7.1. I'm 100% sure what I'm seeing is the same as #202 and that would explain why building from git doesn't demonstrate the behavior.
I've been running at 300% probably since I got this laptop back in June and I haven't noticed any other problems of this kind. Some proprietary applications (Zoom, Steam) don't cope well with HiDPI, but usually they just look very small.
Just for interest, can you try running the bug204-slow-focus-painting-alt-alt branch? I'm wondering whether 300% scaling is too much when we've got lots of pages in the stack that we swap between. Having so many pages is causing other problems, so that branch removes most of them.
Based on Badert's response to the Gnome thread, can you check the new bug171-300pc-scaling-issues branch? I think I've got all of the problem areas.
It might still not be perfect - we'll be loading 2x scale assets for rendering at 3x scale in some places - but that's better than 1x scale or corruption!
Activity
IBBoard commentedon Jul 2, 2020
I've never seen anything like that before! It suggests a GTK/graphics oddity to me.
What hardware is your other machine running?
What output do you get when that happens if you run Cawbird from the command-line with the command
cawbird? If that doesn't show anything, what about if you runG_MESSAGES_DEBUG=cawbird cawbird?After that, we're probably going to have to get in to the realms of using the GTK Debugger to see what widgets are there and why they're not rendering.
glasserc commentedon Jul 2, 2020
The machine that has the problems is a Dell XPS 13 Developer Edition. The one that doesn't is a Thinkpad X1 Carbon and its graphics card is a Intel UHD Graphics 620 (rev 07).
Running
cawbirdat the command line only prints this message:(cawbird:39252): Gdk-CRITICAL **: 13:49:38.768: gdk_window_get_window_type: assertion 'GDK_IS_WINDOW (window)' failedDoing
G_MESSAGES_DEBUG=cawbird cawbirddoesn't print out anything that looks especially useful, and certainly nothing when texts appear/disappear:Can you recommend a link about how to use the GTK Debugger? I've done a little bit of GTK development a long time ago but never used a GTK-specific debugging tool.
IBBoard commentedon Jul 2, 2020
It's called the "GTK Inspector". It's normally part of the GTK "devel" package.
Basically you install it, enable it, then Ctrl+Shift+I will bring it up (like the DOM Inspector in Firefox, if you've done any HTML). Swap to "CSS Nodes" in the drop-down and see whether the other elements of the tweets appear and which areas get highlighted.
https://wiki.gnome.org/Projects/GTK/Inspector
Is there anything specific that triggers this behaviour? Is it when you scroll fast, or just generally when you scroll? And in case it's something like a VRAM problem, can you try disabling image display and see whether it still happens?
glasserc commentedon Jul 2, 2020
It happens pretty much immediately on startup. Scrolling up or down causes different parts of things to show or hide.
The elements appear to show up in the inspector and clicking on them causes GTK to blink them, which makes them show up.
The same behavior occurs with "Show inline media: Hide in timeline".
I wasn't able to get them to blink when in "CSS Nodes" mode. Am I supposed to do something different in that mode?
glasserc commentedon Jul 2, 2020
I couldn't figure out how to record the behavior in a way that I could upload to Github, but here's a 25 MB .gif: https://send.firefox.com/download/ef58445d98b860cf/#RFMhH4lZA2x_eyttcTwJMw
I'm still not able to precisely guess what the trigger is. It does seem like mouseover contributes and maybe so does scrolling faster.
IBBoard commentedon Jul 4, 2020
A 25MB GIF? Wow!
The previous GIF makes it look like something isn't repainting properly, and then when you select it in the inspector then it flashes it and so it forces it to repaint. (I thought CSS Nodes did the flashing as well, but I guess it doesn't)
Your newer GIF looked like it was scrolling quite slowly, so it's not a "long way off the screen and suddenly in view" problem.
I think it is going to be tricky to recreate this. If you've worked with GTK apps before then are you able to build local versions of Cawbird with patches?
glasserc commentedon Jul 6, 2020
Yes I think so. I just built it from source (and can confirm that I see the same behavior with current
master).bbhtt commentedon Jul 7, 2020
I did a build too on my main laptop running Xubuntu 20.04 AMD/Mesa hybrid graphics, unfortunately couldn't reproduce for OBS,git or flatpak.
IBBoard commentedon Jul 7, 2020
Okay, at least you can rebuild it once I get a patch and we've confirmed that it's not just the packaged versions.
Initially it would just be some options for debugging rather than a fix, because I don't have a clue what's going on beyond "GTK and/or your graphics card are doing something really weird"!
IBBoard commentedon Aug 21, 2020
Is this still a problem? Has anyone else been able to recreate it?
IBBoard commentedon Aug 22, 2020
I've finally been able to recreate this.
However, as I've done it by screwing up some pixbuf (image) handling in C and I'm messing around with pointer-to-pointers and other things that I don't fully understand then I'm not entirely sure it's representative!
If someone can find circumstances to recreate it that don't involve editing the code to potentially screw up your memory then that'd be good!
glasserc commentedon Aug 24, 2020
I just tried on master and see the same behavior.
IBBoard commentedon Aug 27, 2020
Huh. Okay.
Can you build the
bug142-memory-usagebranch, run it, go to Settings and set "Show inline media" to "Always Hide", then restart Cawbird and see if it still happens?(I'm not trying to fix this in that branch, but it has some changes to image loading, and the only time I've got close to that behaviour was when I really screwed up image handling! So I want to see what happens if we disable all image loading)
9 remaining items
IBBoard commentedon Dec 29, 2020
What's the distro shipping versus what you're building? Unless the distro is shipping something newer than 1.2.1 (i.e. a Git build) then they won't have the fix that resolved some of that for #202.
Are other apps having issues at 300% or just Cawbird?
glasserc commentedon Dec 29, 2020
The distro build is listed as
1.2.1-1+7.1. I'm 100% sure what I'm seeing is the same as #202 and that would explain why building from git doesn't demonstrate the behavior.I've been running at 300% probably since I got this laptop back in June and I haven't noticed any other problems of this kind. Some proprietary applications (Zoom, Steam) don't cope well with HiDPI, but usually they just look very small.
IBBoard commentedon Dec 30, 2020
Just for interest, can you try running the
bug204-slow-focus-painting-alt-altbranch? I'm wondering whether 300% scaling is too much when we've got lots of pages in the stack that we swap between. Having so many pages is causing other problems, so that branch removes most of them.glasserc commentedon Dec 30, 2020
I just tried it, and it demonstrates the same behavior as far as I can tell.
IBBoard commentedon Dec 31, 2020
It was a long shot 🙂
IBBoard commentedon Dec 31, 2020
I've asked on the Gnome forums. We'll see whether anyone there has any more ideas.
https://discourse.gnome.org/t/widgets-not-rendering-at-300-scale/5187
[-]Strange graphical misbehavior on Ubuntu 20.04[/-][+]Strange graphical misbehavior at 300% scaling[/+]Re #171: Don't assume that scale factor is 1 or 2
IBBoard commentedon Jan 1, 2021
Based on Badert's response to the Gnome thread, can you check the new
bug171-300pc-scaling-issuesbranch? I think I've got all of the problem areas.It might still not be perfect - we'll be loading 2x scale assets for rendering at 3x scale in some places - but that's better than 1x scale or corruption!
glasserc commentedon Jan 1, 2021
Yes, this is a lot better! I haven't seen any issues so far.
IBBoard commentedon Jan 1, 2021
Okay, I'll merge this and close it, then. Re-open it if you find any bits I missed.
Re #171: Don't assume that scale factor is 1 or 2
glasserc commentedon Jan 4, 2021
So far, so good. Thanks! This is a great way to kick off the new year!