Hyprland icon indicating copy to clipboard operation
Hyprland copied to clipboard

GTK2 / Eclipse-based apps flicker in Wayland native mode

Open lufjo opened this issue 1 year ago • 20 comments

Regression?

No

System Info and Version

System/Version info
Hyprland, built from branch  at commit 918d8340afd652b011b937d29d5eea0be08467f5  (flake.lock: update).
Date: Tue Jun 25 12:06:02 2024
Tag: v0.41.2, commits: 4886

flags: (if any)


System Information:
System name: Linux
Node name: arch
Release: 6.9.8-arch1-1
Version: #1 SMP PREEMPT_DYNAMIC Fri, 05 Jul 2024 22:11:24 +0000


GPU information: 
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation TU117M [GeForce GTX 1650 Ti Mobile] [10de:1f95] (rev a1) (prog-if 00 [VGA controller])
05:00.0 VGA compatible controller [0300]: Advanced Micro Devices, Inc. [AMD/ATI] Renoir [Radeon Vega Series / Radeon Vega Mobile Series] [1002:1636] (rev c6) (prog-if 00 [VGA controller])


os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo


plugins:

======Config-Start======


Config File: /home/lufjo/.config/hypr/hyprland.conf: Read Succeeded
#
# Please note not all available settings / options are set here.
# For a full list,see the wiki
#

source=~/.config/hypr/conf/basic.conf
source=~/.config/hypr/conf/rules.conf
source=~/.config/hypr/conf/env.conf
source=~/.config/hypr/conf/binds.conf

exec-once=fcitx5 -d
# exec-once=wl-paste --type text --watch cliphist store
exec-once=copyq --start-server
exec-once=~/.config/hypr/scripts/boot.sh


Config File: /home/lufjo/.config/hypr/conf/basic.conf: Read Succeeded
monitor=,preferred,auto,1 # for pluggin in random monitors
workspace=special:grave,gapsout:60,rounding:false,bordersize:0,on-created-empty:kitty
workspace=special:a,gapsout:60,rounding:false,bordersize:0
workspace=special:s,gapsout:60,rounding:false,bordersize:0
workspace=special:d,gapsout:60,rounding:false,bordersize:0

input {
    kb_layout=us
    kb_variant=
    kb_model=
    kb_options=caps:swapescape,ctrl:menu_rctrl # See /usr/share/X11/xkb/rules/base.lst
    kb_rules=

    follow_mouse=1
    repeat_delay=200
    repeat_rate=40

    touchpad {
        natural_scroll=no
    }

    sensitivity=0 # -1.0 - 1.0,0 means no modification.
}

general {
    gaps_in=8
    gaps_out=0
    border_size=2
    col.active_border=0xfff5c2e7
    col.inactive_border=0xff45475a
    #col.active_border=rgba(33ccffee) rgba(00ff99ee) 45deg
    #col.inactive_border=rgba(595959aa)
    no_focus_fallback=false
    layout=dwindle
}

decoration {
    rounding=5

    blur {
      size=1
      passes=2
    }

    drop_shadow=yes
    shadow_range=40
    shadow_render_power=3
    col.shadow=0x55000000
    col.shadow_inactive=0x55000000

    dim_inactive=no
    dim_strength=0.1
}

animations {
    enabled=yes
    bezier=overshot,0.05,0.9,0.1,1.05
    # bezier=overshot,0.13,0.99,0.29,1.10

    animation=windows,1,5,overshot
    animation=border,1,10,default
    animation=fade,1,10,default
    animation=workspaces,1,4,default,slide
    animation=specialWorkspace,0,4,default,fade
}

dwindle {
    pseudotile=yes # master switch for pseudotiling
    preserve_split=yes # you probably want this
}

master {
}

gestures {
    workspace_swipe=off
}

misc {
    disable_hyprland_logo=true
    disable_autoreload=false # whether to disable configuration reload
}

binds {
    allow_workspace_cycles=true
}


Config File: /home/lufjo/.config/hypr/conf/rules.conf: Read Succeeded
# Jetbrains products
windowrulev2 = forceinput,class:^(jetbrains-.*)$
windowrulev2 = windowdance,class:^(jetbrains-.*)$
# wps
# windowrulev2 = forceinput,class:^et$
# windowrulev2 = windowdance,class:^et$


windowrulev2 = float,class:^Bitwarden$

windowrulev2 = float,class:^org.telegram.desktop$
windowrulev2 = size 90% 90%,class:^org.telegram.desktop$
windowrulev2 = center,class:^org.telegram.desktop$

windowrulev2 = workspace special:d,class:^Joplin$

windowrulev2 = float,class:^com.github.hluk.copyq$
windowrulev2 = size 800 1000,class:^com.github.hluk.copyq$
# windowrulev2 = move 100%-1000 20,class:^com.github.hluk.copyq$
windowrulev2 = center,class:^com.github.hluk.copyq$

windowrulev2 = noborder,class:^Emby Theater$
windowrulev2 = rounding 0,class:^Emby Theater$
windowrulev2 = noborder,class:^mpv$
windowrulev2 = rounding 0,class:^mpv$


Config File: /home/lufjo/.config/hypr/conf/env.conf: Read Succeeded
env=XCURSOR_SIZE,35
env=GDK_BACKEND,wayland,x11
env=QT_QPA_PLATFORM,wayland;xcb

env=YDOTOOL_SOCKET,/tmp/.ydotool_socket
env=PRIAMARY_MONITOR_FACTOR,1
env=PIPENV_VENV_IN_PROJECT,1


Config File: /home/lufjo/.config/hypr/conf/binds.conf: Read Succeeded
# basic
bind=SUPER,Q,killactive,
bind=SUPER_SHIFT,Q,exit,
bind=SUPER,SPACE,exec,rofi -replace -show drun
bind=SUPER,F,togglefloating,
bind=SUPER,comma,togglesplit,
bind=SUPER,C,centerwindow
bind=SUPER_CTRL,P,pin,
bind=SUPER_CTRL,U,bringactivetotop
bind=SUPER_CTRL,F,fullscreen,1

# windows ###
# focus
bind=SUPER,H,movefocus,l
bind=SUPER,L,movefocus,r
bind=SUPER,K,movefocus,u
bind=SUPER,J,movefocus,d
bind=SUPER,W,focusurgentorlast
# move
binde=SUPER_SHIFT,H,movewindow,l
binde=SUPER_SHIFT,L,movewindow,r
binde=SUPER_SHIFT,K,movewindow,u
binde=SUPER_SHIFT,J,movewindow,d
# resize
binde=SUPER_CTRL,H,resizeactive,-50 0
binde=SUPER_CTRL,L,resizeactive,50 0
binde=SUPER_CTRL,K,resizeactive,0 -50
binde=SUPER_CTRL,J,resizeactive,0 50
# move floating
binde=SUPER_ALT,H,moveactive,-50 0
binde=SUPER_ALT,L,moveactive,50 0
binde=SUPER_ALT,K,moveactive,0 -50
binde=SUPER_ALT,J,moveactive,0 50
# move&resize with mouse
bind=SUPER,mouse_down,workspace, e+1
bind=SUPER,mouse_up,workspace, e-1
bindm=SUPER,mouse:272,movewindow
bindm=SUPER,mouse:273,resizewindow
# group
bind=SUPER,G,changegroupactive,f
bind=SUPER_CTRL,G,togglegroup

# workspaces ###
# switch workspaces
bind=SUPER,1,workspace,1
bind=SUPER,2,workspace,2
bind=SUPER,3,workspace,3
bind=SUPER,4,workspace,4
bind=SUPER,5,workspace,5
bind=SUPER,6,workspace,6
bind=SUPER,7,workspace,7
bind=SUPER,8,workspace,8
bind=SUPER,9,workspace,9
bind=SUPER,0,workspace,10
# cricle previous and current
bind=SUPER,TAB,workspace,previous
# move active window to a specific workspace
bind=SUPER_SHIFT,1,movetoworkspace,1
bind=SUPER_SHIFT,2,movetoworkspace,2
bind=SUPER_SHIFT,3,movetoworkspace,3
bind=SUPER_SHIFT,4,movetoworkspace,4
bind=SUPER_SHIFT,5,movetoworkspace,5
bind=SUPER_SHIFT,6,movetoworkspace,6
bind=SUPER_SHIFT,7,movetoworkspace,7
bind=SUPER_SHIFT,8,movetoworkspace,8
bind=SUPER_SHIFT,9,movetoworkspace,9
bind=SUPER_SHIFT,0,movetoworkspace,10
# special workspaces
bind=SUPER_SHIFT,grave,movetoworkspace,special:grave
bind=SUPER,grave,togglespecialworkspace,grave
bind=SUPER_SHIFT,A,movetoworkspace,special:a
bind=SUPER,A,togglespecialworkspace,a
bind=SUPER_SHIFT,S,movetoworkspace,special:s
bind=SUPER,S,togglespecialworkspace,s
bind=SUPER_SHIFT,D,movetoworkspace,special:d
bind=SUPER,D,togglespecialworkspace,d


======Config-End========

Description

And after using dbeaver for a while, it sometimes causes a crash.

https://github.com/hyprwm/Hyprland/assets/156897222/26cb6dee-5fab-4794-8c43-7c703c3a91ed

# hyprctl clients
Window 5ee7917ea6a0 -> DBeaver 24.1.1 :
	mapped: 1
	hidden: 0
	at: 60,60
	size: 1852,2040
	workspace: -98 (special:grave)
	floating: 0
	pseudo: 0
	monitor: 1
	class: DBeaver
	title: DBeaver 24.1.1 
	initialClass: DBeaver
	initialTitle: DBeaver 24.1.1 
	pid: 117077
	xwayland: 0
	pinned: 0
	fullscreen: 0
	fullscreenmode: 0
	fakefullscreen: 0
	grouped: 0
	tags: 
	swallowing: 0
	focusHistoryID: 1

How to reproduce

Just follow the video

Crash reports, logs, images, videos

No response

lufjo avatar Jul 11 '24 16:07 lufjo

does it work fine on sway?

MightyPlaza avatar Jul 11 '24 16:07 MightyPlaza

does it work fine on sway?

yes, all good on sway

lufjo avatar Jul 11 '24 16:07 lufjo

what about an older version of hyprland like v0.39.0? can you send a video with damage_blink enabled

MightyPlaza avatar Jul 11 '24 16:07 MightyPlaza

what about an older version of hyprland like v0.39.0? can you send a video with damage_blink enabled

On older versions there was no this issue, I forget what version this issue is from, likely from v0.40. And now build or downgrade that old version is more or less difficult. With damage_blink enabled:

https://github.com/user-attachments/assets/b3187bd1-c036-49d9-8a7e-4a6aec1cb241

lufjo avatar Jul 12 '24 02:07 lufjo

Regression since 6967a31450441fc5605c05db6f65505dace4b263

UjinT34 avatar Jul 12 '24 08:07 UjinT34

it's because of a hack that I made to prevent qt flickers. Fuck my life. Removing it fixes this, but makes qt flicker again.

vaxerski avatar Jul 21 '24 19:07 vaxerski

@vaxerski Seems this issue is back on 0.42 release.

lufjo avatar Aug 17 '24 03:08 lufjo

-git too? Can you bisect?

vaxerski avatar Aug 17 '24 05:08 vaxerski

-git too? Can you bisect?

@vaxerski yes, git too. Regression: b0a70f63e

lufjo avatar Aug 18 '24 10:08 lufjo

I hate my life :)

vaxerski avatar Aug 18 '24 17:08 vaxerski

can you try the latest DBeaver Version 24.2.0.202409011810 and yay -S aquamarine-git hyprlang-git hyprcursor-git hyprutils-git hyprland-git --overwrite="*"

I use DBeaver on a daily basis, and haven't seen it for a long time

romanstingler avatar Sep 02 '24 18:09 romanstingler

Flickers with dbeaver 24.2.0.202409011755 and 9b54342baa27d8de0460e1103ec4c3cc65592ed8. Less severe than it was before the previous fix. Dbeaver itself doesn't crash for me but it makes hl leak memory until it runs oom and crashes. About 50-300mb every time dbeaver renders something new. Seems to depend on dbeaver's window size. Memory isn't really leaked, it is released back as soon as dbeaver is closed.

UjinT34 avatar Sep 03 '24 14:09 UjinT34

Can confirm. I have this issue on DBeaver 24.2.1.202409072322 and Hyprland 0.43.0. My config is 12450H with iGPU.

brisk84 avatar Sep 10 '24 11:09 brisk84

I thought this was a 43 milestone, had to download plasma to continue work.

Any progress so far?

kareemAbd0 avatar Sep 10 '24 18:09 kareemAbd0

I'll remove the milestone - not working on this atm (I've spent a few hours a while back and couldn't find what was wrong)

Feel free to revert that one faulty commit, but it does break some other things (e.g. hyprpicker)

vaxerski avatar Sep 10 '24 22:09 vaxerski

As in the linked issue, this problem affects any Eclipse-based applications, like DBeaver and the Eclipse IDE itself.

I'd suggest @lufjo change the title of the issue to mention "Eclipse" or "Eclipse-based", so that the issue can be easily found.

LorenzoBettini avatar Sep 18 '24 17:09 LorenzoBettini

FYI this workaround make it less pain to work with dbeaver at the moment (tested on my side and it works).

rizqicy avatar Sep 20 '24 01:09 rizqicy

the most annoying thing it's not flickers but memory leakage that grows continuously (on hyprland process not dbeaver) while working with dbeaver. changing theme reduce flickers but don't do anything about memory issue.

My dirty workaround is forcing dbeaver to use X11 by changing Exec segment of it's desktop file to following:

...
Exec=env GDK_BACKEND=x11 dbeaver
...

Yes u lose all fancy feature of wayland (in my case HiDPI support!)

hope somebody fix this soon. (I have no idea about hyprland itself 😟)

asgmojtaba avatar Oct 08 '24 14:10 asgmojtaba

Yes u lose all fancy feature of wayland (in my case HiDPI support!)

@asgmojtaba for scaling in X11, I blogged about a few tricks here https://www.lorenzobettini.it/2024/09/eclipse-in-hyprland-0-43/

LorenzoBettini avatar Oct 08 '24 16:10 LorenzoBettini

Yes u lose all fancy feature of wayland (in my case HiDPI support!)

@asgmojtaba for scaling in X11, I blogged about a few tricks here https://www.lorenzobettini.it/2024/09/eclipse-in-hyprland-0-43/

XD thanks.. and i came here from blog... guess it's xwayland then..

Vaisakhkm2625 avatar Oct 19 '24 10:10 Vaisakhkm2625

Why dropCurrentBuffer(); inside commitPendingState? https://github.com/hyprwm/Hyprland/blob/bb160cfe377da2d2b2e4431a3399fa60114f3911/src/protocols/core/Compositor.cpp#L451

With this drop old buffer is (always?) empty https://github.com/hyprwm/Hyprland/blob/bb160cfe377da2d2b2e4431a3399fa60114f3911/src/protocols/core/Compositor.cpp#L88 and dbeaver has this flickering issue which causes HL to "leak" memory (probably video memory only, easier to test with integrated gpu without dedicated ram). Removing that drop solves this issue and doesn't seem to cause any other issues.

UjinT34 avatar Nov 13 '24 14:11 UjinT34

launch hyprpicker after you remove that drop and it won't render

vaxerski avatar Nov 13 '24 17:11 vaxerski

hyprpicker works for me without that drop...

How do signals and listeners work? Can something passed to registerListener be called without emit? IHLBuffer::hlEvents are never emitted.

UjinT34 avatar Nov 13 '24 18:11 UjinT34

How do signals and listeners work? Can something passed to registerListener be called without emit?

nope

IHLBuffer::hlEvents are never emitted.

they are in aq

vaxerski avatar Nov 13 '24 23:11 vaxerski

hyprpicker works for me without that drop...

ah, maybe that one does, this part is very finnicky and like every line has been through 4 revisions because random things would break. Fun.

Perhaps this one was there to fix the xwayland leaks xd

vaxerski avatar Nov 13 '24 23:11 vaxerski

I have to make a comment so github will notify me any progress, I'm facing the same problem.

vincentaxhe avatar Jan 27 '25 05:01 vincentaxhe

@vincentaxhe theres a subscribe button to the right on any issue/pr

haras-unicorn avatar Jan 27 '25 06:01 haras-unicorn

I have to make a comment so github will notify me any progress, I'm facing the same problem.

Try render:allow_early_buffer_release = 0

UjinT34 avatar Jan 27 '25 07:01 UjinT34

Facing the same issue aswell.

gabrielgcma avatar Jan 28 '25 13:01 gabrielgcma

if on nvidia i would blame gtk2 for not supporting syncobj protocol. and what happends if you use something else then nvidia but explicitly enable explicit_sync does the issue show on other cards too?

gulafaran avatar Jan 28 '25 13:01 gulafaran