Skip to content
This repository was archived by the owner on Jan 23, 2023. It is now read-only.
This repository was archived by the owner on Jan 23, 2023. It is now read-only.

Strange graphical misbehavior at 300% scaling #171

Closed

Description

@glasserc

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.

Screenshot from 2020-07-02 10-29-15

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).

System details:

  • OS: Ubuntu 20.04
  • Graphics hardware: Intel Iris Plus Graphics G7
  • Version: 1.1.0
  • Package type: .deb from OBS

Activity

  1. IBBoard commented on Jul 2, 2020

    @IBBoard
    Owner

    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.

  2. added
    bugSomething isn't working
    info requiredThis doesn't seem right or more details are required
    on Jul 2, 2020
  3. glasserc commented on Jul 2, 2020

    @glasserc
    Author

    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:

    (cawbird:39252): Gdk-CRITICAL **: 13:49:38.768: gdk_window_get_window_type: assertion 'GDK_IS_WINDOW (window)' failed

    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.

  4. IBBoard commented on Jul 2, 2020

    @IBBoard
    Owner

    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?

  5. glasserc commented on Jul 2, 2020

    @glasserc
    Author

    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.

    2020-07-02 inspected

    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?

  6. glasserc commented on Jul 2, 2020

    @glasserc
    Author

    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.

  7. IBBoard commented on Jul 4, 2020

    @IBBoard
    Owner

    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?

  8. glasserc commented on Jul 6, 2020

    @glasserc
    Author

    Yes I think so. I just built it from source (and can confirm that I see the same behavior with current master).

  9. bbhtt commented on Jul 7, 2020

    @bbhtt

    Yes I think so. I just built it from source (and can confirm that I see the same behavior with current master).

    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.

  10. IBBoard commented on Jul 7, 2020

    @IBBoard
    Owner

    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"!

  11. IBBoard commented on Aug 21, 2020

    @IBBoard
    Owner

    Is this still a problem? Has anyone else been able to recreate it?

  12. IBBoard commented on Aug 22, 2020

    @IBBoard
    Owner

    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!

  13. glasserc commented on Aug 24, 2020

    @glasserc
    Author

    I just tried on master and see the same behavior.

  14. IBBoard commented on Aug 27, 2020

    @IBBoard
    Owner

    Huh. Okay.

    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)

  15. 9 remaining items

  16. IBBoard commented on Dec 29, 2020

    @IBBoard
    Owner

    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?

  17. glasserc commented on Dec 29, 2020

    @glasserc
    Author

    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.

  18. IBBoard commented on Dec 30, 2020

    @IBBoard
    Owner

    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.

  19. glasserc commented on Dec 30, 2020

    @glasserc
    Author

    I just tried it, and it demonstrates the same behavior as far as I can tell.

  20. IBBoard commented on Dec 31, 2020

    @IBBoard
    Owner

    It was a long shot 🙂

  21. IBBoard commented on Dec 31, 2020

    @IBBoard
    Owner

    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

  22. changed the title [-]Strange graphical misbehavior on Ubuntu 20.04[/-] [+]Strange graphical misbehavior at 300% scaling[/+] on Jan 1, 2021
  23. added a commit that references this issue on Jan 1, 2021
  24. IBBoard commented on Jan 1, 2021

    @IBBoard
    Owner

    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!

  25. glasserc commented on Jan 1, 2021

    @glasserc
    Author

    Yes, this is a lot better! I haven't seen any issues so far.

  26. IBBoard commented on Jan 1, 2021

    @IBBoard
    Owner

    Okay, I'll merge this and close it, then. Re-open it if you find any bits I missed.

  27. added a commit that references this issue on Jan 1, 2021
  28. removed
    info requiredThis doesn't seem right or more details are required
    on Jan 1, 2021
  29. glasserc commented on Jan 4, 2021

    @glasserc
    Author

    So far, so good. Thanks! This is a great way to kick off the new year!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions